Déploiement continu de Jenkins [avec exemple pratique]

Publié: 2020-12-28

Le déploiement de Jenkins est un processus accéléré de développement de logiciels automatisés complexes. Cet article met en lumière la manière dont Jenkins intègre tous les processus du cycle de vie du développement ou les étapes DevOps telles que la construction, la documentation, les tests, l'empaquetage, la mise en scène, le déploiement, l'analyse statique, et bien d'autres, pratiqués dans plusieurs organisations.

Aujourd'hui, de nombreuses organisations adoptent DevOps dans leurs offres. Dans le cycle de vie du développement logiciel, vous devez publier le logiciel en continu dans le cadre du projet.

Des outils tels que Jenkins sont très populaires pour leur potentiel à permettre l'intégration et la livraison continues des applications, quelle que soit la plate-forme. Jenkins est un outil gratuit et à source unique qui peut gérer tout type de build dans le déploiement de Jenkins , dont il sera question dans l'article.

Jenkins peut être intégré à de nombreuses technologies de test et de déploiement. Cet article décrit comment Jenkins est utilisé pour créer et tester vos projets logiciels en continu.

Apprenez le cours en ligne de génie logiciel des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Ainsi, avant de plonger dans le fonctionnement de Jenkins, nous devons comprendre les sujets suivants qui sont à la base de l'apprentissage de Jenkins :

  • Déploiement continu
  • Livraison continue vs déploiement continu
  • Un exemple pratique de déploiement de Jenkins
  • Avantages du déploiement de Jenkins

Jetons un coup d'œil à chacun d'eux un par un!

Table des matières

Déploiement continu

En déploiement continu, le logiciel est diffusé sur les serveurs de production en continu avec automatisation. Le code passe par des étapes telles que la compilation du code source, la validation, la révision, l'empaquetage de l'application et la réalisation de tests unitaires et de tests d'intégration.

Le code est ensuite déployé sur les serveurs de test lors de la réalisation du test d'acceptation utilisateur. Le logiciel sera déployé sur les serveurs de production pour la publication du logiciel. En savoir plus sur l'intégration continue avec Jenkins.

Livraison continue vs déploiement continu

La livraison continue et le déploiement continu sont deux étapes cruciales d'un SDLC dans lequel la livraison continue ne se déploie pas en production pour toute modification. Le développeur doit s'assurer que le code est toujours déployable et le déployer chaque fois que nécessaire.

Crédit d'image

Le déploiement continu nécessite que chaque changement soit déployé automatiquement, sans aucun arbitrage humain.

Dans le schéma ci-dessus, une fois les étapes d'intégration continue terminées, l'application construite est automatiquement déployée sur les serveurs de production, ce qui n'est rien d'autre qu'un déploiement constant.

Ou bien, si nous avons besoin d'une approbation humaine pour déployer la nouvelle version pour tout automatiser, nous exécutons une livraison continue.

En raison de cette différence fondamentale, il y a eu plusieurs implications rendant chaque processus adapté à différentes circonstances.

Jenkins

Jenkins est un outil open source qui accélère le processus logiciel grâce à un serveur d'automatisation utilisé pour créer et tester en continu des projets logiciels, permettant un environnement CI/CD pour les développeurs. Il est écrit en Java donc vraiment portable.

Jenkins a des milliers de plugins et d'intégrations. Par conséquent, il convient aux grands projets nécessitant beaucoup de personnalisation. Il prend en charge les outils de contrôle de version tels que Git, Maven, Mercurial et Subversion.

Un exemple pratique de déploiement de Jenkins

Maintenant que nous avons appris quel type d'outil Jenkins est et peut être appliqué à un processus de développement logiciel pour un déploiement continu, voyons maintenant comment cela fonctionne dans un environnement de production.

Tout d'abord, Jenkins est configuré sur un serveur et le projet d'un client est ajouté pour la construction et le test. Le client peut alors télécharger l'application qui a subi les tests. Le déploiement des actifs du projet vers un nouvel emplacement sur le serveur peut être délicat.

Pour cela, supposons au préalable qu'un projet client est mis en place sur Jenkins, lié à votre système de contrôle de version.

Étape 1 : Création d'un élément Jenkins

Dans le menu principal, sélectionnez "Nouvel élément" et nommez-le. Il exportera les fichiers de votre projet client vers un dossier du serveur.

Étape 2 : Créer une action post-construction

Accédez au projet client et sélectionnez configurer. Maintenant, lancez une action post-build et choisissez "archiver les artefacts" dans le menu déroulant. Ajoutez les types de fichiers à archiver et à exporter.

Après cela, ajoutez une autre action post-construction, "Construire un autre projet" et entrez l'élément de construction créé auparavant.

Archiver

Etape 3 : Installation du plugin 'Copy Artifact'

Dans la troisième étape, vous installerez le 'Copy Artifact plugin' de Jenkins.

Accédez à "Nom du projet" pour configurer et ajouter une étape de construction. Lorsque le plugin Copy Artifact est installé, vous verrez l'option "Copier les artefacts d'un autre projet". Désignez le dossier pour copier les artefacts et définissez le chemin d'accès.

Définissez l'emplacement sur "var/www/clients/.." . Cela créera un nouveau dossier sur le serveur. Spécifiez le chemin avec une adresse HTTP (!).

Sauvegarder le projet

Étape 4 : effectuer des tests

Après les premières étapes, il est maintenant temps de tester l'application.

Pour cela, lancez un build à partir du projet client. Cela déclenchera une nouvelle construction. Vérifiez le dossier de déploiement sur le serveur. Ici, vous verrez les fichiers déployés.

Mais, même après toutes les actions, la construction a échoué et vous avez une erreur 'FileException'.

Pourquoi?

Les raisons possibles peuvent être :

  • Jenkins n'avait pas les autorisations pour écrire dans le dossier et ne peut pas déployer les fichiers.
  • Liez SSH au serveur.
  • Vérifiez les autorisations du dossier de sortie.
  • Vous le savez, nous avons rencontré un problème.

Effectuez les étapes suivantes pour résoudre ce problème :

  1. Ajoutez Jenkins à un groupe, ici, le groupe 'www-data'.
  2. Changer la propriété du dossier de sortie en groupe 'www-data' avec la commande sudo chown – R : clients 'www data'.
  3. Autorisez l'accès en écriture sur le dossier avec la commande sudo chmod .
  4. Redémarrez le serveur et voyez l'application déployée

Quels avantages Jenkins offre-t-il ?

  • Jenkins est un outil open source et offre un excellent support communautaire.
  • Jenkins est relativement facile à installer.
  • Jenkins a plus de 1000 plugins. Si un plugin n'est pas disponible, vous pouvez le coder facilement.
  • Jenkins est gratuit.
  • Jenkins est construit avec Java ; par conséquent, portable sur toutes les principales plates-formes.

Lisez aussi: Idées et sujets de projet Jenkins

Derniers mots

Jenkins est un outil d'automatisation écrit en Java robuste qui a été largement utilisé pour l'intégration continue. Avec Jenkins, il est plus facile de construire et de tester des projets logiciels en continu avec ce qui est écrit. C'est l'outil ultime pour livrer votre logiciel toujours en s'intégrant à un grand nombre de technologies de test et de déploiement.

Apprentissage du développement logiciel – DevOps avec upGrad

upGrad propose le programme Executive PG en développement de logiciels - Spécialisation en DevOps dans lequel vous apprendrez à fournir des applications et des services à très grande vitesse dans l'organisation. La faculté d'upGrad vous apprendra tous les tenants et les aboutissants de DevOps et pourquoi l'apprendre fera une carrière rentable pour vous.

Diplôme PG upGrad en spécialisation en développement de logiciels dans les points forts du programme DevOps :

Ce cours en ligne prolongé de 12 mois offre les fonctionnalités suivantes :

  • Sessions en ligne bien informées avec des conférences en direct
  • Accédez gratuitement au précieux contenu de Data Science & Machine Learning
  • Travailler sur plus de 7 projets et affectations en direct
  • Apprendre dix langages et outils de programmation
  • Assurance placement garanti
  • Accompagnement de carrière à 360° avec aide à l'emploi

Cours de développement de logiciels

Postuler au programme de certificat avancé en DevOps