Junior
Qu'est-ce que le déploiement continu (continuous deployment) ?
sobes.tech IA
Réponse de l'IA
Il s'agit d'une approche en développement logiciel où chaque modification, ayant passé un pipeline de tests automatisés et étant approuvée, est déployée automatiquement en environnement de production. La principale différence avec la Livraison Continue est l'absence d'une étape manuelle d'approbation avant le déploiement en production.
Étapes principales :
- Commit : Le développeur effectue un commit des modifications dans le système de contrôle de version (par exemple, Git).
- Build : Construction automatique de l'artéfact (image, paquet, etc.).
- Test : Exécution de tests automatiques (tests unitaires, d'intégration, fonctionnels, de charge, etc.).
- Deploy : Si tous les tests réussissent, l'artéfact est déployé automatiquement en environnement de travail.
Composants clés :
- Niveau élevé d'automatisation.
- Infrastructure fiable.
- Utilisation des pratiques d'Intégration Continue (CI) et de Livraison Continue (CD).
- Surveillance et journalisation pour détecter rapidement les problèmes.
- Capacité de rollback rapide.
# Exemple d'une partie du pipeline dans GitLab CI/CD
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Construction de l'application..."
- # Commandes de build ici
test_job:
stage: test
script:
- echo "Exécution des tests..."
- # Commandes de test ici
only:
- main # Déclenche uniquement pour la branche principale
deploy_job:
stage: deploy
script:
- echo "Déploiement en production..."
- # Commandes de déploiement ici
when: on_success # Déployer uniquement si les étapes précédentes réussissent
only:
- main
| Avantages | Inconvénients |
|---|---|
| Lancement rapide de nouvelles fonctionnalités/corrections | Exigences élevées en matière de qualité des tests |
| Réduction du TTM (Time To Market) | Risque potentiel de déploiement de changements indésirables |
| Diminution du risque à chaque déploiement | Complexité de mise en œuvre sans processus CI/CD matures |
| Retour d'information rapide des utilisateurs | Nécessité d'une surveillance fiable et d'une capacité de rollback |