Ce livre sur Terraform s’adresse aussi bien aux « Devs » qu’aux « Ops », débutants ou disposant déjà de notions de base, qui souhaitent maîtriser le développement d’une infrastructure sur le cloud. Le lecteur y trouvera des cas d’usage illustrés par des exemples de code variés lui permettant d’être à l’aise avec son langage, son utilisation et son écosystème.
Dans les premiers chapitres du livre, l’auteur présente les fondamentaux de Terraform, de la présentation des notions générales de l’infrastructure as code, à l’architecture de Terraform avec le fonctionnement du CLI, du registry, du state et des providers, en passant par le langage Terraform (HCL) expliqué en détail pour permettre la lecture et l’écriture de code simple. Au travers de 7 cas d’usage, le lecteur peut ensuite découvrir des utilisations différentes de Terraform sur des plateformes variées : Google Cloud Platform, AWS, MongoDB, OVH, Scaleway, GitHub et GitLab.
La suite du livre permet au lecteur d’aller plus loin dans l’apprentissage de Terraform. Le partage et la réutilisation de code sont mis en pratique avec l’utilisation et le développement de modules. Les éléments du langage avancés ainsi que les bonnes pratiques de développement sont présentés en détail. La gestion du state et les opérations permettant de le manipuler sont ensuite expliquées avant de passer à l’écriture de tests (souvent mise à l’écart) présentée avec l’implémentation de tests d’intégration. Enfin, le développement d’un provider permet de s’interfacer avec n’importe quel service.
À l’instar de nombreuses entreprises qui utilisent HCP Terraform pour exécuter le code Terraform, le lecteur appréhende l’exécution managée de Terraform. L’intégration de Terraform à des pipelines de CI/CD est également présentée avec des exemples pour GitLab CI et GitHub Actions. Toutes ces connaissances cumulées ainsi que de précieux conseils pour bien se préparer permettent au lecteur de pouvoir préparer et passer la certification Terraform.
Pour finir, des outils open source complémentaires sont présentés pour compléter l’outillage de développement et quelques ressources et liens sont donnés pour se maintenir à jour sur les nouveautés de l’écosystème.