GitScrum / Docs
Toutes les Bonnes Pratiques

Gestion Environnements | GitScrum

Gérez environnements dev, staging et production avec GitScrum. Assurez déploiements cohérents et réduisez les problèmes d'environnement.

5 min de lecture

Des environnements cohérents évitent les surprises. GitScrum aide à suivre quelles fonctionnalités sont déployées où et à coordonner les promotions d'environnement.

Stratégie d'environnement

Types d'environnements

APERÇU DES ENVIRONNEMENTS :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ DÉVELOPPEMENT (DEV) :                                       │
│ ──────────────────────                                      │
│ • Développement de fonctionnalités actives                  │
│ • Déploiements fréquents (plusieurs/jour)                   │
│ • Peut être instable                                        │
│ • Développeurs ont accès complet                            │
│ • Données exemples/test                                     │
│                                                             │
│ STAGING :                                                   │
│ ────────                                                    │
│ • Environnement similaire production                        │
│ • Tests pré-production                                      │
│ • Même configuration que production                         │
│ • Données réalistes (mais pas réelles)                      │
│ • Déployer avant production                                 │
│                                                             │
│ PRODUCTION (PROD) :                                         │
│ ──────────────────                                          │
│ • Trafic utilisateurs réels                                 │
│ • Exigences de stabilité les plus élevées                   │
│ • Accès restreint                                           │
│ • Données réelles                                           │
│ • Monitoring et alerting                                    │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ FLUX DE PROMOTION :                                         │
│                                                             │
│   DEV ──────→ STAGING ──────→ PRODUCTION                    │
│     │            │               │                          │
│     │            │               │                          │
│     ▼            ▼               ▼                          │
│  Tests unit.  Intégration    Tests smoke                    │
│  Tests dev    Tests QA       Monitoring                     │
│               Approbation                                   │
│               stakeholder                                   │
└─────────────────────────────────────────────────────────────┘

Environnements étendus

ENVIRONNEMENTS ADDITIONNELS :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ ENVIRONNEMENTS OPTIONNELS :                                 │
│                                                             │
│ LOCAL :                                                     │
│ Machine du développeur                                      │
│ Itération rapide                                            │
│ Peut ne pas correspondre exactement à la production         │
│                                                             │
│ QA :                                                        │
│ Tests QA dédiés                                             │
│ Stable pour exécution de tests                              │
│ Gestion des données de test                                 │
│                                                             │
│ UAT (Test d'Acceptation Utilisateur) :                      │
│ Tests stakeholder/client                                    │
│ Validation métier                                           │
│ Avant sign-off production                                   │
│                                                             │
│ PERFORMANCE/CHARGE :                                        │
│ Tests de performance                                        │
│ Infrastructure à l'échelle                                  │
│ Simulation de charge réaliste                               │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ MATRICE DES ENVIRONNEMENTS :                                │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ENV       BUT           DONNÉES      ACCÈS             │ │
│ │ ───       ───           ───────      ─────             │ │
│ │ Local     Développement Mock/Sample  Développeur       │ │
│ │ Dev       Intégration   Données test Équipe            │ │
│ │ QA        Tests         Données test QA + Équipe       │ │
│ │ UAT       Acceptation   Sanitisées   Stakeholders      │ │
│ │ Staging   Pré-prod      Réalistes    Limité            │ │
│ │ Prod      Live          Réelles      Très limité       │ │
│ └─────────────────────────────────────────────────────────┘ │
│                                                             │
│ PLUS D'ENVIRONNEMENTS = Plus de surcharge                   │
│ Équilibre : Assez pour le processus, pas trop à gérer       │
└─────────────────────────────────────────────────────────────┘

Parité des environnements

Garder les environnements cohérents

PARITÉ DES ENVIRONNEMENTS :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ LE PROBLÈME :                                               │
│ ────────────                                                │
│ "Ça marche en staging, ça casse en production"              │
│                                                             │
│ CAUSES :                                                    │
│ • Versions OS différentes                                   │
│ • Versions dépendances différentes                          │
│ • Configuration différente                                  │
│ • Caractéristiques données différentes                      │
│ • Configuration réseau différente                           │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ SOLUTIONS :                                                 │
│                                                             │
│ CONTENEURISATION :                                          │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Même image Docker sur tous les environnements           │ │
│ │                                                         │ │
│ │ ┌──────────┐   ┌──────────┐   ┌──────────┐             │ │
│ │ │   DEV    │   │ STAGING  │   │   PROD   │             │ │
│ │ │          │   │          │   │          │             │ │
│ │ │  image:  │   │  image:  │   │  image:  │             │ │
│ │ │  v1.2.3  │   │  v1.2.3  │   │  v1.2.3  │             │ │
│ │ │          │   │          │   │          │             │ │
│ │ └──────────┘   └──────────┘   └──────────┘             │ │
│ │      ↑              ↑              ↑                    │ │
│ │      └──────────────┴──────────────┘                    │ │
│ │           Même image, même comportement                 │ │
│ └─────────────────────────────────────────────────────────┘ │
│                                                             │
│ INFRASTRUCTURE AS CODE :                                    │
│ • Terraform, Pulumi pour l'infrastructure                   │
│ • Manifestes Kubernetes pour le déploiement                 │
│ • Ansible pour la configuration                             │
│ • Versionné, révisable                                      │
│                                                             │
│ GESTION DE CONFIGURATION :                                  │
│ • Variables d'environnement pour les différences            │
│ • Gestion des secrets (Vault, AWS Secrets)                  │
└─────────────────────────────────────────────────────────────┘

Bonnes pratiques

  • Utilisez l'infrastructure as code pour toutes les environnements
  • Conteneurisez les applications pour la cohérence
  • Automatisez les promotions entre environnements
  • Gardez les configs séparées du code
  • Utilisez les mêmes scripts de déploiement partout
  • Testez en staging comme en production
  • Surveillez tous les environnements pas juste prod
  • Documentez les différences entre environnements
  • Solutions connexes