Jump to section

Définition du GitOps

Copier l'URL

Red Hat classé leader dans le rapport Magic Quadrant™ de Gartner® de 2023

Red Hat a obtenu la meilleure note pour sa capacité d'exécution et sa vision globale dans la catégorie Gestion des conteneurs du rapport Magic Quadrant de Gartner de 2023.

L'approche GitOps repose sur l'utilisation de référentiels Git comme unique source de vérité pour distribuer l'infrastructure en tant que code. Le code envoyé vérifie le processus d'intégration continue, tandis que le processus de distribution continue vérifie et applique les exigences relatives à certains aspects, comme la sécurité, l'infrastructure en tant que code (IaC), ou toute autre limite fixée pour le framework d'application. Toutes les modifications apportées au code font l'objet d'un suivi, ce qui facilite les mises à jour et le contrôle de versions en cas de restauration.

L'approche GitOps apporte les avantages suivants :

  • Un workflow standard pour le développement d'applications
  • Une sécurité renforcée avec la définition des besoins de l'application dès le départ
  • Une meilleure fiabilité grâce à la visibilité et au contrôle de versions via Git
  • La cohérence entre tous les clusters, clouds et environnements sur site

Vous pouvez associer plusieurs autres outils pour créer un framework GitOps, comme les référentiels Git, Kubernetes, les outils d'intégration et de distribution continues (CI/CD) et les outils de gestion des configurations.

Approche GitOps de la distribution continue sur Kubernetes

Découvrez un nouvel épisode du podcast GitOps Guide to the Galaxy sur OpenShift.tv, chaque jeudi à 15h, heure de l'Est (21h, heure de Paris).

Les principes GitOps reprennent la philosophie et les approches de la culture DevOps et fournissent un framework pour commencer à obtenir des résultats. Selon le rapport annuel State of DevOps, les entreprises qui ont adopté l'approche DevOps observent une accélération significative de l'innovation au niveau des applications et du code, ainsi qu'une plus grande stabilité. 

Avec l'utilisation de workflows basés sur Git que les développeurs connaissent déjà, l'approche GitOps étend les processus qui existent en matière de développement au déploiement, à la gestion du cycle de vie des applications et à la configuration de l'infrastructure. Chaque modification apportée tout au long du cycle de vie des applications est retracée dans le référentiel Git et peut être vérifiée. En apportant des modifications via Git, les développeurs ont enfin la possibilité de coder à leur propre rythme, sans attendre que les ressources soient attribuées ou approuvées par les équipes d'exploitation.

Pour les équipes d'exploitation, la transparence des changements permet de repérer et de reproduire rapidement les problèmes, ce qui renforce la sécurité globale. Avec une piste d'audit à jour, les entreprises peuvent réduire le nombre de modifications non souhaitées et les corriger avant leur mise en production. 

Cette possibilité de modifier le code entre le développement et la production permet aux entreprises de répondre de manière plus agile aux évolutions du secteur et du paysage concurrentiel.

Pour commencer, votre infrastructure doit pouvoir être gérée de façon déclarative. C'est pourquoi le GitOps est souvent utilisé comme modèle d'exploitation pour Kubernetes et le développement d'applications cloud-native, et permet également le déploiement continu pour Kubernetes.

Il n'est cependant pas obligatoire de recourir à Kubernetes. La technique GitOps convient pour d'autres pipelines d'exploitation de l'infrastructure et de déploiement.   

Comme Kubernetes, Ansible est un moteur qui gère l'état souhaité des systèmes informatiques traditionnels grâce à la modélisation déclarative. Il est donc parfaitement adapté pour le GitOps. Ansible offre la possibilité de gérer des applications sur Kubernetes, sur une infrastructure existante, ou sur les deux en utilisant un plan de contrôle et des modules Ansible.

L'approche GitOps permet de créer des pipelines de développement, de coder des applications, de gérer des configurations, de provisionner des clusters Kubernetes et de mettre en œuvre des déploiements sur Kubernetes ou des registres de conteneurs.

Quelle est la différence entre Ansible et Red Hat Ansible Automation Platform ?

Vous souhaitez commencer à utiliser Red Hat OpenShift GitOps ?

Le GitOps peut être considéré comme une évolution de l'IaC (Infrastructure-as-Code) qui utilise Git comme système de contrôle des versions pour les configurations de l'infrastructure. L'IaC respecte généralement une approche déclarative de la gestion de l'infrastructure en définissant l'état souhaité du système et en suivant son état réel.

Avec le GitOps, vous devez aussi déclarer l'état souhaité du système. Vous pouvez en outre contrôler dans Git les versions de l'ensemble du code source et des fichiers de configuration, à l'aide d'outils déclaratifs.

Les pipelines CI/CD sont généralement déclenchés par un événement externe (du code transmis à un référentiel, par exemple). Dans le workflow GitOps, des requêtes « pull » entraînent des changements qui modifient l'état du système dans le référentiel Git. 

Le déploiement d'une nouvelle version dans le cadre d'un workflow GitOps s'effectue à l'aide d'une requête « pull » qui vient modifier l'état déclaré du cluster. L'opérateur GitOps, situé entre le pipeline GitOps et le système d'orchestration, détecte la validation (« commit ») et déclare le nouvel état reçu de Git.  

Une fois les changements validés et fusionnés, ils sont automatiquement répercutés sur l'infrastructure. Les développeurs peuvent continuer à suivre le workflow standard et les pratiques CI/CD.

L'opérateur utilisé pour le modèle GitOps est souvent un opérateur Kubernetes. L'opérateur compare l'état souhaité qui a été déclaré dans le référentiel avec l'état réel de l'infrastructure déployée, et met à jour l'infrastructure en cas de différence. Il peut également surveiller un référentiel d'images de conteneurs et procéder à des mises à jour selon le même principe afin de déployer de nouvelles images.

L'observabilité, c'est-à-dire la capacité d'un système à pouvoir être observé, est un concept important du GitOps. Elle permet de vérifier que l'état souhaité et l'état observé (ou état réel) correspondent.

Grâce aux requêtes « pull » et à un système de contrôle des versions tel que Git, vous bénéficiez d'une bonne visibilité sur le processus de déploiement. Vous pouvez ainsi voir et suivre les changements apportés au système, accéder à un journal d'audit et restaurer des versions précédentes en cas de problème.

Le workflow GitOps augmente la productivité et accélère le développement et le déploiement, tout en améliorant la stabilité et la fiabilité des systèmes.

Les approches GitOps et DevOps reposent sur des principes et des objectifs communs. Le DevOps encourage le changement culturel en permettant aux équipes de développement et d'exploitation de travailler ensemble.

L'approche GitOps met à disposition des outils et un framework pour adopter les pratiques DevOps, notamment la collaboration, les pipelines CI/CD et le contrôle des versions, et les applique à l'automatisation de l'infrastructure et au déploiement des applications.Les développeurs continuent à utiliser les référentiels de code habituels tandis que les équipes d'exploitation mettent en place les autres éléments requis.

En savoir plus sur Red Hat Developer Hub

Red Hat® OpenShift® est une plateforme Kubernetes déclarative qui permet aux administrateurs de configurer et gérer les systèmes selon les principes GitOps. L'utilisation d'une infrastructure et d'applications Kubernetes garantit la cohérence au niveau des clusters et des cycles de développement. La solution Red Hat OpenShift regroupe l'administration et la gestion des applications réparties entre les ressources sur site et dans un cloud public pour :

  • vérifier que les clusters présentent des états similaires (configurations, surveillance, stockage), en précisant les contraintes de l'application dès le début de son cycle de développement ;
  • restaurer une modification du code dans plusieurs clusters en récupérant ces derniers à partir d'un état connu ;
  • déployer une modification envoyée dans Git sur plusieurs clusters Red Hat OpenShift ;
  • associer des configurations modélisées dans le cloud hybride.

 

GitOps Red Hat OpenShift Kubernetes diagram
 

Nous collaborons à des projets Open Source comme ArgoCD et Tekton afin de mettre en place un framework pour l'approche GitOps. Installez l'opérateur Red Hat OpenShift Pipelines et découvrez comment l'opérateur Red Hat OpenShift GitOps développe de nouveaux outils avec Argo pour gérer les pratiques GitOps au sein des déploiements Red Hat OpenShift existants.


Red Hat OpenShift Service on AWS (ROSA) est une plateforme d'applications entièrement gérée et prête à l'emploi qui permet aux entreprises de renforcer l'efficacité de leur exploitation, d'accorder la priorité à l'innovation, mais aussi de créer, déployer et mettre à l'échelle des applications rapidement dans un environnement AWS natif. 

Ainsi, ROSA aide les équipes à gérer les clusters dans tous les environnements, à créer et déployer des clusters à l'aide d'outils en libre-service, ainsi qu'à automatiser les correctifs et les mises à niveau de sécurité. À titre d'exemple, ROSA facilite la modernisation d'applications en concédant aux administrateurs et aux équipes chargées de l'infrastructure les mêmes avantages que les propriétaires d'applications.


Le service Red Hat Advanced Cluster Management for Kubernetes permet une gestion multicluster du cycle de vie des clusters Kubernetes. Il repose sur un framework de souscription et de canaux de distribution, ainsi que sur des règles de placement, pour déployer automatiquement des applications dans un modèle d'état souhaité sur plusieurs clusters.


La solution Red Hat Ansible® Automation Platform se charge de faire passer vos systèmes à l'état souhaité, quel que soit leur état actuel. Les playbooks Ansible, rédigés en YAML, décrivent l'état souhaité de vos systèmes. Ils sont généralement stockés dans un système de contrôle de source. 

La solution Ansible Automation Platform permet d'appliquer les principes GitOps aux systèmes informatiques traditionnels, comme les environnements en réseau, cloud et bare metal, en plus de Kubernetes. Elle intègre des scripts web d'automatisation compatibles avec les pratiques IaC (Infrastructure-as-Code) et GitOps. Les scripts web servent à créer un lien natif entre un référentiel Git et la solution Ansible Automation Platform. Une fois le lien établi, Ansible Automation Platform détecte les validations Git et utilise ces événements pour déclencher des tâches d'automatisation afin de mettre à jour des projets, gérer des inventaires et réaliser des déploiements.

Grâce à l'intégration des solutions Red Hat Advanced Cluster Management, Red Hat OpenShift GitOps et Red Hat Ansible Automation Platform, les équipes DevOps peuvent gérer les configurations à grande échelle et en assurer la maintenance afin d'optimiser les pipelines CI/CD.

Pour aller plus loin

Article de blog

Red Hat OpenShift Pipelines and OpenShift GitOps are now Generally Available

Red Hat OpenShift Pipelines et OpenShift GitOps sont les piliers du modèle GitOps et de l'approche CI/CD cloud-native sur Red Hat OpenShift Container Platform.

Article

L'approche CI/CD

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

Article de blog

Understanding GitOps with Red Hat Advanced Cluster Management

Découvrez comment l'approche GitOps peut vous aider à déployer davantage d'applications dans plusieurs clouds.

En savoir plus sur le DevOps

Produits

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources