3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Le déploiement continu est une approche particulière du développement logiciel qui est utilisée pour mettre en œuvre rapidement, en toute sécurité et efficacement diverses fonctions du logiciel.

L'idée principale est de créer un processus automatisé fiable qui permet au développeur de livrer rapidement le produit fini à l'utilisateur. Dans le même temps, des changements constants sont apportés à la production - c'est ce qu'on appelle un pipeline de livraison continue (CD Pipeline).

Skillbox vous recommande : Cours pratique "Développeur mobile PRO".

Nous rappelons: pour tous les lecteurs de "Habr" - une remise de 10 000 roubles lors de l'inscription à n'importe quel cours Skillbox en utilisant le code promotionnel "Habr".

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Pour contrôler le flux, vous pouvez utiliser une large gamme d'outils, à la fois payants et entièrement gratuits. Cet article décrit trois des solutions les plus populaires parmi les développeurs et qui peuvent être utiles à tout programmeur.

Jenkins

Serveur d'automatisation open source entièrement autonome. Cela vaut la peine de travailler avec pour automatiser toutes sortes de tâches liées à la création, aux tests, à l'expédition ou au déploiement de logiciels.

Configuration PC minimale requise:

  • 256 Mo de RAM, 1 Go d'espace fichier.

Optimal:

  • 1 Go de RAM, 50 Go de disque dur.

Pour travailler, vous aurez également besoin d'un logiciel supplémentaire - Java Runtime Environment (JRE) version 8.

L'architecture (informatique distribuée) ressemble à ceci :
3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Jenkins Server est une installation responsable de l'hébergement de l'interface graphique, ainsi que de l'organisation et de l'exécution de l'intégralité de la version.

Jenkins Node/Slave/Build Server - périphériques qui peuvent être configurés pour effectuer un travail de build au nom du maître (nœud maître).

Installation pour Linux

Vous devez d'abord ajouter le référentiel Jenkins au système :

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binaire/' | sudo tee -a /etc/apt/sources.list.d/je

Dépôt de packages de mise à jour :

mise à jour de sudo apt

Installez Jenkins :

sudo apt installer jenkins

Après cela, Jenkins sera disponible dans le système via le port par défaut 8080.

Pour vérifier la fonctionnalité, vous devez ouvrir l'adresse dans le navigateur localhost:8080. Le système vous demandera ensuite de saisir le mot de passe initial de l'utilisateur root. Ce mot de passe se trouve dans le fichier /var/lib/jenkins/secrets/initialAdminPassword.

Maintenant que tout est prêt, vous pouvez commencer à créer des flux CI/CD. L'interface graphique du workbench ressemble à ceci :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Points forts de Jenkins :

  • évolutivité assurée par l'architecture Maître/Esclave ;
  • disponibilité de l'API REST XML/JSON ;
  • la possibilité de connecter un grand nombre d'extensions grâce à des plugins ;
  • communauté active et en constante évolution.

Inconvénients:

  • il n'y a pas de bloc analytique ;
  • interface pas très conviviale.

TeamCity

Développement commercial de JetBrains. Le serveur est bon avec une configuration simple et une excellente interface. La configuration par défaut comporte un grand nombre de fonctions et le nombre de plugins disponibles est en constante augmentation.

Nécessite Java Runtime Environment (JRE) version 8.

La configuration matérielle requise pour le serveur n'est pas critique :

  • RAM - 3,2 Go;
  • processeur - double cœur, 3,2 GHz ;
  • canal de communication d’une capacité de 1 Gb/s.

Le serveur permet d'atteindre des performances élevées :

  • 60 projets avec 300 configurations de build ;
  • Allocation de 2 Mo pour le journal de build ;
  • 50 agents de construction ;
  • la possibilité de travailler avec 50 utilisateurs dans la version Web et 30 utilisateurs dans l'IDE ;
  • 100 connexions de VCS externes, généralement Perforce et Subversion. Le temps moyen de changement est de 120 secondes ;
  • plus de 150 modifications par jour ;
  • travailler avec la base de données sur un serveur ;
  • Paramètres du processus du serveur JVM : -Xmx1100m -XX:MaxPermSize=120m.

Les exigences relatives aux agents sont basées sur les assemblys en cours d’exécution. La tâche principale du serveur est de surveiller tous les agents connectés et de distribuer les assemblys en file d'attente à ces agents en fonction des exigences de compatibilité, en rapportant les résultats. Les agents sont disponibles sur diverses plates-formes et systèmes d'exploitation, ainsi que dans un environnement préconfiguré.

Toutes les informations sur les résultats de la construction sont stockées dans la base de données. Il s'agit principalement de l'historique et d'autres données similaires, des modifications VCS, des agents, des files d'attente de construction, des comptes d'utilisateurs et des autorisations. La base de données n'inclut pas uniquement les journaux de build et les artefacts.

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Installation pour Linux

Pour installer manuellement TeamCity avec un conteneur de servlet Tomcat, vous devez utiliser l'archive TeamCity : TeamCity .tar.gz. Télécharger Vous pouvez l'obtenir ici.

tar -xfz TeamCity.tar.gz

/bin/runAll. ch [démarrer|arrêter]

Lors du premier démarrage, vous devez sélectionner le type de base de données dans laquelle les données d'assemblage seront stockées.

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

La configuration par défaut s'exécute sur localhost:8111/ avec un agent de build enregistré s'exécutant sur le même PC.

Les points forts de TeamCity :

  • installation facile;
  • interface conviviale;
  • un grand nombre de fonctions intégrées ;
  • Support;
  • il existe une API RESTful ;
  • bonne documentation;
  • bonne sécurité.

Inconvénients:

  • intégration limitée;
  • Il s'agit d'un outil payant ;
  • une petite communauté (qui cependant est en pleine croissance).

Aller au CD

Un projet open source qui nécessite Java Runtime Environment (JRE) version 8 pour l'installation et le fonctionnement.

Configuration requise:

  • RAM - 1 Go minimum, plus c'est mieux ;
  • processeur - dual-core, avec une fréquence centrale de 2 GHz ;
  • disque dur - au moins 1 Go d'espace libre.

Nom de l'agent:

  • RAM - au moins 128 Mo, plus c'est mieux ;
  • processeur - au moins 2 GHz.

Le serveur assure le fonctionnement des agents et offre une interface pratique à l'utilisateur :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Étapes/Emplois/Tâches :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

Installation pour Linux

echo "deb télécharger.gocd.org / » | sudo tee /etc/apt/sources.list.d/gocd.list

boucle download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key ajouter -
ajouter-apt-repository ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get installer go-server

apt-get installer go-agent

/etc/init.d/go-server [démarrer | arrêter | statut | redémarrer]

/etc/init.d/go-agent [démarrer | arrêter | statut | redémarrer]

Par défaut, GoCd fonctionne sur localhost: 8153.

Les points forts de GoCd :

  • Open source;
  • installation et configuration simples ;
  • bonne documentation;

  • Excellente interface utilisateur :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

  • possibilité d'afficher le chemin de déploiement GoCD étape par étape dans une seule vue :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

  • excellent affichage de la structure du pipeline :

3 outils populaires pour organiser le déploiement continu (Continuous Deployment)

  • GoCD optimise le flux de travail des CD dans les environnements cloud les plus populaires, notamment Docker, AWS ;
  • l'outil permet de corriger les problèmes du pipeline, pour lequel il existe un suivi de chaque modification depuis la validation jusqu'au déploiement en temps réel.

Inconvénients:

  • au moins un agent est nécessaire ;
  • il n'y a pas de console pour afficher toutes les tâches terminées ;
  • pour exécuter chaque commande, vous devez créer une tâche pour la configuration du pipeline ;
  • Pour installer le plugin, vous devez déplacer le fichier .jar vers /plugins/external et redémarrez le serveur ;
  • communauté relativement petite.

Comme conclusion

Ce ne sont que trois outils, en fait il y en a bien d’autres. Il est difficile de choisir, vous devez donc absolument faire attention à des aspects supplémentaires.

Le code open source de l'outil permet de comprendre de quoi il s'agit et d'ajouter de nouvelles fonctionnalités plus rapidement. Mais si quelque chose ne fonctionne pas, vous ne devez compter que sur vous-même et sur l’aide de la communauté. Les outils payants fournissent un support qui peut parfois s'avérer critique.

Si la sécurité est votre priorité absolue, cela vaut la peine de travailler avec un outil local. Si ce n’est pas le cas, choisir une solution SaaS est une bonne option.

Enfin, afin d'assurer un processus de déploiement continu réellement efficace, vous devez formuler des critères dont les spécificités permettront d'affiner la gamme d'outils disponibles.

Skillbox vous recommande :

Source: habr.com

Ajouter un commentaire