Qu'est-ce que le GitOps ?
GitOps est un cadre opérationnel qui reprend les meilleures pratiques de DevOps utilisées pour le développement d'applications telles que le contrôle de version, la collaboration, la conformité et les CI/CD, et les applique à l'automatisation des infrastructures.
Les applications modernes sont développées en tenant compte de la vitesse et de l'échelle. Les organisations ayant une culture DevOps mature peuvent déployer du code en production des centaines de fois par jour. Les équipes DevOps peuvent y parvenir grâce aux meilleures pratiques de développement telles que le contrôle de version, la révision de code et les pipelines de CI/CD qui automatisent les tests et les déploiements.
Si le cycle de vie du développement logiciel a été automatisé, l'infrastructure est restée un processus largement manuel qui nécessite des équipes spécialisées. Avec les exigences imposées à l'infrastructure actuelle, il devient de plus en plus crucial de mettre en œuvre l'automatisation de celle-ci.
L'infrastructure moderne doit être élastique afin de pouvoir gérer efficacement les ressources en nuage nécessaires aux déploiements fréquents.
GitOps est un cadre opérationnel qui peut automatiser ce processus d'approvisionnement de l'infrastructure. De la même manière que nous utilisons le code source des applications, les équipes d'infrastructure qui pratiquent GitOps utilisent des fichiers de configuration stockés sous forme de code (infrastructure as code).
Les fichiers de configuration GitOps génèrent le même environnement d'infrastructure à chaque fois qu'ils sont déployés, tout comme le code source d'une application génère les mêmes binaires d'application à chaque fois qu'elle est construite.
Vue d'ensemble du GitOps
GitOps est un cadre opérationnel qui reprend les meilleures pratiques DevOps utilisées pour le développement d'applications telles que le contrôle de version, la révision de code, la collaboration, la conformité et les CI/CD, et les applique à l'automatisation des infrastructures.
TODO TODO TODO
Les avantages des GitOps
Permet la collaboration sur les changements d'infrastructure
Étant donné que chaque changement passera par le même processus de demande, d'examen et d'approbation, les ingénieurs principaux peuvent se concentrer sur d'autres domaines que la gestion des infrastructures critiques.
Les avantages du Gitops en matière de contrôle d'accès
Amélioration du contrôle d'accès
Il n'est pas nécessaire de donner des références à toutes les composantes de l'infrastructure puisque les changements sont automatisés (seuls les CI/CD ont besoin d'un accès).
Une mise sur le marché plus rapide
L'exécution par code est plus rapide que le “pointer-cliquer” manuel. Les cas de test sont automatisés et reproductibles, de sorte que des environnements stables peuvent être fournis rapidement.
Moins de risques
Tous les changements apportés à l'infrastructure sont suivis par le biais de demandes de fusion, et les changements peuvent être ramenés à un état antérieur.
Réduction des coûts
L'automatisation de l'infrastructure et des test associés éliminent les tâches manuelles, améliore la productivité et réduit les temps d'arrêt grâce à la capacité intégrée de retour en arrière. L'automatisation permet également aux équipes d'infrastructure de mieux gérer les ressources du cloud, ce qui peut également améliorer les coûts.
Moins d'erreurs
La définition de l'infrastructure est codifiée et reproductible, ce qui la rend moins sujette à l'erreur humaine. Grâce à la révision des codes et à la collaboration dans les demandes de fusion, les erreurs peuvent être identifiées et corrigées bien avant qu'elles n'arrivent en production.
Les défis du GitOps
Dans tout effort de collaboration, le changement peut être délicat et GitOps ne fait pas exception à la règle.
GitOps est un changement de processus qui exigera de la discipline de la part de tous les participants et un engagement à faire les choses d'une nouvelle manière. Il est vital pour les équipes de tout mettre par écrit.
GitOps permettent une plus grande collaboration, mais ce n'est pas nécessairement quelque chose qui vient naturellement pour certaines personnes ou organisations. Un processus d'approbation GitOps signifie que les développeurs apportent des modifications au code, créent une demande de fusion, un approbateur fusionne ces modifications et le changement est déployé. Cette séquence introduit un élément de “changement par comité” dans l'infrastructure, ce qui peut sembler fastidieux et long pour les ingénieurs habitués à apporter des modifications rapides et manuelles.
Il est important que tous les membres de l'équipe enregistrent ce qui se passe dans les demandes de fusion et les problèmes. La tentation de modifier quelque chose directement en production ou de changer quelque chose manuellement sera difficile à supprimer, mais moins il y aura de “cowboy engineering”, mieux les GitOps fonctionneront.
Qu'est-ce qui fait fonctionner les GitOps ?
Comme tout terme de technologie émergente, GitOps n'est pas strictement défini de la même manière par tous les acteurs du secteur.
Les principes de GitOps peuvent être appliqués à tous les types d'automatisation des infrastructures, y compris les VM et les conteneurs, et peuvent être très efficaces pour les équipes qui cherchent à gérer des clusters Kubernetes.
Alors que de nombreux outils et méthodologies promettent un déploiement plus rapide et une gestion transparente entre le code et l'infrastructure, GitOps se distingue en se concentrant sur une expérience centrée sur le développeur. La gestion de l'infrastructure par GitOps se fait dans le même système de contrôle de version que le développement de l'application, ce qui permet aux équipes de collaborer davantage dans un lieu central tout en bénéficiant de toutes les fonctionnalités intégrées de Git.