3 minutes

Dans notre précédent article, nous vous avons présenté l’Intégration Continue (ou CI) dans les processus DevOps. Maintenant que votre branche principale est continuellement validée grâce à la CI, nous pouvons aborder l’étape suivante : le Déploiement Continu (ou CD).

📢 Traditionnellement, le déploiement se fait manuellement, en suivant des procédures précises. À cause du facteur humain, la possibilité de voir apparaître une erreur augmente grandement, et cela à chaque déploiement. Sans compter qu’une personne est désignée responsable de cette tâche, qui est répétitive et n’apporte pas de valeur ajoutée au projet.

Qu’est ce que le Déploiement Continu ?

Le principe du Déploiement Continu est, dans le prolongement de l’Intégration Continue, l’automatisation du déploiement de votre logiciel grâce à des jobs dans votre pipeline. Avec cette stratégie de développement logiciel, les branches de code qui réussissent le cycle de test automatisé sont automatiquement transférées sur vos environnements (par exemple l’environnement de production). Cela propulse donc les modifications directement vers les utilisateurs du produit.

Schématisation de la branche Principale et de la branche de Production lors du Déploiement Continu

Déploiement Continu : pourquoi et comment l’implémenter ?

Pourquoi l’implémenter ?

On retrouve le Déploiement Continu dans une stratégie DevOps. Il repose sur une coopération agile entre vos équipes de développement et opérationnelles. En complément de l’Intégration Continue, le CD vous garantira une automatisation et une surveillance permanente, tout au long du cycle de vie des applications.

📢 En plus de soulager vos équipes en supprimant des tâches manuelles chronophages, le Déploiement Continu vous permettra de vous concentrer sur la création de valeur ajoutée pour vos clients !

Ainsi, en simplifiant le déploiement de nouveau code, votre time-to-market sera réduit et la rentabilité de votre produit augmentera !

Comment l’implémenter ?

Avant d’intégrer le Déploiement Continu dans vos développements, il vous faudra forcément passer par la première étape : l’Intégration Continue.

Pour commencer l’implémentation du Déploiement Continu, vous devez lier vos environnements de travail à votre branche principale. Par exemple, vous pouvez construire votre environnement de la manière suivante 👇

📌 Branche de développement : environnement de révision

📌 Branche Principale : environnement de “staging” ou simulation

📌 Branche de production : environnement de production

Ensuite, il convient de réfléchir aux conditions de déploiement à mettre en place. Souhaitez-vous déployer à chaque nouvelle modification ou préférez-vous attendre une approbation manuelle avant déploiement ? 

📢 L’objectif principal du Déploiement Continu est le déploiement d’une nouvelle version de votre logiciel. Si vous déployez régulièrement de multiples services répliqués, vous pouvez appliquer une stratégie de déploiement du type rolling update, blue/green or canary. Vous limiterez ainsi les temps d’arrêts et les erreurs en production.

Il est important de noter qu’en cas d’erreur, vous ou votre équipe devez être en capacité de réaliser une marche arrière (“rollback”), afin de retrouver l’état précédent, et fonctionnel, de votre application ! 

Votre pipeline de Déploiement Continu est lié à votre infrastructure. En plus du déploiement d’une nouvelle version de votre logiciel, il faut penser à la globalité de votre plateforme ! Cela vous aidera à notifier tous les composants des mises à jour effectuées : “service mesh”, monitoring, équilibreur de charge, orchestrateur… sans oublier la migration de votre base de données !

Quelques outils pour votre Déploiement Continu

Heureusement, il existe de nombreux outils Open Source pour exécuter votre Déploiement Continu plus facilement. Pour n’en citer que quelques-uns :

📌 Terraform vous permettra d’approvisionner votre infrastructure Cloud.

📌 Ansible, Chef, Puppet ou encore SaltStack sont d’excellents gestionnaire de déploiement logiciel.

📌 Si vous utilisez Kubernetes : votre job de DC peut s’appuyer sur Helm pour mettre à jour vos versions.

Pour aller plus loin, cette liste Github répertorie d’autres outils utiles pour le Déploiement Continu !

Les avantages du déploiement continu

Utiliser le Déploiement Continu, c’est assurer à vos équipes un déploiement sécurisé ! Parmi les bénéfices, vous pouvez retrouver : 

📌 Une forte réduction de l’erreur humaine,

📌 Vous maîtrisez vos processus de A à Z,

📌 Le déploiement de vos logiciels et mises à jour se fait à la vitesse de la lumière,

📌 En cas de problème, revenez rapidement sur vos pas (“rollback”) !

En conclusion

Le Déploiement Continu se compose d’un ensemble d’outils et de bonnes pratiques vous permettant d’automatiser vos déploiements logiciels. Grâce à ce processus, vous diminuez le risque d’erreur humaine et d’augmentez la vitesse de déploiement de vos applications.

Les déploiements deviennent bien moins fastidieux pour vos équipes et un haut niveau de confiance s’instaure. En effet, vous réfléchissez à la complexité du déploiement en amont, lors de la mise en place des pipelines, et non à chaque déploiement. De plus, grâce à l’Intégration Continue, vous êtes prévenus au plus tôt (dès les premières phases de développement) lorsqu’un problème apparaît.

En alliant le Déploiement Continu à l’Intégration Continue, vous implémentez pour vos équipes des stratégies facilitant leurs tâches au quotidien. Cela leur donne la possibilité de se concentrer sur des missions apportant une réelle valeur ajoutée à vos développements et à votre entreprise !