#code #git #devops

Le GitOps est une variante (ou évolution) du DevOps. Cela consiste à gérer une infrastructure directement depuis git. Pour cela, un repository contient le (ou les) fichiers d’Infrastructure as Code (IaC) et dès qu’une Pull Request (PR) est mergée sur main, le deploiement continue (CD) déclenche les changements d’infrastructure. Le GitOps est généralement utilisé en conjonction avec Kubernetes et un framework d’IaC comme Terraform ou Ansible.

L’avantage du GitOps réside dans le fait qu’il y a une parité 1-1 entre l’état de l’infrastructure actuel et la branche main. Utiliser git permet aussi d’utiliser les PRs comme lieu de collaboration, de facilement revert un changement (via git revert) mais également d’augmenter l’accountability des changements (via git blame).

Les composantes principales du workflow sont: 1) Un repository Git est la seule source de vérité sur la configuration de l’infrastucture et du code 2) Une pipeline de CD est responsable de mettre à jour du build, des testing et du déploiement 3) Un système de monitoring est mis en place pour vérifier l’état de l’infrastructure (performances), mais aussi de vérifier la parité avec le repository git

Article sur GitLab: https://about.gitlab.com/topics/gitops/