Aller au contenu

L'infrastructure as code avec Terraform par Julien Wittouck

Quand Julien Wittouck m’a contacté pour me présenter son livre L’infrastructure as Code avec Terraform quelques semaines avant sa sortie, je me suis dit, ah enfin un livre en français sur cet outil incontournable. J’ai depuis reçu un exemplaire que je me suis empressé de lire attentivement. Voici ma réflexion sur ce livre.

Commandez votre exemplaire sur Amazon ! Chaque commande sur Amazon permet de financer ce site.

Présentation de Julien Wittouck

Julien est un Solution & DevOps Architect avec près de 15 ans d’expérience, c’est aussi un enseignant passionné, habitué à rendre accessibles des concepts parfois complexes. Il enseigne le développement Java et Sprint Boot depuis 10 ans à l’université de Lille. En outre, il est également un conférencier actif, prenant la parole lors de conférences sur des sujets tels que Docker, Java, Kubernetes, le cloud et Terraform évidement.

Présentation du livre

Le livre se distingue par une structure claire et progressive, pensée pour accompagner les lecteurs pas à pas.

Tout commence par une introduction, où Julien Wittouck pose les bases : pourquoi l’infrastructure as Code est devenue incontournable dans l’univers du Cloud, et pourquoi Terraform s’impose comme l’un des outils de référence dans le domaine du provisionnement de ressources.

La première partie composée de quatre chapitres expliquent toutes les bases de Terraform :

  • Les concepts à connaitre, comme la registry, les providers et le state.
  • L’installation et à l’utilisation de la CLI Terraform, depuis init jusqu’au destroy en passant fmt le formatage du code si souvent oublié.
  • Le langage HCL. Et là tout est passé en revue : tous types de blocs, les variables, les locals, les expressions, les ressources, les outputs, …
  • Un chapitre complet d’exemples concrets permettant de provisionner divers services sur différents fournisseurs de Cloud.

La seconde partie est consacrée à un usage plus avancé de Terraform avec :

  • La création et l’utilisation des modules Terraform et des registres privées.
  • La syntaxe avancée du HCL avec les conditions, les boucles et les
  • La gestion avancée de l’état avec l’utilisation de backends permettant le travail collaboratif. On y voit aussi les commandes permettant de manipuler les objets du state.
  • La mise en place de tests avec les Ckecks et les Mocks Terraform.

La troisième partie est consacrée à :

  • La plateforme HCP (Hashicorp Cloud Platform) avec la gestion des variables, des workspaces.
  • L’intégration de Terraform dans des pipelines CI/CD avec Gitlab CI/CD et Github Actions
  • Des conseils pour le passage de la certification Terraform Associate.
  • L’utilisation d’outils complémentaires comme tfenv, terragrunt, terraform-docs, git-hooks, …
  • Faire sa veille autour de Terraform avec des plateformes à consulter.

Mon avis (très personnel)

Julien Wittouck, l’auteur de ce livre, m’a lui-même demandé un retour honnête. Alors, pour respecter sa demande, je vais être direct et transparent, sans langue de bois ni complaisance. Il s’agit ici de mon opinion personnelle, et si elle peut sembler subjective, elle se base sur mon expérience quotidienne avec Terraform, où je situerais ma maîtrise à un niveau 7 sur 10. Cela signifie que je ne suis pas un expert absolu, mais suffisamment expérimenté pour juger de la pertinence du contenu.

Avant tout, reconnaissons-le : ce livre est une très belle réalisation. Il est clair, bien écrit, et Julien sait transmettre son expertise avec pédagogie. Cependant, une première petite déception personnelle : je n’ai pas vu mon site mentionné dans la liste des ressources recommandées.

De plus, je regrette l’absence d’exemples concrets utilisant OUTSCALE, une plateforme Cloud souveraine. Julien, si tu lis ces lignes, je serais ravi de collaborer avec toi pour une prochaine édition en te fournissant toutes les informations nécessaires sur ce sujet.

Un sujet que j’aurais aimé voir traité plus en profondeur, au-delà d’une simple mention en introduction, est la complémentarité entre Terraform et les outils de gestion de configuration. Ces outils sont souvent perçus comme concurrents, alors qu’ils jouent en réalité des rôles distincts, mais parfaitement complémentaires. Terraform excelle dans le provisionnement des ressources : il est conçu pour créer et gérer des éléments comme des machines virtuelles, des réseaux, des bases de données et d’autres composants d’infrastructures et de services fournies en tant que services.Cependant, une fois ces ressources provisionnées, leur configuration interne — installation de logiciels, réglage de paramètres système, ou déploiement d’applications — relève de la spécialité d’outils tels que Ansible, Chef, ou Puppet. J’aurais apprécié que le livre explore plus en détail cette complémentarité, en expliquant comment et ces outils peuvent collaborer pour former une solution complète, combinant l’automatisation de l’infrastructure et la gestion des configurations internes. (Ce n’est que mon avis)

La section sur les concepts de base pourraient être enrichie avec la définition de ce que sont, les data sources qui permettent de décomposer un projet en plusieurs parties évitant de se retrouver avec un code complexe et difficile à gérer.

Une autre remarque concerne les usages hors Cloud de Terraform, un sujet que j’ai trouvé sous-représenté dans le livre. Beaucoup pensent que Terraform se limite à gérer des ressources sur AWS, Azure ou GCP, mais c’est loin d’être vrai. Terraform peut provisionner des environnements sur des plateformes locales comme Proxmox, Incus, ou même gérer des conteneurs avec Docker.

Cela aurait mérité une section dédiée, car ces usages alternatifs montrent toute la puissance et la polyvalence de l’outil. Peut-être ai-je survolé cette partie, mais il me semble qu’elle aurait pu être davantage mise en avant pour casser les idées reçues.

Enfin, un sujet important à mes yeux que j’aurais aimé voir traité plus en détail : la gestion des secrets. Bien que Julien mentionne à deux reprises l’intégration de Vault ou du paramètre sensitive dans la déclaration d’une variable, l’approche reste un peu rapide à mon goût. Pourtant, la gestion des secrets comme les clés API, des mots de passe et des autres informations sensibles est si important. Une section plus étoffée sur la manière d’utiliser Vault/BAO avec Terraform aurait été un vrai plus, notamment pour les équipes qui cherchent à respecter les meilleures pratiques de sécurité.

Conclusion

En résumé, L’infrastructure as Code avec Terraform est un ouvrage de qualité qui va permettre à tous ceux qui souhaitent apprendre ou approfondir Terraform. Julien Wittouck a su rendre un sujet parfois complexe accessible sans sacrifier la précision technique. Mon avis reste globalement très positif, même si je pense qu’il y a des ajustements possibles pour enrichir une future édition.

Julien, tu m’as demandé un avis direct et constructif. Le voilà ! Continue sur cette lancée : ce livre est une référence, et avec quelques ajustements, il pourrait devenir incontournable. Et bien sûr, si tu veux parler d’Outscale ou inclure quelques ressources supplémentaires, je suis à ta disposition.