Pipeline et outils DevOps

Dans cette partie, nous verrons les différents outils et étapes d'une pipeline Devops.

Pipeline Devops

Cette partie décompose les différents composants et outils d'un exemple de pipeline* DevOps. En regardant le cycle de vie d’une application qui se déroule tout au long du pipeline DevOps, nous pouvons le décomposer en différentes sections et concepts décrits sur le diagramme ci-dessous :

exemple de pipeline DevOps

Pipeline Devops

Définition

*Pipeline : voie de transmission d'informations de façon séquentielle.

Étapes et outils d'une pipeline Devops

Plan

Cette phase englobe tout ce qui se passe avant de commencer à écrire du code. Les besoins et exigences des parties prenantes et des clients sont recueillis et sont utilisés pour construire une feuille de route produite pour aiguiller le futur développement. 

La feuille de route du produit peut être enregistrée et suivie à l'aide d'un système de gestion des tickets et de suivi de projet qui fournit une variété d'outils qui aident à suivre la progression, le planning, les problèmes et les tâches du projet tel que l’outil Jira.

De plus, c’est dans cette partie du projet où il faut également organiser les tâches et les plannings pour aménager automatiquement le déploiement et la configuration de logiciels grâce à des outils comme Ansible, (voir mon cours complet Ansible ), Chef et Puppet etc … Et les infrastructures en faveur de l’IaC depuis des outils comme Terraform (voir mon cours complet Terraform ).

Code

À ce stade, les développeurs écrivent le code du logiciel et le poussent dans un référentiel de contrôle de source partagé et lorsque le code est prêt, ils le fusionnent. Il existe plusieurs services d'hébergement de référentiel de code disponibles sur le marché (Github, Gitlab, etc …) ainsi qu'un système de contrôle de versions sous-jacent, le plus populaire reste git.

Build

C’est la première étape vers l'automatisation. Le développement du code est maintenant finalisé et l’équipe de développement utilise l’intégration continue depuis des outils comme Jenkins ou le Gitlab-CI, pour l'aider à compiler et à empaqueter automatiquement son code. Ce dernier sera alors prêt pour une future livraison à déployer dans les différents environnements, y compris celui de la production.

Test

Au cours de cette phase de Test, des tests continus des paquets créés précédemment sont exécutés automatiquement depuis le système d’intégration continu afin de réduire les risques de bogues et de failles.

Des tests, tels que des tests système, des tests fonctionnels, des tests unitaires (Ex: PHPUnit pour du code PHP, pytest pour du python etc ...) ou des tests de vulnérabilités (ex: SonarQube) peuvent être effectués sur la génération de la dernière phase. Si des problèmes sont détectés à cette phase, ces problèmes sont renvoyés à l’étape de code au développeur pour leurs résolutions afin d’assurer une qualité de code optimale.

Deploy

À ce stade, chaque changement de code a réussi la série de tests définis dans l’étape précédente. Intervient ensuite la phase de publication, qui est le moment où une version est prête à être déployée dans l'environnement de production.

À ce stade du pipeline et en fonction de la maturité du modèle DevOps dans l’entreprise, elle peut choisir d’effectuer soit du :

  • Déploiement continu : déployer automatiquement en production le produit créé dans l’étape antérieure de build sans processus d’approbation manuel. C’est généralement grâce à ce processus que les organisations réussissent à déployer quotidiennement plusieurs versions de leurs produits.
  • Livraison continue : ajouter un processus d'approbation manuel qui autorise uniquement certaines personnes au sein d'une organisation à déployer une version en production préalablement livrée dans un système de stockage dédié et centralisé (Ex : Nexus Repository Manager). Cela permet d’avoir un contrôle supplémentaire sur le produit avant son déploiement en production.

Monitor

La phase finale du cycle DevOps, consiste à surveiller l'environnement de production. Cette phase est gérée par un système de supervision capable de collecter et visualiser graphiquement les métriques de données, tout en fournissant des analyses sur le comportement, les performances et les erreurs des applications et de l’infrastructure. Cette phase peut être gérée depuis des outils comme Prometheus, la suite ELK, etc ...

Conclusion

Ces différents outils et phases, vous aideront à créer et automatiser votre pipeline DevOps afin de soulager vos équipes des tâches manuelles fastidieuses et répétitives. Ces outils peuvent également garantir que vos produits sont commercialisés de manière fiable et cohérente.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

15 commentaires

alexandrie82
Membre Actif
Avatar de alexandrie82
alexandrie82
Membre Actif

Cet article sur les pipelines est nickel pour structurer la pensée

On voit bien l'interdépendance de chaque étape et pourquoi une vision bout en bout est nécessaire pour un vrai CI/CD

21/01/2021 à 04:05
potier-philippine
Membre Actif
Avatar de potier-philippine
potier-philippine
Membre Actif

L'importance du Monitor est cruciale

sans ça on pilote à l'aveugle pouvoir avoir un feedback continu sur l'état de l'application en prod c'est essentiel pour la résilience

19/01/2021 à 12:15
audrey03
Membre
Avatar de audrey03
audrey03
Membre

l'étape deploy automatique c'est la consécration

Pouvoir déployer en toute confiance sans intervention manuelle c'est le Graal du DevOps bien décrit ici

18/01/2021 à 09:33
jerome-riou
Membre Actif
Avatar de jerome-riou
jerome-riou
Membre Actif

Le focus sur l'étape de Test est bien placé

C'est souvent l'étape où on coupe les coins pour aller plus vite mais c'est là qu'on prend le plus de risques si ce n'est pas automatisé

17/01/2021 à 06:47

Les outils mentionnés pour chaque étape sont pertinents

ça donne des pistes concrètes pour ceux qui veulent monter leur propre pipeline ou améliorer l'existante

15/01/2021 à 04:33
ithierry
Membre Actif
Avatar de ithierry
ithierry
Membre Actif

Super intro à la pipeline DevOps

La décomposition par étapes comme Plan Code Build Test Deploy Monitor est hyper pédagogique pour comprendre l'ensemble du cycle

13/01/2021 à 23:39
henriette-prevost
Membre Actif Secouriste
Avatar de henriette-prevost
henriette-prevost
Membre Actif Secouriste

les outils associés à chaque étape c'est très utile pour des juniors

12/01/2021 à 06:32
adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

les étapes de la pipeline sont super bien décrites

11/01/2021 à 00:52

Monitor pour s'assurer que tout tourne nickel

08/01/2021 à 06:30
noel93
Membre
Avatar de noel93
noel93
Membre

deploy en un clic le rêve atteint

05/01/2021 à 18:52
ogilles
Membre Actif
Avatar de ogilles
ogilles
Membre Actif

Tests automatiques le filet de sécurité indispensable

03/01/2021 à 16:20
christelle54
Membre Rédacteur
Avatar de christelle54
christelle54
Membre Rédacteur

build rapide et reproductible c'est la base

02/01/2021 à 00:59
robert90
Membre
Avatar de robert90
robert90
Membre

Code bien vu avec les outils de versionning

31/12/2020 à 04:26
sallain
Membre
Avatar de sallain
sallain
Membre

Plan c'est l'étape cruciale pour tout démarrer proprement

28/12/2020 à 21:59
ttanguy
Membre
Avatar de ttanguy
ttanguy
Membre

Le concept de Pipeline Devops bien synthétisé

27/12/2020 à 11:31

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire