Contexte: qu'est-ce que la livraison continue

Plus tôt, nous avons parlé de l'intégration continue (CI). Continuez avec la livraison continue. Il s'agit d'un ensemble de méthodes de développement logiciel. Cela permet de garantir que le code est prêt pour le déploiement.


/ Pixabay / bluebudgie / PL

L'histoire


La combinaison de la livraison continue était visible dans le manifeste agile de 2001 au début de la liste des principes de base: "La priorité est la solution des problèmes des clients en utilisant la fourniture continue des logiciels appropriés."

En 2010, Jez Humble et David Farley ont publié la livraison continue. Selon les auteurs, le CD complète l'approche d' intégration continue et simplifie la préparation du code pour le déploiement.

Après la publication du livre, l'approche a commencé à gagner en popularité et en quelques années seulement, elle est devenue presque universellement acceptée. Selon une enquête menée auprès de plus de 600 développeurs et responsables informatiques en 2014, 97% des responsables techniques et 84% des programmeurs connaissaient la livraison continue.

Maintenant, cette approche reste l'une des plus populaires. Selon une étude de 2018 qui a attiré la communauté informatique communautaire DevOps et Jenkins , la moitié des plus d'un millier de répondants l'utilisent.

Fonctionnement de la livraison continue


La base du CD est la disponibilité du code pour le déploiement. Pour terminer cette tâche, l'automatisation du processus de préparation du logiciel pour la sortie est utilisée. Il devrait être standard pour divers environnements de développement, ce qui vous aidera à trouver rapidement les faiblesses et à les optimiser. Par exemple, accélérez les tests.

Voici un exemple du processus de livraison continue:



Si l'approche d'intégration continue est responsable de l'automatisation des deux premières étapes, alors des deux suivantes - la livraison continue. La stabilité du processus est assurée, entre autres, grâce aux systèmes de gestion de configuration . Ils surveillent les changements dans l'infrastructure, les bases de données et les dépendances. Le déploiement lui-même peut être automatisé ou effectué manuellement.

Le processus a les exigences suivantes:

  • Disponibilité des informations sur la disponibilité à entrer dans l'environnement de production et la disponibilité à une diffusion immédiate (des outils CD testent le code et permettent d'évaluer l'effet des changements dans la version).
  • Responsabilité globale du produit final. L'équipe produit - managers, développeurs, testeurs - pense au résultat, et pas seulement à son domaine de responsabilité (le résultat est une version de travail, qui est disponible pour les utilisateurs du produit).

Un CD utilise généralement la révision de code , et le principe du lancement sombre est utilisé pour recueillir les opinions des clients. Tout d'abord, une nouvelle fonctionnalité est publiée pour un petit segment d'utilisateurs - leur expérience avec le produit permet de trouver des failles et des bugs qui n'ont pas été détectés lors des tests internes.

Quel est l'avantage


La livraison continue permet de simplifier le déploiement de code, ce qui a un effet positif sur la productivité et réduit la probabilité d'épuisement professionnel des employés. En fin de compte, cela réduit les coûts de développement globaux. Par exemple, un CD a aidé l'une des équipes HP à réduire ces coûts de 40%.

De plus, selon une étude de 2016 (page 28 du document ), les entreprises qui ont implémenté des CD sont 50% plus rapides à résoudre les problèmes de SI que celles qui n'utilisent pas l'approche. Dans une certaine mesure, cette différence peut s'expliquer par le travail des outils d'automatisation des processus.

Un autre avantage est l'accélération des versions. Dans le studio de développement finlandais, la livraison continue a permis d' augmenter la vitesse d'assemblage du code de 25%.

Difficultés potentielles


Le premier et principal problème est la nécessité de reconstruire des processus familiers. Pour montrer les avantages de la nouvelle approche, vous devez passer progressivement au CD, en commençant par les applications les moins gourmandes en main-d'œuvre.

Le deuxième problème potentiel est un grand nombre de branches de code. La conséquence de la «ramification» est des conflits fréquents et des pertes consécutives de beaucoup de temps. Une solution possible est l'approche sans succursales .

En particulier, dans certaines entreprises, les principales difficultés se posent lors des tests - cela prend trop de temps. Les résultats des tests doivent souvent être analysés manuellement, mais la parallélisation des tests aux premiers stades de la mise en œuvre du CD peut être une solution possible.

Vous devez également former les employés à travailler avec de nouveaux outils - un programme éducatif préliminaire fera gagner du temps et des efforts aux développeurs.


/ Flickr / h.ger1969 / CC BY-SA

Les outils


Voici quelques outils ouverts pour la livraison continue:

  • GoCD est un serveur de livraison continue en Java et JRuby on Rails. Vous permet de contrôler l'ensemble du processus de livraison d'application: build - test - release. L'outil est sous licence Apache 2.0. Sur le site officiel, vous trouverez le guide d'installation .
  • Capistrano - un cadre pour créer des scripts qui automatisent le déploiement d'applications en Ruby, Java ou PHP. Capistrano est capable d'exécuter des commandes sur une machine distante, en s'y connectant via SSH. Fonctionne avec d'autres outils d'intégration et de livraison en continu, tels que le serveur Integrity CI.
  • Gradle est un outil multiplateforme qui automatise l'ensemble du cycle de développement d'applications. Gradle fonctionne avec Java, Python, C / C ++, Scala, etc. Il y a intégration avec Eclipse, IntelliJ et Jenkins.
  • Drone est une plateforme Go CD. Le drone peut être déployé sur site ou dans le cloud. L'outil est construit sur la base de conteneurs et utilise des fichiers YAML pour les gérer.
  • Spinnaker est une plate-forme pour la livraison continue de code dans des systèmes multi-cloud. Développé par Netflix, un rôle important dans le développement de l'outil a été joué par les ingénieurs de Google. Les instructions d'installation sont disponibles sur le site officiel .

Que lire sur notre blog d'entreprise:

Source: https://habr.com/ru/post/fr449364/


All Articles