Référence : qu'est-ce que la livraison continue

Auparavant, nous avons expliquĂ© sur l'intĂ©gration continue (CI). Poursuivons avec la livraison continue. Il s'agit d'un ensemble de mĂ©thodes de dĂ©veloppement logiciel. Cela aide Ă  s'assurer que le code est prĂȘt pour le dĂ©ploiement.

Référence : qu'est-ce que la livraison continue
/ Pixabay / bluebudgie / PL

Historique

L'expression livraison continue a Ă©tĂ© vue pour la premiĂšre fois dans le manifeste agile de 2001 en tĂȘte de la liste des principes fondamentaux : « La prioritĂ© est de rĂ©pondre aux besoins du client par la livraison continue de logiciels opĂ©rationnels ».

En 2010, Jez Humble et David Farley ont publié un livre sur la livraison continue. Selon les auteurs, CD complÚte l'approche Intégration Continue et facilite la préparation du code au déploiement.

AprÚs la publication du livre, l'approche a commencé à gagner en popularité et en quelques années est devenue presque universellement acceptée. Selon un sondage, réalisé auprÚs de plus de 600 développeurs et responsables IT en 2014, 97 % des dirigeants techniques et 84 % des programmeurs étaient familiers avec la livraison continue.

Aujourd'hui, cette approche reste l'une des plus populaires. Selon une étude de 2018 à laquelle ont participé la communauté des spécialistes IT DevOps et Jenkins Community, utilise la moitié de plus d'un millier de répondants.

Comment fonctionne la livraison continue

La base du CD est la prĂ©paration du code au dĂ©ploiement. Pour rĂ©aliser cette tĂąche, l'automatisation du processus de prĂ©paration du logiciel Ă  la publication est utilisĂ©e. Cela doit ĂȘtre standard pour diffĂ©rents environnements de dĂ©veloppement, ce qui aide Ă  identifier les points faibles plus rapidement et Ă  les optimiser. Par exemple, accĂ©lĂ©rer les tests.

Un exemple de processus de livraison continue ressemble Ă  ceci :

Référence : qu'est-ce que la livraison continue

Si l'automatisation des deux premiĂšres Ă©tapes est assurĂ©e par l'approche d'intĂ©gration continue, les deux suivantes sont gĂ©rĂ©es par la livraison continue. La stabilitĂ© du processus est Ă©galement assurĂ©e par des 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.

Les exigences pour le processus sont les suivantes :

  • DisponibilitĂ© des informations sur la prĂ©paration au passage en production et prĂ©paration pour le dĂ©ploiement immĂ©diat (les outils CD testent le code et permettent d'Ă©valuer l'effet des changements dans la version).
  • ResponsabilitĂ© globale pour le produit final. L'Ă©quipe produit — les chefs de produit, les dĂ©veloppeurs, les testeurs — se concentre sur le rĂ©sultat, et pas seulement sur sa zone de responsabilitĂ© (le rĂ©sultat est une version fonctionnelle, accessible aux utilisateurs du produit).

Dans le CD, on applique gĂ©nĂ©ralement la rĂ©vision de code, et pour recueillir les avis des clients — le principe du lancement progressif. Une nouvelle fonctionnalitĂ© est d'abord lancĂ©e pour un petit segment d'utilisateurs — leur expĂ©rience avec le produit aide Ă  identifier les dĂ©fauts et les bugs qui n'ont pas Ă©tĂ© remarquĂ©s lors des tests internes.

Quel est l'avantage de

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

De plus — selon une Ă©tude de 2016 (page 28 document) — les entreprises ayant adoptĂ© la livraison continue rĂ©solvent les problĂšmes de sĂ©curitĂ© de l'information 50% plus rapidement que celles qui n'utilisent pas cette approche. Dans une certaine mesure, cette diffĂ©rence peut ĂȘtre expliquĂ©e par le fonctionnement des outils d'automatisation des processus.

Un autre avantage est l'accélération des sorties de versions. Dans un studio de développement finlandais, la livraison continue a aidé à augmenter la vitesse de compilation du code de 25%.

Complexités potentielles

Le premier et principal problÚme est la nécessité de réorganiser les processus habituels. Pour démontrer les avantages de la nouvelle approche, il est conseillé de passer progressivement à la livraison continue, en commençant par les applications les moins exigeantes en termes de travail.

Le deuxiĂšme problĂšme potentiel est le grand nombre de branches de code. La consĂ©quence de la "ramification" — des conflits frĂ©quents et des pertes de temps significatives. Une solution possible est l'approche sans branches.

. 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 envisageable pourrait ĂȘtre le parallĂ©lisme des tests lors des premiĂšres Ă©tapes de l'implĂ©mentation de la livraison continue.

Il est Ă©galement nĂ©cessaire de former les employĂ©s Ă  l'utilisation des nouveaux outils — une formation prĂ©alable fera gagner du temps et de l'Ă©nergie aux dĂ©veloppeurs.

Référence : qu'est-ce que la livraison continue
/ Flickr / h.ger1969 / CC BY-SA

Outils

Voici quelques outils open-source pour la livraison continue :

  • GoCD — serveur pour la livraison continue sur Java et JRuby on Rails. 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. Sur le site officiel, vous pouvez trouver un guide de configuration.
  • Capistrano — framework pour crĂ©er des scripts automatisant le dĂ©ploiement d'applications en Ruby, Java ou PHP. Capistrano peut exĂ©cuter des commandes sur une machine distante en se connectant via SSH. Il travaille avec d'autres outils d'intĂ©gration et de livraison continues, comme le serveur CI Integrity.
  • Gradle — outil multiplateforme qui automatise l'ensemble du cycle de dĂ©veloppement d'applications. Gradle fonctionne avec Java, Python, C/C++, Scala, etc. Il s'intĂšgre avec Eclipse, IntelliJ et Jenkins.
  • Drone — plateforme pour la CD en Go. Drone peut ĂȘtre dĂ©ployĂ© sur site ou dans le cloud. L'outil est basĂ© sur des conteneurs et utilise des fichiers YAML pour les gĂ©rer.
  • Spinnaker — plateforme pour la livraison continue de code dans des systĂšmes multi-cloud. DĂ©veloppĂ© chez Netflix, les ingĂ©nieurs de Google ont jouĂ© un rĂŽle clĂ© dans le dĂ©veloppement de l'outil. Vous trouverez des instructions d'installation sur le site officiel.

À lire dans notre blog d'entreprise :

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster