Connexion / Inscription Account
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.

En savoir plus

Article

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

L'approche CI/CD permet d'augmenter la fréquence de distribution des applications grâce à l'introduction de l'automatisation au niveau des étapes de développement des applications. Les principaux concepts liés à l'approche CI/CD sont l'intégration continue, la distribution continue et le déploiement continu.

Article

L'IaC (Infrastructure-as-Code), qu'est-ce que c'est ?

L'IaC (Infrastructure-as-Code, ou Infrastructure en tant que code) consiste à gérer et approvisionner une infrastructure à l'aide de lignes de code plutôt que par des processus manuels. L'IaC implique la création de fichiers de configuration qui contiennent les caractéristiques de l'infrastructure, ce qui facilite les modifications et la distribution des configurations. 

Thème

Comprendre le DevOps

Le modèle DevOps est une approche de la culture informatique, de l'automatisation et de la conception de plateformes conçue pour accroître la valeur ajoutée et optimiser la réactivité des entreprises grâce à une distribution plus rapide et efficace des services.Cette approche repose sur la collaboration entre les équipes de développement et d'exploitation.

Nos solutions pour le GitOps

Red Hat OpenShift

Plateforme de conteneurs Kubernetes pour les entreprises qui automatise l'exploitation de toute la pile pour la gestion des déploiements multicloud, de clouds hybrides et d'edge computing. 

Red Hat Ansible Automation Platform

Solution complète à utiliser pour automatiser l'ensemble de l'entreprise. Inclut tous les outils nécessaires à la mise en œuvre de l'automatisation à l'échelle de l'entreprise.

Illustration - mail

Ce type de contenu vous intéresse?

Inscrivez-vous à notre newsletter Red Hat Shares.