Jerome Kelly

12 juin 2025

Rien n’arrête l’entropie

Depuis le début de son existence, Thirdbridge utilise une version self-hosted de GitLab pour gérer la grande majorité de ses différents répertoires Git. Cette approche nous a bien servis jusqu’ici, mais elle devient de plus en plus contraignante et limite notre capacité à intégrer plusieurs services dans nos processus DevOps. Nous avons donc décidé de migrer vers GitHub l’ensemble de nos projets actifs durant le présent quart. Plus encore, nous avons choisi d’utiliser Terraform pour gérer notre organisation.

La grande majorité des développeurs ont accueilli avec joie la migration vers GitHub, mais se sont montrés beaucoup plus sceptiques quant à l’utilisation de Terraform. Ce texte se veut donc à la fois un mémo interne et un article public visant à partager le raisonnement derrière cette décision.

Les erreurs du passé

Notre instance GitLab contient actuellement 233 répertoires Git créés au fil des années. On y retrouve une variété déconcertante de configurations.

  • La nomenclature : PascalCase, snake_case, kebab-case… tous les styles sont présents.

  • La branche principale : dev, main, master, develop… il y en a pour tous les goûts.

  • La stratégie de merge : merge commit, rebase, squash… il y a plus de diversité dans nos arbres Git que dans la forêt amazonienne. 🌳

  • Et plus encore : nombre minimal de reviewers, règles de protection des branches, etc.

Nous n’avons pas d’opinion très tranchée sur ces choix (à part pour rebase, clairement l’approche supérieure 😉). Le vrai problème, c’est le manque d’uniformité : en général, ce n’est pas tant le choix qui importe que le fait d’avoir une approche cohérente. Grâce à Terraform, nous pouvons conserver les configurations choisies dans le temps pour chaque nouveau projet, sans dépendre de la rigueur humaine !

Responsive Image


Le bon berger

Une structure trop rigide crée de la friction, nuit à l’expérience développeur et, ultimement, freine l’innovation et la productivité. L’utilisation de Terraform nous permet de trouver un équilibre intéressant entre structure et liberté.

Par défaut, tous les nouveaux répertoires GitHub héritent des mêmes configurations de base, prédéfinies par notre équipe. Mais sans garde-fous, le chaos finit toujours par s’installer. Une solution simple serait de figer ces configurations et de ne permettre aucun changement. Bien qu’efficace pour préserver l’ordre, cette approche est trop rigide et aurait les effets négatifs mentionnés plus haut.

Que ce soit pour tester temporairement une fonctionnalité ou adapter certaines configurations en situation d’urgence, nous pensons que certains membres de l’équipe doivent disposer de permissions élevées pour effectuer ces ajustements. Le problème, c’est que ces changements temporaires deviennent souvent permanents… par oubli.

Notre solution : appliquer périodiquement la configuration Terraform pour remettre dans le droit chemin les répertoires qui se sont égarés. Avec GitHub Actions, cette automatisation est simple et efficace ! Et si une configuration spécifique doit devenir permanente, il suffit de l’ajouter à Terraform. Bonus : cette modification — et sa justification — sera consignée dans l’historique Git du projet Terraform, gardant une trace claire et durable des raisons ayant mené à ce changement.

Responsive Image


Mieux vaut prévenir que guérir

Tenter de prévoir tous les besoins futurs est souvent un exercice futile. La bonne approche consiste plutôt à mettre en place une structure qui facilite les modifications. Un autre avantage de l’utilisation de Terraform est donc qu’il nous sera possible d’appliquer des changements à grande échelle sur tous les répertoires, de manière rapide et efficace.

Pour cela, nous avons défini un répertoire de base utilisé comme gabarit pour la création de chaque nouveau projet.


Conclusion

Rien n’arrête l’entropie ! Malgré tous nos efforts et notre rigueur, le chaos finit toujours par s’installer. Cela ne signifie pas que nous devons abdiquer, mais plutôt que nous devons mettre en place des mécanismes et des processus nous permettant de conserver un niveau d’ordre acceptable, tout en offrant assez de flexibilité pour encourager l’innovation. Cette réalité s’applique à bien des domaines — et dans le cas de Git, nous pensons que Terraform nous permet d’atteindre ce délicat équilibre.

Nous sommes confiants que nos prochains 233 répertoires Git seront bien mieux structurés que les 233 premiers !

Note : Il s’agit bien évidemment d’une hyperbole — environ 16 000 espèces d’arbres ont été répertoriées à ce jour dans la forêt amazonienne. 🌳

https://fr.wikipedia.org/wiki/Forêt_amazonienne

Autres Articles

Solutions numériques

contact@thirdbridge.ca

+1 514 316 5399

1751 Rue Richardson Bureau 5.120, Montréal, QC H3K 1G6

330 Rue Saint-Vallier E suite 330, Québec, QC G1K

1475 North Scottsdale Road, Suite 200, Scottsdale, AZ 85257

Solutions numériques

contact@thirdbridge.ca

+1 514 316 5399

1751 Rue Richardson Bureau 5.120, Montréal, QC H3K 1G6

330 Rue Saint-Vallier E suite 330, Québec, QC G1K

1475 North Scottsdale Road, Suite 200, Scottsdale, AZ 85257

Solutions numériques

contact@thirdbridge.ca

+1 514 316 5399

1751 Rue Richardson Bureau 5.120, Montréal, QC H3K 1G6

330 Rue Saint-Vallier E suite 330, Québec, QC G1K

1475 North Scottsdale Road, Suite 200, Scottsdale, AZ 85257