Déploiement Continu

Publié le 13 janvier 2020, mis à jour le 19 décembre 2023.

Nous avons parlé de l’intégration continue (CI) dans un précédent article. Nous évoquons maintenant le principe de déploiement continu (ou CD, pour Continuous Deployment) qui est également un concepts DevOps important.

Le DevOps selon Padok

Padok a une philosophie du DevOps simple, il s’agit d’accélérer la livraison de fonctionnalités de qualité pour les utilisateurs. Ceci passe par l’accélération des développements et des mises en production ainsi que par la mise en place d’une chaîne de tests automatisée.

La clé c’est de simplifier la vie des développeurs afin qu’ils puissent se concentrer sur leur code et non sur des problématiques d’Ops (serveurs down, environnement de développement lent, etc.). Les Ops fournissent aux développeurs les meilleurs outils pour travailler dans les meilleures conditions.

Plus globalement, le DevOps c’est le fait d’avoir un site stable et scalable en production, et ceci de manière automatisée et continue. Mais cela passe par un changement dans l’organisation de l’équipe pour arriver à ce résultat.

Pour savoir quels outils DevOps et quels process mettre en place, il est primordial que les Ops et les Développeurs collaborent, qu’ils aient des objectifs communs et une envie de progresser dans la même direction. Pour en savoir plus, regardez cet article sur la méthode pour aligner vos Devs et vos Ops.

Qu’est-ce que le déploiement continu (CD) ?

Pour rappel l’intégration continue(CI) consiste en une phase de tests automatisés intégrée au flux de déploiement.

Le déploiement continu (CD) est donc la suite de l’intégration continue. Une fois que les tests sont validés sur l’environnement de dev, il faut mettre en production. Le déploiement continu consiste donc à automatiser les actions de déploiements qui étaient auparavant réalisées manuellement. C’est pour cette raison que l’on parle souvent de CI/CD ensemble, l’un va difficilement sans l’autre.

Pour automatiser les actions de déploiements, il faut notamment automatiser tous les tests faits sur l’environnement de qualification pour s’assurer du bon fonctionnement de la nouvelle fonctionnalité à pousser en production.

La différence entre déploiement continu et livraison continue

Le déploiement continu c’est un idéal que peu d’entreprises ont réellement mis en place. La plupart du temps les équipes IT préfèrent avoir la main sur la dernière étape du déploiement. Dans ce cas on parle donc de livraison continue, toutes les étapes du déploiement sont automatisées sauf la dernière : la mise en production.

deploiement-continu-ci-cd
Le déploiement continu inclut donc la livraison continue. Le déploiement continu va plus loin que la livraison continue en orchestrant automatiquement le déploiement des nouvelles fonctionnalités.

Les avantages du déploiement continu et livraison continue ?

Les avantages du déploiement continu et de la livraison continue sont nombreux. Pour les développeurs, les déploiements sont moins fastidieux, la plupart des tâches sont automatisées. Ils savent rapidement si leur code fonctionne ou pas grâce aux tests automatisés. Ils peuvent se concentrer sur le développement.

Il y a également moins de risques d’erreurs possibles puisqu’il y a moins d’actions manuelles. Le processus de déploiement continu est donc plus fiable.

Et pour l’entreprise, l’atout principal du CI/CD c’est l’augmentation de la fréquence des mises en production. Le time-to-market est considérablement réduit, ce qui permet d’aller plus vite en termes d’innovation. Cela donne un avantage concurrentiel supplémentaire à l’entreprise.

Les outils de déploiement continu

Les outils de déploiement continu sont en réalité souvent les mêmes que ceux de l’intégration continue :

Jenkins déploiement continu

Jenkins

Jenkins est un outil open source d’intégration et de déploiement continu développé sur Java. Jenkins peut être installé et lancé sur son propre serveur. Ce logiciel de CI/CD dispose de nombreux plugins qui permettent d’ajouter plus de fonctionnalités à votre serveur de CI.

travis ci déploiement continu

Travis CI

Travis CI est un logiciel d’hébergement CI/CD qui s’intègre avec vos projets GitHub. Travis CI est gratuit pour les projets open source. Ils travaillent main dans la main avec GitHub pour avoir une chaîne de CI/CD vraiment fluide.

gitlab ci déploiement continu

Gitlab CI

Si vous utilisez Gitlab vous avez déjà accès aux outils d’intégration et de déploiement continu. Gitlab CI permet même de lancer des tests d’intégration en local sur vos machines. Si vous cherchez un retour d’expérience, trainline est passé de Jenkins à Gitlab CI et témoigne dans cet article. Vous pouvez également suivre ce tuto pour installer une pipeline automatisée sur Gitlab.

circle ci déploiement continu

Circle CI

Circle CI est un service d’hébergement CI/CD. Il s’intègre parfaitement avec GitHub et Bitbucket. Il n’est toutefois pas possible de connecter des projets GitLab à Circle CI.

teamcity déploiement continu

TeamCity

TeamCity est un logiciel de CI/CD qui se veut simple à installer et à utiliser. TeamCity est accessible gratuitement.

Le déploiement continu est donc la finalité de la livraison continue. Et pour pouvoir mettre en place un déploiement continu, il faut en amont avoir mis en place un processus d’intégration continue. Il existe de nombreux outils de CI/CD, parfois gratuits, vous devrez évaluer votre besoin pour trouver celui qui sera le plus adapté à votre projet. Si vous avez des questions sur la mise en place du concept DevOps CI/CD, n’hésitez pas à nous contacter.