Aide : qu'est-ce que la livraison continue

Auparavant, nous dit à propos de l'Intégration Continue (CI). Continuons avec la Livraison Continue. Il s'agit d'un ensemble de méthodes de développement de logiciels. Cela permet de garantir que votre code est prêt pour le déploiement.

Aide : qu'est-ce que la livraison continue
/Pixabay/ perruche bleue / PL

histoire

L'expression livraison continue pouvait être vue dans manifeste agile de 2001 au début de la liste des principes de base : « La priorité est de résoudre les problèmes des clients grâce à la livraison continue de logiciels à jour. »

En 2010, Jez Humble et David Farley ont sorti livre par Livraison Continue. Selon les auteurs, le CD complète l'approche Intégration continue et vous permet de simplifier 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 sondage, 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.

Aujourd'hui, cette approche reste l'une des plus populaires. Selon une étude de 2018 impliquant la communauté informatique DevOps et Jenkins Community, il utilise la moitié des plus d'un millier de personnes interrogées.

Comment fonctionne la livraison continue ?

La base du CD est la préparation du code pour le déploiement. Pour accomplir cette tâche, l'automatisation du processus de préparation du logiciel à la sortie est utilisée. Il doit être standard dans différents environnements de développement, ce qui permettra de trouver rapidement les points faibles et de les optimiser. Par exemple, accélérez les tests.

Un exemple de processus de livraison continue ressemble à ceci :

Aide : qu'est-ce que la livraison continue

Si l’approche d’intégration continue est responsable de l’automatisation des deux premières étapes, alors la livraison continue est responsable des deux suivantes. La stabilité du processus est assurée, entre autres, par des systèmes gestion de la 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.

Les exigences suivantes sont imposées au processus :

  • Disponibilité d'informations sur l'état de préparation à l'entrée dans l'environnement de production et l'état de préparation à la publication immédiate (les outils CD testent le code et permettent d'évaluer l'effet des modifications apportées à la version).
  • Responsabilité globale du produit final. L'équipe produit - managers, développeurs, testeurs - réfléchit au résultat, et pas seulement à son domaine de responsabilité (le résultat est une version de travail disponible pour les utilisateurs du produit).

Dans les CD, il est généralement utilisé examen du code, et pour recueillir les avis des clients - le principe lancement sombre. Une nouvelle fonctionnalité est d'abord proposée à un petit segment d'utilisateurs : leur expérience d'interaction avec le produit permet de détecter les lacunes et les bugs qui n'ont pas été remarqués lors des tests internes.

Quel est l'avantage

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

De plus, selon une étude de 2016 (page 28 Document) - les entreprises qui ont mis en œuvre le CD résolvent les problèmes de sécurité de l'information 50 % plus rapidement que celles qui n'utilisent pas l'approche. Dans une certaine mesure, cette différence peut s’expliquer par les performances des outils d’automatisation des processus.

Un autre avantage est l'accélération des sorties. Livraison continue au studio de développement finlandais aidé augmenter la vitesse d'assemblage du code de 25 %.

Difficultés potentielles

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

Le deuxième problème potentiel est le grand nombre de branches de code. La conséquence du « branchement » est des conflits fréquents et une perte de temps supplémentaire. Solution possible - approche pas de succursales.

En particulier, dans certaines entreprises, les principales difficultés surviennent lors des tests : cela prend trop de temps. Les résultats des tests doivent souvent être analysés manuellement, mais une solution possible pourrait consister à paralléliser les tests dès les premières étapes de la mise en œuvre du CD.

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

Aide : qu'est-ce que la livraison continue
/flickr/ h.ger1969 / CC BY-SA

Outils

Voici quelques outils ouverts pour la livraison continue :

  • Aller au CD — serveur pour livraison continue en Java et JRuby on Rails. Vous permet de contrôler l’ensemble du processus de livraison de l’application : build-test-release. L'outil est distribué sous la licence Apache 2.0. Vous pouvez le trouver sur le site officiel guide d'installation.
  • Capistrano — un framework 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 continue, 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 existe une intégration avec Eclipse, IntelliJ et Jenkins.
  • Drone - Plateforme CD en langage Go. Le drone peut être déployé sur site ou dans le cloud. L'outil est construit sur des conteneurs et utilise des fichiers YAML pour les gérer.
  • Spinnaker — une plateforme pour la livraison continue de code dans les systèmes multi-cloud. Développé par Netflix, les ingénieurs de Google ont joué un rôle important dans le développement de l'outil. Instructions d'installation retrouvez-le sur le site officiel.

Que lire sur notre blog d'entreprise :

Source: habr.com

Ajouter un commentaire