Environnements de test à la demande
Le fait d’exécuter des tests dans des containers permet de réduire le nombre de variables dans l’environnement et de changements entre les environnements de développement et de production. Les environnements de test éphémères rendent votre cycle CI/ CD plus agile. Au lieu de sans arrêt extraire un build d’un serveur CI pour l’installer dans un environnement de test séparé, l’équipe d’assurance qualité peut exécuter les tests sur une image de container. Il est beaucoup plus simple de monter des containers, sans contraintes d’installation ou de configuration séparées, et de les détruire une fois qu’ils ne sont plus utiles. Les pratiques CI/ CD peuvent également et même doivent s’appliquer à l’infrastructure et aux applications tierces.
premiers serveurs d’intégration continue en Open Source qui soit apparu et il reste encore l’un des plus utilisés à l’heure actuelle. Jenkins faisait à l’origine partie du projet Hudson, mais la communauté et la base de code open source se sont scindées à la suite de conflits de droits sur les marques avec … Oracle – eh oui, encore… – après le rachat de Sun Microsystems, grand bienfaiteur de l’humanité numérique – Sun, pas Oracle. Hudson a été publié en 2005 alors que la première sortie sous le nom de Jenkins n’a été faite qu’en 2011. Au fil des années, Jenkins a évolué pour devenir un système puissant et flexible d’automatisation des tâches liées aux logiciels. Jenkins sert principalement de cadre d’automatisation avec une grande partie de la logique implémentée via une bibliothèque de plugins. Tout est géré par des plugins, de l’écoute de points d’ancrage web ou l’observation de référentiels jusqu’à la création d’environnements de build et de prise en charge linguistique. Même si cela offre une grande flexibilité, votre processus de CI risque de s’appuyer sur de nombreux plugins tiers, ce qui rend l’ensemble assez fragile. Son workflow de pipeline, lui aussi fourni via un plugin, est disponible depuis 2016. Ce processus de CI peut être défini de manière déclarative ou impérative à l’aide du langage Groovy dans des fichiers du référentiel ou via des zones de texte dans l’interface utilisateur web de Jenkins. La distribution JCASC ( Jenkins Configuration as Code) permet de définir une configuration « sans contact » via un fichier YAML. Jenkins Evergreen simplifie encore ce processus en fournissant des configurations Jenkins prédéfinies basées sur différents cas d’utilisation ( use case). Ces distributions sont plus faciles à maintenir et à mettre à niveau que la distribution Jenkins classique. Jenkins 2 a introduit la fonctionnalité de pipeline natif avec deux types de pipelines. Jenkins X représente une transformation importante de Jenkins. Il prend en charge JCASC et Evergreen et permet de les utiliser de façon optimale sur Kubernetes. L’outil IC Jenkins ressemble assez à Butler, mais en plus orienté développeur.
Cloudbees
Cloudbees était au départ un fournisseur de plate- forme cloud ( Paas) avant de proposer ses propres outils d’intégration continue, dont Jenkins. Parmi les produits de l’entreprise californienne, on retrouve un service cloud ( DEV@ Cloud), ainsi que des distributions commerciales et plutôt haut de gamme de Jenkins, comme Jenkins Enterprise et Jenkins Operations Center.
Flux
Flux est l’outil de CD de Weave qui, rappelons- le, est sous la gouvernance de la CNCF ( Cloud Native Computing Foundation) en tant que Sandbox Project. C’est un opérateur Kubernetes permettant de synchroniser les manifests Kubernetes contenus dans un dépôt Git et de les déployer. Il s’inscrit donc dans une stratégie pull. Flux est extensible et peut facilement être complété par de nombreux outils de templating de manifests tels que kustomize ou jsonnet. Il intègre les modes pull et watch des registries docker. En cas de modifications sur un registry, il peut commiter sur le dépôt git afin de mettre à jour le tag de l’image docker utilisée dans un manifest. Il peut aussi envoyer une alerte via Slack, par exemple lors d’une divergence constatée entre les manifests stockés