title: "Addendum 12 — Sandbox Blue-Green · Feature Flags — Août 2026" date: "2026-08-31" author: "ATLAS Engine"
Addendum 12 — Sandbox Blue-Green · Feature Flags
WS9 — Déploiement sécurisé zéro-downtime | Août 2026
1. Vue d’ensemble
Le workstream WS9 introduit une infrastructure de déploiement Blue-Green complète pour les deux Container Apps Azure (API + Frontend), ainsi qu’un système de Feature Flags intégré pour les dark-launches.
2. Blue-Green Deployment
2.1 Principe
Chaque déploiement crée une nouvelle révision qui reçoit initialement 0% du trafic (sandbox). Après vérification de santé, le trafic est basculé à 100% automatiquement. En cas d’échec, un rollback automatique ramène le trafic à la révision précédente.
2.2 Endpoints API
| Méthode | Endpoint | Description |
|---|---|---|
GET | /api/v1/admin/deploy/status | Statut des deux apps (revisions, trafic, santé) |
GET | /api/v1/admin/deploy/revisions?app=api|frontend | Liste des révisions d’une app |
POST | /api/v1/admin/deploy/traffic | Modifier la répartition du trafic entre révisions |
POST | /api/v1/admin/deploy/promote | Promouvoir une révision sandbox à 100% |
POST | /api/v1/admin/deploy/rollback | Rollback instantané à la révision précédente |
GET | /api/v1/admin/deploy/health?app=api|frontend | Vérification de santé des révisions actives |
POST | /api/v1/admin/deploy/cleanup | Désactiver les anciennes révisions (garder N plus récentes) |
2.3 Pipeline CI/CD amélioré
Avant WS9 :
- Build → Deploy (simple update, trafic basculé immédiatement)
Après WS9 :
- Build → Deploy nouvelle révision → Health Check (5 tentatives, intervalle 10s) → Auto-Promote si OK / Auto-Rollback si KO
3. Feature Flags
3.1 Fonctionnalités
- Flags globaux : activé/désactivé pour toute la plateforme
- Overrides par organisation : forcer ON/OFF pour une org spécifique
- Rollout progressif : pourcentage (0-100%) avec hash déterministe par organisation
- Expiration automatique : flag désactivé après une date limite
3.2 Endpoints API
| Méthode | Endpoint | Auth | Description |
|---|---|---|---|
GET | /api/v1/feature-flags/:key/check?orgId= | Public | Vérifier si un flag est actif (utilisé par le frontend) |
GET | /api/v1/feature-flags | Admin | Lister tous les flags |
GET | /api/v1/feature-flags/:key | Admin | Détail d’un flag |
POST | /api/v1/feature-flags | Admin | Créer un flag |
PUT | /api/v1/feature-flags/:key | Admin | Modifier un flag |
DELETE | /api/v1/feature-flags/:key | Admin | Supprimer un flag |
3.3 Stockage
Table atlas.feature_flags créée automatiquement au démarrage (DDL onModuleInit) :
idUUIDkeyTEXT UNIQUEenabledBOOLEANrollout_pctINT (0–100)org_overridesJSONBexpires_atTIMESTAMPTZ
4. Cas d’utilisation
Dark-Launch d’une nouvelle fonctionnalité
- Créer le flag :
POST /feature-flagsavec{ key: "ws14-video-hd", enabled: false } - Déployer le code qui vérifie le flag
- Activer progressivement :
PUT /feature-flags/ws14-video-hdavec{ enabled: true, rolloutPercent: 10 } - Monter graduellement : 10% → 25% → 50% → 100%
Rollback d’urgence
POST /admin/deploy/rollbackavec{ app: "api" }- Le trafic revient instantanément à la révision précédente
- Zéro downtime, zéro perte de données
5. Commits & Déploiement
- Commit :
0f11d61—feat(WS9): Blue-Green deploy module + feature flags + pipeline health-check auto-rollback - Build : #494 (MyAtlas API)
- Fichiers créés :
src/modules/deploy/deploy.module.tssrc/modules/deploy/deploy.controller.tssrc/modules/deploy/deploy.service.tssrc/modules/deploy/feature-flags.controller.tssrc/modules/deploy/feature-flags.service.ts
- Pipelines mis à jour :
azure-pipelines.yml(MyAtlas + GoWeBa) — health check + auto-rollback