Jenkins X - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Jenkins X

Jenkins X est une CI/CD plateforme open source native pour le cloud qui implémente les GitOps principes des environnements Kubernetes. Bien que Jenkins X ne soit pas exclusivement un GitOps outil tel qu'Argo CD ou Flux, il intègre des GitOps pratiques dans ses flux de travail.

GitOps soutien

Area Capacités des outils

Flux de travail centré sur Git

Jenkins X utilise les référentiels Git comme source principale de vérité pour le code et la configuration des applications. Toutes les modifications apportées aux applications et à l'infrastructure sont effectuées via Git.

L'environnement en tant que code (EAc)

Les environnements (tels que la mise en scène et la production) sont définis sous forme de code dans les référentiels Git. Cela permet de contrôler les versions et de revoir les configurations de l'environnement.

CI/CD Pipelines automatisés

Jenkins X configure automatiquement des CI/CD pipelines pour les projets. Ces pipelines sont définis en tant que code (pipeline en tant que code) et stockés dans Git.

Natif de Kubernetes

Jenkins X est spécialement conçu pour les environnements Kubernetes. Il utilise des ressources Kubernetes et des définitions de ressources personnalisées (). CRDs

Environnements de prévisualisation

Jenkins X crée automatiquement des environnements temporaires pour les pull requests. Il permet de consulter et de tester facilement les modifications avant les fusions.

Promotion entre les environnements

Jenkins X utilise une GitOps approche pour promouvoir les applications entre les environnements (par exemple, de la mise en scène à la production). Les promotions sont gérées à l'aide de pull requests afin de garantir des processus de révision et d'approbation appropriés.

Gestion du tableau de bord

Jenkins X utilise des diagrammes Helm pour empaqueter et déployer des applications. Les graphiques sont contrôlés par version dans les référentiels Git.

Gestion automatique des versions

Jenkins X gère automatiquement la gestion des versions des applications et des versions. Il utilise le versionnement sémantique et génère des notes de version.

ChatOps intégration

Jenkins X prend en charge ChatOps les opérations courantes. Cela correspond aux GitOps principes de l'automatisation et de la collaboration.

Extensibilité

Cet outil fournit un système de plugins pour étendre les fonctionnalités. Il permet l'intégration avec divers outils natifs du cloud.

Infrastructure en tant que code (IaC)

Jenkins X prend en charge Terraform, CloudFormation AWS Cloud Development Kit (AWS CDK), et d'autres outils IaC pour définir et gérer l'infrastructure. Les définitions d'infrastructure sont contrôlées par version parallèlement au code de l'application.

Annulations automatisées

Jenkins X prend en charge les annulations automatiques si des problèmes sont détectés après le déploiement.

Gestion des secrets

L'outil s'intègre à des solutions externes de gestion des secrets pour traiter les informations sensibles en toute sécurité.

Observabilité

Jenkins X fournit une intégration avec les outils de surveillance et de journalisation pour l'observabilité.

Support multicloud

Jenkins X est conçu pour fonctionner avec différents fournisseurs de cloud et environnements sur site.

Collaboration en équipe

Cet outil encourage la collaboration grâce à des flux de travail basés sur Git et à des pull requests.

Feedback continu

L'outil fournit des informations rapides sur les modifications par le biais d'environnements de test et de prévisualisation automatisés.

DevOps meilleures pratiques

Jenkins X met en œuvre DevOps les meilleures pratiques par défaut, y compris GitOps les principes.

Configuration déclarative

L'outil utilise des configurations déclaratives pour définir les applications et les environnements.

Mises à niveau automatiques

Jenkins X fournit des outils pour automatiser les mises à niveau de la plateforme Jenkins X elle-même.

Jenkins X met en œuvre ces GitOps principes pour créer une solution CI/CD complète pour Kubernetes. Il vise à automatiser et à rationaliser l'ensemble du processus de livraison des logiciels, de la validation du code au déploiement en production, tout en respectant les GitOps pratiques. Ce faisant, il aide les équipes à réaliser des déploiements plus rapides, plus fiables et plus cohérents dans des environnements cloud natifs.

La principale différence entre Jenkins X et des outils tels qu'Argo CD ou Flux réside dans le fait que Jenkins X fournit une CI/CD solution plus complète, incluant l'automatisation des builds et la gestion des pipelines, tout en intégrant les GitOps principes de déploiement et de gestion de l'environnement. Cela le rend particulièrement adapté aux équipes qui ont besoin d'une all-in-one solution qui couvre à la fois les aspects CI et CD dans un GitOps cadre unique.

Pour plus d'informations, consultez la documentation de Jenkins X.

Architecture

Le schéma suivant illustre un flux de travail GitOps sur CD piloté par Jenkins X. Pour des informations détaillées, consultez la documentation de Jenkins X.

Architecture et flux de travail Jenkins X activés AWS.

où :

  • Étape 1 : fusion par pull request (PR). Un développeur crée une pull request qui inclut des modifications apportées aux manifestes Kubernetes, aux graphiques Helm ou au code d'application stocké dans un référentiel Git. Après examen et approbation, le PR est fusionné dans la branche principale et met à jour l'état souhaité dans le contrôle de source.

  • Étape 2 : synchronisation du référentiel. Jenkins X déclenche automatiquement un CI/CD pipeline lorsqu'il détecte le changement. Le pipeline construit, teste et promeut l'application dans différents environnements (par exemple, la mise en scène et la production) en utilisant des GitOps principes.

  • Étape 3 : Déploiement vers des espaces de noms cibles Jenkins X met à jour les référentiels d'environnement (test et production) avec les nouvelles versions de l'application. Le cluster concilie automatiquement les modifications en extrayant les derniers manifestes de Git et en déployant l'application dans les espaces de noms appropriés.