Référence : comment fonctionne le processus d'Intégration Continue

Aujourd'hui, nous allons examiner l'histoire du terme, discuter des défis de l'implémentation de CI et fournir quelques outils populaires qui aideront à travailler avec.

Référence : comment fonctionne le processus d'Intégration Continue
/ Flickr / Altug Karakoc / CC BY / Фото изменено

Terme

L'intégration continue (Continuous Integration) est une approche du développement d'applications qui implique des constructions fréquentes du projet et des tests du code.

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

Le terme d'intégration continue est apparu pour la première fois en 1991. Il a été introduit par le créateur du langage UML, Grady Booch (. Grady Booch). L'ingénieur a présenté le concept de CI comme une partie de sa propre pratique de développement - la méthode Booch. Il impliquait un raffinement incrémental de l'architecture lors de la conception de systèmes orientés objet. Grady n'a pas décrit de exigences spécifiques pour l'intégration continue. Mais plus tard, dans son livre «Object-Oriented Analysis and Design with Applications», il a déclaré que la tâche de la méthode était d'accélérer la sortie des « versions internes ».

Historique

En 1996, les créateurs de la méthodologie du développement 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 précisé les exigences de la méthodologie CI et ont souligné la nécessité de construire le projet plusieurs fois par jour.

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

Le cycle de construction dans l'outil est réalisé sous forme de démon, vérifiant périodiquement le système de gestion de version pour des modifications dans la base de code. La solution peut être téléchargée aujourd'hui - elle est distribué est sous licence de type BSD.

Avec l'apparition des logiciels pour CI, de plus en plus d'entreprises ont commencé à adopter cette pratique. Selon une étude de Forrester [p. 5 rapport], en 2009, 86 % des cinquante entreprises technologiques interrogées utilisaient ou implémentaient des méthodes CI.

Aujourd'hui, la pratique de l'intégration continue est adoptée par des organisations dans divers secteurs. En 2018, un grand fournisseur de services cloud a réalisé une enquête auprès de professionnels de l'IT dans les domaines des services, de l'éducation et des finances. Parmi six mille répondants, 58 % ont déclaré utiliser des outils et principes CI dans leur travail.

Comment cela fonctionne

L'intégration continue repose sur deux outils : un système de contrôle de version et un serveur CI. Ce dernier peut être un dispositif physique ou une machine virtuelle dans un environnement cloud. Les développeurs chargent un nouveau code une ou plusieurs fois par jour. Le serveur CI copie automatiquement ce code avec toutes ses dépendances et exécute la compilation. Ensuite, il lance les tests d'intégration et les tests unitaires. Si les tests sont concluants, 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 plusieurs exigences aux développeurs :

  • Corriger les problèmes immédiatement. Ce principe est issu de la programmation extrême. La correction des bogues est la tâche la plus prioritaire pour les développeurs.
  • Automatiser les processus. Les développeurs et les gestionnaires doivent constamment rechercher les « goulets d'étranglement » du processus d'intégration et les éliminer. Par exemple, le « goulot d'étranglement » d'intégration se trouve souvent dans les tests. les tests.
  • Réaliser des compilations aussi fréquemment que possible. Une fois par jour, pour synchroniser le travail de l'équipe.

Difficultés d'implémentation

Le premier problème est les coûts opérationnels élevés. Même si l'entreprise utilise des outils CI open source (dont nous parlerons plus tard), elle devra tout de même dépenser de l'argent pour maintenir l'infrastructure. Cependant, les technologies cloud peuvent apporter une solution.

Elles simplifient la compilation de configurations informatiques de tailles variées. De plus, les entreprises ne paient que pour les ressources utilisées, ce qui permet d'économiser sur l'infrastructure.

Selon des enquêtes [p. 14 article], l'intégration continue augmente la charge de travail des employés de l'entreprise (du moins au début). Ils doivent maîtriser de nouveaux outils et leurs collègues ne les aident pas toujours dans leur apprentissage. Ils doivent donc se familiariser avec de nouveaux frameworks et services « sur le tas ».

La troisième difficulté concerne les problèmes d'automatisation. Les organisations disposant d'un volume important de code hérité, non couvert par des tests automatisés, sont confrontées à cela. Cela conduit à ce que le code soit simplement réécrit avant la mise en œuvre complète de l'intégration continue.

Référence : comment fonctionne le processus d'Intégration Continue
/ Flickr / theilr / CC BY-SA

Qui utilise

Parmi les premiers à avoir reconnu les avantages de cette méthode figurent les géants de l'IT. Google utilise a adopté l'intégration continue au milieu des années 2000. CI a été mis en œuvre pour résoudre les problèmes de délais dans le fonctionnement de son moteur de recherche. L'intégration continue a permis de détecter et de corriger rapidement les erreurs. Aujourd'hui, CI est utilisé par tous les départements du géant de l'IT.

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

Outils

Voici quelques outils populaires pour CI :

  • Jenkins — l'un des systèmes CI les plus populaires. Il prend en charge plus de mille plugins pour intégration avec différents VCS, plateformes cloud et autres services. Jenkins est également utilisé par nous chez 1cloud : l'outil fait partie de notre système DevOps. Il vérifie régulièrement la branche Git destinée aux tests.
  • Buildbot — un framework Python pour créer ses propres processus d'intégration continue. La configuration initiale de l'outil est assez complexe, mais cela est compensé par de larges possibilités de personnalisation. Parmi les avantages du framework, les utilisateurs soulignent sa faible consommation de ressources.
  • Concourse CI — un serveur de Pivotal qui utilise des conteneurs Docker. Concourse CI s'intègre avec n'importe quel outil et système de contrôle de versions. Les développeurs notent que le système est adapté aux entreprises de toutes tailles.
  • Gitlab CI — un outil incorporé dans le système de contrôle de version GitLab. Le service fonctionne dans le cloud et utilise des fichiers YAML pour la configuration. Comme Concourse, Gitlab CI utilise des conteneurs Docker, qui aident à isoler les différents processus les uns des autres.
  • Codeship — un serveur CI cloud qui fonctionne avec GitHub, GitLab et BitBucket. La plateforme ne nécessite pas de configuration initiale longue — des processus CI prédéfinis standards sont disponibles sur Codeship. Pour les petits projets (jusqu'à 100 builds par mois) et open source, Codeship est accessible gratuitement.

Articles de 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