CI et CD sont deux acronymes fréquemment utilisés dans les pratiques modernes de développement et les DevOps. CI est synonyme d’intégration continue, une pratique exemplaire fondamentale de DevOps où les développeurs fusionnent fréquemment les modifications de code dans un dépôt central où s’exécutent des compilations et des tests automatisés. Cependant CD peut signifier soit une Livraison continue, soit un déploiement continu.
Intégration continue
Les développeurs qui pratiquent l’intégration continue fusionnent leurs changements avec la branche principale aussi souvent que possible. Les modifications du développeur sont validées en créant un build et en effectuant des tests automatisés par rapport à ce build. Ce faisant, vous évitez les difficultés d’intégration qui peuvent survenir lorsque vous attendez le jour de la sortie pour fusionner les changements dans la branche de sortie.
L’intégration continue met l’accent sur l’automatisation des tests afin de vérifier que l’application n’est pas cassée lorsque de nouveaux engagements sont intégrés dans la branche principale.
Livraison continue
La livraison continue est une extension de l’intégration continue puisqu’elle déploie automatiquement toutes les modifications de code dans un environnement de test et/ou de production après la phase de construction.
Cela signifie qu’en plus des tests automatisés, vous disposez d’un processus de mise en production automatisé et vous pouvez déployer votre application à tout moment en cliquant sur un bouton.
En théorie, grâce à la livraison continue, vous pouvez décider de lancer une version quotidienne, hebdomadaire, bimensuelle ou toute autre version répondant à vos besoins. Toutefois, si vous souhaitez réellement bénéficier des avantages de la livraison continue, vous devez passer en production le plus tôt possible afin de vous assurer de mettre en circulation de petits lots faciles à dépanner en cas de problème.
Déploiement continu
Le déploiement continu va plus loin que la livraison continue. Grâce à cette pratique, chaque changement qui passe par toutes les étapes de votre chaîne de production est communiqué à vos clients. Il n’y a aucune intervention humaine, et seul un test échoué empêchera le déploiement d’un nouveau changement en production.
Le déploiement continu est un excellent moyen d’accélérer la boucle de rétroaction avec vos clients et de soulager l’équipe, car il n’y a plus de jour de libération. Les développeurs peuvent se concentrer sur la création de logiciels, et ils voient leur travail passer en production quelques minutes après avoir fini de travailler dessus.
Passer d’une intégration continue à un déploiement continu
Si vous commencez tout juste un nouveau projet sans encore d’utilisateurs, il vous sera peut-être facile de déployer chaque engagement de production. Vous pourriez même commencer par automatiser vos déploiements et mettre votre version alpha en production sans aucun client. Ensuite, vous intensifierez votre culture de test et vous vous assurerez d’augmenter la couverture de code au fur et à mesure de la construction de votre application. Lorsque vous serez prêt à intégrer des utilisateurs, vous aurez mis en place un processus de déploiement continu où toutes les nouvelles modifications seront testées avant d’être automatiquement mises en production.
Mais si vous avez déjà une application existante chez des clients, vous devriez ralentir les choses et commencer par une intégration continue et une livraison continue. Commencez par mettre en place des tests unitaires de base qui seront exécutés automatiquement, sans avoir à vous préoccuper de l’exécution de tests complexes de bout en bout. Essayez plutôt d’automatiser vos déploiements le plus rapidement possible et passez à un stade où les déploiements dans vos environnements de mise en œuvre se font automatiquement. La raison en est qu’en ayant des déploiements automatiques, vous pourrez concentrer votre énergie sur l’amélioration de vos tests plutôt que d’avoir à arrêter périodiquement les choses pour coordonner une sortie.
Une fois que vous pouvez commencer à publier des logiciels sur une base quotidienne, vous pouvez envisager un déploiement continu, mais assurez-vous que le reste de votre organisation est également prêt. Documentation, support, marketing. Ces fonctions devront s’adapter à la nouvelle cadence des versions, et il est important qu’elles ne passent pas à côté de changements importants qui peuvent avoir un impact sur les clients.
Pour toutes informations complémentaires, appelez le 04 81 13 33 27 ou contactez-nous via notre formulaire de contact en ligne.