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

Copier l'URL

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

Delivering GitOps with Argo CD

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.

Utiliser des workflows CI/CD intégrés de type GitOps natifs pour Kubernetes

Ressources Red Hat

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.

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.

Découvrir comment rationaliser les pipelines CI/CD

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 équipes de développement 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. Vous pouvez utiliser des webhooks pour intégrer Ansible Automation Platform à un référentiel Git. 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, de gérer des inventaires et de réaliser des déploiements. 

Les webhooks permettent d'activer automatiquement des processus automatisés lorsque certains événements surviennent dans le système de contrôle de source. Ainsi, aucun autre outil de CI/CD (p. ex. Jenkins) n'est requis pour surveiller les référentiels et lancer des tâches d'automatisation en cas de modifications, ce qui simplifie le workflow GitOps et l'exploitation. Vous pouvez aussi adapter votre workflow GitOps aux outils et processus de votre choix, car Ansible Automation Platform fonctionne avec un large éventail d'outils de développement et déploiement.

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.

Découvrir comment utiliser Ansible Automation Platform pour le GitOps

Hub

Le blog officiel de Red Hat

Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.

Tous les essais de produits Red Hat

Profitez de nos essais gratuits de produits Red Hat pour renforcer votre expérience pratique, préparer une certification ou évaluer l'adéquation d'un produit avec les besoins de votre entreprise.

En savoir plus

Un pipeline CI/CD, qu'est-ce que c'est ?

Un pipeline CI/CD est une série d'étapes à réaliser en vue de la distribution d'une nouvelle version d'un logiciel.

L'observabilité informatique, qu'est-ce que c'est ?

L'observabilité informatique fait référence à la capacité de surveiller, mesurer et comprendre l'état d'un système ou d'une application en examinant ses sorties, ses journaux et ses indicateurs de performances.

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

Le terme « GitOps » désigne un ensemble de principes destiné à orienter les workflows et qui permet de mettre en œuvre le déploiement continu pour les applications cloud-native. Ce modèle aide les équipes à gérer la configuration des clusters et les déploiements d'applications en appliquant l'automatisation à des processus manuels.

DevOps : ressources recommandées