Account Connexion
Jump to section

Le GitOps, qu'est-ce que c'est ?

Copier l'URL

Le GitOps désigne un ensemble de pratiques de gestion de l'infrastructure et des configurations d'applications qui reposent sur l'utilisation de Git, un système de contrôle des versions Open Source. Git est utilisé comme unique source de vérité pour la formalisation déclarative de l'infrastructure et des applications.

Selon les principes GitOps, l'approvisionnement et le déploiement de l'infrastructure sont gérés automatiquement par des requêtes « pull » dans Git. Le référentiel Git contient l'état du système, ce qui signifie que tous les changements apportés au système sont visibles et vérifiables.

Le GitOps met l'accent sur les activités de développement et permet de gérer l'infrastructure avec les outils et processus utilisés pour le développement de logiciels. Outre Git, le choix des outils est libre.

Le terme « GitOps » a été inventé par Weaveworks.

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.

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

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 (intégration continue/distribution continue)

L'opérateur utilisé pour 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.

Le 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.

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 du cycle 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.

Red Hat OpenShift GitOps est un module complémentaire de Red Hat OpenShift contenant divers outils, dont Argo CD, qui facilitent la mise en œuvre des workflows GitOps pour la configuration des clusters et la distribution des applications. 

Red Hat Ansible Automation Platform est un moteur qui gère l'état souhaité des systèmes et permet de les modéliser de façon déclarative. 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 Red Hat Ansible Automation Platform se charge de faire passer vos systèmes à l'état souhaité, quel que soit leur état actuel. 

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 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.

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

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

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Red Hat Open Innovation Labs

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.

Red Hat Consulting

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

Liste de contrôle

L'automatisation d'entreprise selon le modèle DevOps

Étude de cas

Airbus s'appuie sur le DevOps pour créer une plateforme lors d'un stage Open Innovation Labs

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produits

Outils

Tester, acheter, vendre

Communication

À propos de Red Hat

Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.

Inscrivez-vous à la newsletter Red Hat Shares.

S'inscrire maintenant

Sélectionner une langue

© 2022 Red Hat, Inc. Red Hat Summit