En tant que base des processus DevOps modernes, il est important de comprendre CI / CD et d'apprendre à configurer un pipeline à partir de zéro (From scratch).

 

 

 

 

Une implémentation de pipeline CI / CD, ou intégration continue / déploiement continu, est l'épine dorsale de l'environnement DevOps moderne. Il comble le fossé entre les équipes de développement et d'exploitation en automatisant la création, les tests et le déploiement d'applications. Dans ce blog, nous apprendrons ce qu'est un pipeline CI / CD et comment il fonctionne.

 

Avant de passer au pipeline CI / CD, commençons par comprendre DevOps.

 

img

 

 

DevOps est une approche de développement logiciel qui implique un développement continu, des tests continus, une intégration continue, un déploiement continu et une surveillance continue du logiciel tout au long de son cycle de développement. C'est le processus adopté par toutes les grandes entreprises pour développer des logiciels de haute qualité et des cycles de vie de développement plus courts, ce qui se traduit par une plus grande satisfaction client, ce que chaque entreprise souhaite.

 

Votre compréhension de DevOps est incomplète sans en savoir plus sur son cycle de vie. Examinons maintenant le cycle de vie DevOps et explorons comment il est lié aux étapes de développement logiciel.

 

img

 

 

 

CI signifie Intégration Continue et CD signifie Continuous Delivery / Continuous Deployment. Vous pouvez le considérer comme un processus similaire à un cycle de vie de développement logiciel.

 

Voyons comment cela fonctionne.

 

img

 

Le pipeline ci-dessus est une démonstration logique de la façon dont le logiciel évoluera au cours des différentes étapes de ce cycle de vie avant d'être livré au client ou avant d'être mis en production.

 

Prenons un scénario de pipeline CI / CD. Imaginez que vous allez créer une application Web qui sera déployée sur des serveurs Web en direct. Vous aurez un ensemble de développeurs responsables de l'écriture du code, qui continueront et construiront l'application web. Maintenant, lorsque ce code est validé dans un système de contrôle de version (tel que git, svn) par l'équipe de développeurs. Ensuite, il passe par la phase de construction, qui est la première phase du pipeline, où les développeurs mettent leur code, puis le code passe au système de contrôle de version avec une balise de version appropriée.

 

 

 

img

 

Supposons que nous ayons du code Java et qu'il doit être compilé avant l'exécution. À travers la phase de contrôle de version, il passe à nouveau à la phase de construction, où il est compilé. Vous obtenez toutes les fonctionnalités de ce code à partir de diverses branches du référentiel, qui les fusionnent et utilisent finalement un compilateur pour le compiler. L'ensemble de ce processus est appelé la phase de construction.

 

 

 

img

 

Une fois la phase de construction terminée, vous passez à la phase de test. Dans cette phase, nous avons différents types de tests. L'un d'eux est le test unitaire (où vous testez le bloc / l'unité de logiciel ou pour son test d'intégrité).

 

 

 

img

 

Une fois le test terminé, vous passez à la phase de déploiement, où vous le déployez dans un serveur intermédiaire ou de test. Ici, vous pouvez afficher le code ou afficher l'application dans un simulateur.

 

img

 

Une fois le code déployé avec succès, vous pouvez exécuter un autre test d'intégrité. Si tout est accepté, il peut être déployé en production.

 

 

 

img

 

Pendant ce temps, à chaque étape, s'il y a une erreur, vous pouvez renvoyer un e-mail à l'équipe de développement afin qu'elle puisse y remédier. Ensuite, ils le pousseront dans le système de contrôle de version et il retournera dans le pipeline.

 

Encore une fois, si une erreur est signalée pendant le test, le retour d'information est renvoyé à l'équipe de développement, où elle la corrige et le processus est répété si nécessaire.

 

 

 

img

 

Ce cycle de vie continue jusqu'à ce que nous obtenions du code / un produit qui peut être déployé sur le serveur de production où nous mesurons et validons le code.

 

Nous comprenons maintenant le pipeline CI / CD et son fonctionnement; maintenant, nous allons comprendre ce qu'est Jenkins et comment déployer le code démontré à l'aide de Jenkins et automatiser l'ensemble du processus.

 

L'outil CI ultime et son importance dans le pipeline CI / CD

 

Notre tâche est d'automatiser l'ensemble du processus, à partir du moment où l'équipe de développement nous donne le code et le valide jusqu'au moment où nous le mettons en production. Nous automatiserons le pipeline afin de rendre l'ensemble du cycle de vie du développement logiciel en DevOps / mode automatisé. Pour cela, nous aurons besoin d'outils d'automatisation.

 

 

Jenkins nous fournit diverses interfaces et outils afin d'automatiser l'ensemble du processus.

 

Nous avons un référentiel Git où l'équipe de développement va valider le code. Ensuite, Jenkins prend le relais à partir de là, un outil frontal où vous pouvez définir l'ensemble de votre travail ou de la tâche. Notre travail consiste à assurer le processus continu d'intégration et de livraison pour cet outil particulier ou pour l'application particulière.

 

Depuis Git, Jenkins extrait le code puis Jenkins le déplace dans la phase de validation, où le code est validé à partir de chaque branche. La phase de construction est l'endroit où nous compilons le code. S'il s'agit de code Java, nous utilisons des outils comme maven dans Jenkins, puis compilons ce code, qui peut être déployé pour exécuter une série de tests. Ces cas de test sont à nouveau supervisés par Jenkins.

 

Ensuite, il passe au serveur de transfert pour le déployer à l'aide de Docker. Après une série de tests unitaires ou de tests d'intégrité, il passe à la production.

 

 

Docker est comme un environnement virtuel dans lequel nous pouvons créer un serveur. Il faut quelques secondes pour créer un serveur entier et déployer les artefacts que nous voulons tester. Mais ici, la question se pose:

 

Pourquoi utilisons-nous Docker?

 

Comme nous l'avons dit précédemment, vous pouvez exécuter l'intégralité du cluster en quelques secondes. Nous avons un registre de stockage pour les images où vous créez votre image et la stockez pour toujours. Vous pouvez l'utiliser à tout moment dans n'importe quel environnement qui peut se répliquer.

 

Travaux pratiques: création d'un pipeline CI / CD à l'aide de Docker et Jenkins

 

Étape 1: ouvrez votre terminal dans votre machine virtuelle. Démarrez Jenkins et Docker à l'aide de ces commandes:

 

img