Référence : comment fonctionne le processus d'intégration continue

Aujourd'hui, nous examinerons l'histoire du terme, discuterons des difficultés de mise en œuvre de CI et fournirons plusieurs outils populaires qui vous aideront à l'utiliser.

Référence : comment fonctionne le processus d'intégration continue
/flickr/ Altug Karakoc / CC BY / Photo modifiée

terme

L'intégration continue est une approche du développement d'applications qui implique des créations de projets et des tests de code fréquents.

L’objectif est de rendre le processus d’intégration prévisible et de détecter les bugs et erreurs potentiels à un stade précoce, afin de disposer de plus de temps pour les corriger.

Le terme intégration continue est apparu pour la première fois en 1991. Il a été introduit par le créateur du langage UML Grady Butch (Grady Booch). L'ingénieur a introduit le concept de CI dans le cadre de sa propre pratique de développement - Méthode Booch. Cela impliquait un raffinement progressif de l'architecture lors de la conception de systèmes orientés objet. Gradi n'a décrit aucune exigence d'intégration continue. Mais plus tard dans son livre «Analyse et conception orientées objet avec applications« Il a déclaré que l'objectif de la méthodologie est d'accélérer la publication des « versions internes ».

histoire

En 1996, CI a été adopté par les créateurs de la méthodologie programmation extrême (XP) - Kent Beck (Kent Beck) et Ron Jeffries (Ron Jeffries). L'intégration continue est devenue l'un des douze principes clés de leur approche. Les fondateurs de XP ont clarifié les exigences de la méthodologie CI et ont noté la nécessité de construire le projet plusieurs fois par jour.

Au début des années 2000, l’un des fondateurs de l’Agile Alliance commence à promouvoir la méthodologie d’intégration continue. Martin Fowler (Martin Fowler). Ses expériences avec CI ont conduit au premier outil logiciel dans ce domaine : CruiseControl. L’utilitaire a été créé par le collègue de Martin, Matthew Foemmel.

Le cycle de construction de l'outil est implémenté en tant que démon qui vérifie périodiquement le système de contrôle de version pour détecter les modifications apportées à la base de code. La solution peut être téléchargée aujourd'hui - elle distribué par sous une licence de type BSD.

Avec l’avènement des logiciels pour CI, de plus en plus d’entreprises ont commencé à adopter cette pratique. Selon une étude Forrester [page 5 rapport], en 2009, 86 % des cinquante entreprises technologiques interrogées utilisaient ou mettaient en œuvre des méthodes d'IC.

Aujourd'hui, la pratique de l'intégration continue est utilisée par des organisations d'une grande variété de secteurs. En 2018, un grand fournisseur de cloud a mené une enquête auprès des spécialistes informatiques des entreprises des secteurs des services, de l'éducation et de la finance. Sur les six mille personnes interrogées, 58 % ont déclaré utiliser les outils et principes de l'IC dans leur travail.

Comment ça marche

L'intégration continue repose sur deux outils : un système de contrôle de version et un serveur CI. Ce dernier peut être soit un appareil physique, soit une machine virtuelle dans un environnement cloud. Les développeurs téléchargent du nouveau code une ou plusieurs fois par jour. Le serveur CI le copie automatiquement avec toutes les dépendances et le construit. Ensuite, il exécute des tests d’intégration et unitaires. Si les tests réussissent, le système CI déploie le code.

Le schéma général du processus peut être représenté comme suit :

Référence : comment fonctionne le processus d'intégration continue

La méthodologie CI impose un certain nombre d'exigences aux développeurs :

  • Corrigez les problèmes immédiatement. Ce principe est venu à CI de la programmation extrême. La correction des bugs est la priorité absolue des développeurs.
  • Automatisez les processus. Les développeurs et les gestionnaires doivent constamment rechercher les goulots d'étranglement dans le processus d'intégration et les éliminer. Par exemple, il existe souvent un goulot d'étranglement dans l'intégration s'avère essai.
  • Organisez des assemblées aussi souvent que possible. Une fois par jour pour synchroniser le travail de l'équipe.

Difficultés de mise en œuvre

Le premier problème concerne les coûts d’exploitation élevés. Même si une entreprise utilise des outils CI ouverts (dont nous parlerons plus tard), elle devra quand même dépenser de l'argent pour le support de l'infrastructure. Cependant, les technologies cloud peuvent être la solution.

Ils simplifient l’assemblage de configurations informatiques à différentes échelles. Les plus de l'entreprise être payé uniquement pour les ressources utilisées, ce qui permet d'économiser sur l'infrastructure.

D'après des enquêtes [page 14 articles], l’intégration continue alourdit la charge des salariés de l’entreprise (du moins dans un premier temps). Ils doivent apprendre de nouveaux outils et leurs collègues ne les aident pas toujours à se former. Par conséquent, vous devez gérer de nouveaux frameworks et services en déplacement.

La troisième difficulté concerne les problèmes d’automatisation. Les organisations disposant d’une grande quantité de code existant qui n’est pas couvert par les tests automatisés sont confrontées à ce problème. Cela conduit au fait que le code est simplement réécrit avant la mise en œuvre complète de CI.

Référence : comment fonctionne le processus d'intégration continue
/flickr/ leur / CC BY-SA

Qui utilise

Les géants de l’informatique ont été parmi les premiers à apprécier les avantages de cette méthodologie. Google utilise intégration continue depuis le milieu des années 2000. CI a été implémenté pour résoudre le problème des retards dans le moteur de recherche. L'intégration continue a permis de détecter et de résoudre rapidement les problèmes. Désormais, CI est utilisé par tous les départements du géant informatique.

L'intégration continue aide également les petites entreprises, et les outils CI sont également utilisés par les organisations financières et de santé. Par exemple, chez Morningstar, les services d'intégration continue ont permis de corriger les vulnérabilités 70 % plus rapidement. Et la plateforme médicale Philips Healthcare a pu doubler la vitesse de mise à jour des tests.

Outils

Voici quelques outils populaires pour CI :

  • Jenkins est l'un des systèmes CI les plus populaires. Il prend en charge plus d'un millier de plugins pour l'intégration avec divers VCS, plates-formes cloud et autres services. Nous utilisons également Jenkins chez 1cloud : outil inclus dans notre système DevOps. Il consulte régulièrement la branche Git destinée aux tests.
  • Robot de construction — un framework python pour écrire vos propres processus d'intégration continue. La configuration initiale de l'outil est assez compliquée, mais cela est compensé par les larges options de personnalisation. Parmi les avantages du cadre, les utilisateurs soulignent sa faible intensité en ressources.
  • Hall CI est un serveur de Pivotal qui utilise des conteneurs Docker. Concourse CI s'intègre à tous les outils et systèmes de contrôle de version. Les développeurs notent que le système est adapté au travail dans des entreprises de toutes tailles.
  • CI Gitlab est un outil intégré au système de contrôle de version GitLab. Le service s'exécute dans le cloud et utilise des fichiers YAML pour la configuration. Comme Concourse, Gitlab CI s'applique Conteneurs Docker qui permettent d'isoler différents processus les uns des autres.
  • Codification est un serveur cloud CI qui fonctionne avec GitHub, GitLab et BitBucket. La plate-forme ne nécessite pas de longue configuration initiale : des processus CI standard préinstallés sont disponibles dans Codeship. Pour les petits projets (jusqu'à 100 builds par mois) et open source, Codeship est disponible gratuitement.

Documents de notre blog d'entreprise :

Source: habr.com

Ajouter un commentaire