Git comme source unique de vérité pour la configuration

Qu’est-ce que gitops ? Il s’agit de la pratique consistant Ă  utiliser Git comme source unique de vĂ©ritĂ© (SSOT) pour la configuration de l’infrastructure. Dans ce guide, vous apprendrez Ă  utiliser Git pour stocker et gĂ©rer la configuration de vos serveurs de maniĂšre simple afin de pouvoir suivre les modifications, simplifier les dĂ©ploiements et garantir la cohĂ©rence tout au long du processus de dĂ©ploiement de votre infrastructure. Vous dĂ©couvrirez Ă©galement les outils et les meilleures pratiques qui rendent gitops possible en fournissant une piste d’audit claire et en rendant les dĂ©ploiements plus rapides et plus faciles Ă  gĂ©rer.

Git as a single source of truth for configuration

1) Présentation de GitOps

GitOps est une mĂ©thodologie et des outils pour aider les organisations Ă  faire de Git leur source unique de vĂ©ritĂ© pour l’infrastructure de production. L’objectif est de fournir un contrĂŽle d’accĂšs sĂ©curisĂ© et fiable, un dĂ©ploiement automatisĂ©, une observabilitĂ©, un suivi de la conformitĂ© et des capacitĂ©s d’audit, le tout par le biais de politiques dĂ©claratives simples dans les dĂ©pĂŽts Git. GitOps privilĂ©gie les personnes par rapport aux machines (par rapport Ă  DevOps), les outils open source par rapport aux outils propriĂ©taires (par rapport Ă  Cloud Native), et la confiance par rapport au contrĂŽle (par rapport Ă  la sĂ©curitĂ©). Le rĂ©sultat final est un environnement dans lequel chacun peut voir tout ce qui se passe, ce qui permet une meilleure collaboration entre les Ă©quipes.

Git as a single source of truth for configuration

2) L’infrastructure en tant que code (IaC)

La construction et l’approvisionnement de l’infrastructure sont des domaines dans lesquels vous pouvez utiliser l’IaC. Les raisons sont doubles : il est fastidieux de taper tout ce code, mais cela signifie Ă©galement que vous avez moins de possibilitĂ©s d’introduire des erreurs par inadvertance. Git est un systĂšme de contrĂŽle de version (VCS) construit sur le logiciel BitKeeper de Linus Torvalds. Contrairement aux systĂšmes VCS centralisĂ©s comme Subversion ou Mercurial, Git fonctionne en suivant chaque changement effectuĂ© dans son dĂ©pĂŽt depuis sa crĂ©ation. Cela le rend particuliĂšrement efficace pour gĂ©rer de grands projets avec de nombreux contributeurs sur de longues pĂ©riodes de temps – exactement ce dont nous avons besoin dans notre boĂźte Ă  outils IaC. Avec des outils comme chef-solo , Ansible , et SaltStack , nous pouvons spĂ©cifier de maniĂšre dĂ©clarative l’apparence d’un environnement via une collection de fichiers suivis par notre rĂ©fĂ©rentiel – nous n’exĂ©cutons pas rĂ©ellement ces Ă©tapes jusqu’Ă  ce que nous voulions mettre Ă  jour notre environnement cible avec les changements de notre rĂ©fĂ©rentiel ! Cette mĂ©thode nous encourage Ă  ĂȘtre explicite sur la façon dont nous voulons que quelque chose soit configurĂ© ; il n’y a pas de malentendu lorsque les choses tournent mal ou lorsqu’un autre membre de l’Ă©quipe a des attentes lĂ©gĂšrement diffĂ©rentes des nĂŽtres.

3) Test de l’IaC

L’infrastructure en tant que code est formidable, mais elle ne fonctionne que si votre Ă©quipe de dĂ©veloppement l’utilise. Vous devez les surveiller, que ce soit par le biais de demandes de retrait ou de revues de code. Lorsque les modifications sont effectuĂ©es manuellement, il est difficile de savoir ce qui a changĂ© et quand. Il peut donc s’avĂ©rer extrĂȘmement difficile de dĂ©terminer quelle version est Ă  l’origine d’une panne ou d’un autre problĂšme, ce qui rend le dĂ©pannage et l’application de correctifs plus compliquĂ©s que nĂ©cessaire. La solution est simple : utilisez un logiciel d’intĂ©gration continue open-source (comme GitLab) et crĂ©ez des tests pour chaque modification que vous apportez dans IaC – par exemple, si vous utilisez Jelastic CloudScripting pour dĂ©ployer de nouvelles piles, testez vos modifications avant de les valider en mettant Ă  jour une pile prĂ©existante (pre-prod) au lieu d’en crĂ©er une nouvelle.

Testing IaC

4) Quel est le rapport avec Git ?

Git, plus prĂ©cisĂ©ment les outils de gestion des dĂ©pĂŽts git, est gĂ©nĂ©ralement utilisĂ© pour suivre les modifications du code. Les puissantes capacitĂ©s de branchement de Git et son architecture distribuĂ©e facilitent la gestion de multiples branches de code. Si nous appliquons ces mĂȘmes concepts et mĂ©thodes aux ressources autres que le code, comme les fichiers de configuration de l’infrastructure et les scripts d’exĂ©cution des tĂąches Ă  distance, nous pouvons crĂ©er une source unique de vĂ©ritĂ© qui permettra l’automatisation. Imaginez que des milliers de serveurs soient automatiquement mis Ă  jour avec de nouvelles configurations Ă  1 heure du matin chaque dimanche, ou chaque fois qu’un commit est poussĂ© vers master sur votre projet GitHub. Les avantages sont nombreux : des temps de dĂ©ploiement plus rapides et moins d’erreurs humaines, pour n’en citer que deux !

5) Gestion de la branche

Le branchement est une bonne chose, il nous permet de travailler sur plusieurs fonctionnalitĂ©s et modifications Ă  la fois, et de les fusionner plus tard lorsque nous sommes prĂȘts. Par exemple, disons que vous travaillez Ă  l’amĂ©lioration des performances de votre site. Il se peut que vous souhaitiez modifier certains styles CSS en plus d’apporter des changements Ă  la configuration de vos serveurs. Vous pouvez effectuer ces modifications CSS sur leur propre branche (par exemple, /css-perf) et la pousser vers GitHub ou GitLab avec git push origin /css-perf . Vous pouvez alors effectuer vos modifications sur le serveur sans craindre de casser les modifications CSS ! Les branches sont gĂ©niales ! Cela dit, il y a une chose dont vous devez ĂȘtre conscient : Les branches rendent le suivi de l’historique trĂšs difficile.

Branch Management

Écrit par

Matthieu Robin Hidora
Matthieu ROBIN
10/03/2022

Matthieu Robin est le CEO de Hidora, un leader stratĂ©gique expĂ©rimentĂ©, un ancien administrateur systĂšme qui a gĂ©rĂ© et configurĂ© plus d’environnements manuellement que quiconque sur la planĂšte et aprĂšs avoir compris que cela pouvait ĂȘtre fait en quelques clics a crĂ©Ă© Hidora SA. Il intervient rĂ©guliĂšrement lors de confĂ©rences et aide les entreprises Ă  optimiser leurs processus mĂ©tier grĂące Ă  DevOps. Suivez-le sur Twitter.

Recevoir nos actualités