


{"id":6311,"date":"2024-11-22T15:35:34","date_gmt":"2024-11-22T14:35:34","guid":{"rendered":"https:\/\/www.editions-eni.fr\/blog\/?p=6311"},"modified":"2025-02-04T11:32:35","modified_gmt":"2025-02-04T10:32:35","slug":"infrastructure-as-code-terraform","status":"publish","type":"post","link":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/","title":{"rendered":"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;|5px||||&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p id=\"ember11837\" class=\"ember-view reader-text-block__paragraph\"><strong>Ce mois-ci est sorti mon livre <a href=\"https:\/\/www.editions-eni.fr\/livre\/l-infrastructure-as-code-avec-terraform-deployez-votre-infrastructure-sur-le-cloud-9782409046629\" target=\"_blank\" rel=\"noopener\">\u00ab\u00a0L\u2019infrastructure as Code avec Terraform &#8211; D\u00e9ployez votre infrastructure sur le Cloud\u00a0\u00bb<\/a> qui est le fruit de mon exp\u00e9rience d\u2019architecte solutions qui m\u2019a r\u00e9guli\u00e8rement amen\u00e9 \u00e0 d\u00e9velopper des plateformes compos\u00e9es de dizaines de modules Terraform. Cette solution propose \u00e0 mes yeux de nombreux avantages, raison pour laquelle, entre autres, j\u2019ai \u00e9crit cet ouvrage.<\/strong><\/p>\n<p id=\"ember11838\" class=\"ember-view reader-text-block__paragraph\"><strong>Mais tout le monde ne conna\u00eet sans doute pas l\u2019IaC et ses notions tout comme le chemin de mise en place strat\u00e9gique de Terraform. D\u00e9taillons un peu\u2026<\/strong><\/p>\n<p id=\"ember11839\" class=\"ember-view reader-text-block__paragraph\"><em>Par<span class=\"white-space-pre\"> <\/span><a href=\"https:\/\/www.linkedin.com\/in\/julien-wittouck\/\" id=\"ember11840\" class=\"ember-view\" target=\"_blank\" rel=\"noopener\">\ud83e\udd18 Julien Wittouck<\/a>, architecte solution, d\u00e9veloppeur ind\u00e9pendant et auteur aux<span class=\"white-space-pre\"> <\/span><a class=\"AQNTQTfXZDTwKtdbnycvnnONuNUpZSatsTbQ \" href=\"https:\/\/www.linkedin.com\/company\/editions-eni\/\" data-test-app-aware-link=\"\" target=\"_blank\" rel=\"noopener\">Editions ENI<\/a><\/em><span class=\"white-space-pre\"> <\/span><\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p>L\u2019Infrastructure as Code est la pratique consistant \u00e0 cr\u00e9er des ressources informatiques et g\u00e9rer une infrastructure virtuelle, sur un Cloud public ou priv\u00e9 ou <em>on-premises<\/em>, \u00e0 l\u2019aide de code, plut\u00f4t qu\u2019avec des proc\u00e9dures manuelles.<\/p>\n<p>Les ressources cr\u00e9\u00e9es peuvent \u00eatre de tout type. Parmi les types de ressources courants, on retrouve tr\u00e8s souvent des machines virtuelles, bases de donn\u00e9es, r\u00e9seaux, clusters Kubernetes, etc.<\/p>\n<p>En s\u2019appuyant sur les APIs fournies par les diff\u00e9rents services Cloud, on retrouve plusieurs types de pratiques autour de l\u2019IaC comme :<\/p>\n<ul>\n<li>le scripting (de type shell) utilisant les CLI des services Cloud,<\/li>\n<li>le d\u00e9veloppement (dans tous types de langages, de Python \u00e0 Java) en utilisant un SDK fourni par le service Cloud,<\/li>\n<li>l\u2019utilisation d\u2019un outil tiers comme Terraform.<\/li>\n<\/ul>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h2 style=\"text-align: center;\">Les avantages de l\u2019infrastructure as code<\/h2>\n<p>Utiliser l\u2019infrastructure as Code et l\u2019automatisation pr\u00e9sente de nombreux avantages pour les entreprises, comme la r\u00e9duction des erreurs, une impl\u00e9mentation standardis\u00e9e et donc un respect de la conformit\u00e9 et des r\u00e8gles de s\u00e9curit\u00e9. Cette pratique apporte \u00e9galement de l\u2019agilit\u00e9 \u00e0 l\u2019entreprise en facilitant les exp\u00e9rimentations et en acc\u00e9l\u00e9rant la cr\u00e9ation des environnements.<\/p>\n<p>&nbsp;<\/p>\n<h3>R\u00e9duction des erreurs<\/h3>\n<p>L\u2019automatisation de la cr\u00e9ation de l\u2019infrastructure par du code a pour avantage principal la r\u00e9duction des erreurs humaines.<\/p>\n<p>Lors de la cr\u00e9ation ou de la gestion d\u2019une infrastructure \u00e0 la main, par exemple en utilisant la console web d\u2019un service Cloud et en suivant des proc\u00e9dures document\u00e9es, il y a de nombreuses occasions o\u00f9 des erreurs de configuration peuvent survenir : mauvaise configuration d\u2019environnement, oubli d\u2019\u00e9tapes ou de param\u00e9trages, etc.<\/p>\n<p>Les impacts d\u2019une erreur de configuration peuvent alors \u00eatre multiples : n\u00e9cessit\u00e9 de recr\u00e9er les environnements avec la perte de temps associ\u00e9e, co\u00fbts financiers li\u00e9s \u00e0 des ressources cr\u00e9\u00e9es avec une mauvaise configuration ou li\u00e9s \u00e0 l\u2019oubli de la suppression d\u2019une ressource, mauvaise impl\u00e9mentation de r\u00e8gles de s\u00e9curit\u00e9s pouvant aboutir \u00e0 l\u2019exposition d\u2019une faille de s\u00e9curit\u00e9.<\/p>\n<p>D\u00e9velopper son infrastructure en la scriptant ou avec Terraform permet de limiter les erreurs li\u00e9es \u00e0 une mauvaise configuration, ou \u00e0 la r\u00e9p\u00e9tition de manipulation.<\/p>\n<p>&nbsp;<\/p>\n<h3>Conformit\u00e9 et standardisation<\/h3>\n<p>L\u2019utilisation de code pour cr\u00e9er les ressources Cloud permet \u00e9galement de garantir la conformit\u00e9 des environnements.<\/p>\n<p>Les r\u00e8gles de nommage, de dimensionnement, de sauvegarde, de s\u00e9curit\u00e9, sont impl\u00e9ment\u00e9es directement par le code. La mise en place de modules (pensez scripts partag\u00e9s ou librairies) r\u00e9utilisables dans les entreprises permet de d\u00e9ployer les diff\u00e9rents environnements en garantissant le respect des r\u00e8gles de conformit\u00e9 et de bonnes pratiques.<\/p>\n<p>La mise en place d\u2019une strat\u00e9gie d\u2019utilisation de l\u2019IaC, comme l\u2019obligation d\u2019utiliser Terraform pour g\u00e9rer certaines ressources, permettra donc de s\u2019assurer de la conformit\u00e9 des environnements. Lorsqu\u2019une nouvelle r\u00e8gle doit \u00eatre mise en place, il est \u00e9galement facile de la propager \u00e0 tous les environnements existants, via la mise \u00e0 jour du code des modules.<\/p>\n<p>&nbsp;<\/p>\n<h3>Collaboration<\/h3>\n<p>L\u2019utilisation de l\u2019IaC permet \u00e9galement de faciliter la collaboration entre les \u00e9quipes.<\/p>\n<p>Le code est alors archiv\u00e9 dans un syst\u00e8me de gestion de version comme Git. Les \u00e9quipes peuvent collaborer facilement. Les modifications du code source sont archiv\u00e9es, ce qui facilite l\u2019audit de l\u2019infrastructure et la bonne compr\u00e9hension des changements qui lui sont apport\u00e9s.<\/p>\n<p>Cette collaboration via Git peut \u00e9galement suivre les bonnes pratiques issues du monde du d\u00e9veloppement : messages de commits clairs, processus de relecture de code par un pair, versionning avec SemVer, publication de versions automatis\u00e9es avec des pipelines d\u2019int\u00e9gration continue, etc.<\/p>\n<p>&nbsp;<\/p>\n<h3>Rapidit\u00e9 d\u2019ex\u00e9cution et agilit\u00e9<\/h3>\n<p>L\u2019automatisation apport\u00e9e par l\u2019IaC permet \u00e9galement de r\u00e9duire le temps n\u00e9cessaire \u00e0 la cr\u00e9ation des environnements.<\/p>\n<p>Le surco\u00fbt li\u00e9 au temps pass\u00e9 \u00e0 l\u2019\u00e9criture de code par rapport \u00e0 une ex\u00e9cution manuelle est tr\u00e8s vite amorti lorsque plusieurs environnements identiques doivent \u00eatre cr\u00e9\u00e9s comme c\u2019est souvent le cas : d\u00e9veloppement, staging \/ testing, pr\u00e9-production, production, en fonction des r\u00e8gles de nommage.<\/p>\n<p>Une fois le code \u00e9crit, des environnements peuvent alors \u00eatre construits en quelques minutes, ce qui permet des cycles de d\u00e9veloppement plus rapides. \u00c0 titre d\u2019information, la cr\u00e9ation d\u2019une machine virtuelle prend alors environ 1 \u00e0 2 minutes en fonction des services Cloud, la cr\u00e9ation d\u2019une base de donn\u00e9es entre 5 \u00e0 10 minutes.<\/p>\n<p>Les entreprises peuvent alors gagner en agilit\u00e9, en pouvant acc\u00e9l\u00e9rer les d\u00e9ploiements des produits, exp\u00e9rimenter des solutions et r\u00e9pondre plus rapidement aux changements.<\/p>\n<p>La mise \u00e0 disposition de modules pr\u00e9-d\u00e9velopp\u00e9s, en <em>self-service<\/em> pour les d\u00e9veloppeurs et op\u00e9rateurs des \u00e9quipes permet \u00e9galement de donner l\u2019autonomie dont les \u00e9quipes manquent parfois, quand les \u00e9quipes responsables de l\u2019infrastructure forment un goulet d\u2019\u00e9tranglement. <\/p>[\/et_pb_text][et_pb_code _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_code][et_pb_code _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h2 style=\"text-align: center;\">IaC et Terraform<\/h2>\n<p><strong>Terraform se distingue des autres outils d\u2019infrastructure as code par plusieurs aspects : sa facilit\u00e9 d\u2019installation, l\u2019approche d\u00e9clarative avec son langage, et son aspect multi-cloud<\/strong>.<\/p>\n<p>Parmi les outils d\u2019infrastructure as code, on retrouve les diff\u00e9rents CLI des services Cloud, souvent \u00e9crits en Python, qui n\u00e9cessitent un environnement parfois compliqu\u00e9 \u00e0 installer (qui n\u2019a jamais souffert d\u2019une cohabitation compliqu\u00e9e entre les version 2 et 3 de Python ?) et sont parfois lents \u00e0 l\u2019ex\u00e9cution. Terraform se distingue des outils de type CLI par sa facilit\u00e9 d\u2019installation (1 unique binaire), ainsi que sa rapidit\u00e9 d\u2019ex\u00e9cution, \u00e9tant un binaire compil\u00e9.<\/p>\n<p>L\u2019approche d\u00e9clarative de Terraform est \u00e9galement en opposition aux CLI des services Cloud et aux approches de scripting. Dans les approches de scripting imp\u00e9ratives, les Ops d\u00e9veloppent des scripts qui ex\u00e9cutent les diff\u00e9rentes \u00e9tapes permettant d\u2019atteindre l\u2019\u00e9tat souhait\u00e9. En Terraform, on d\u00e9clare l\u2019\u00e9tat souhait\u00e9 de l\u2019infrastructure, c\u2019est Terraform qui se charge de d\u00e9terminer l\u2019ordre de cr\u00e9ation ou de modifications des ressources en fonction de leurs d\u00e9pendances.<\/p>\n<p>D\u2019autres outils utilisent \u00e9galement l\u2019approche d\u00e9clarative, en particulier les outils de <em>provisioning <\/em>des Clouds am\u00e9ricains, comme AWS CloudFormation, GCP Deployment Manager ou Azure Resource Manager. Ces outils utilisent souvent une syntaxe \u00e0 base de JSON ou de YAML pour la d\u00e9claration des ressources \u00e0 manipuler.<\/p>\n<p>A l\u2019oppos\u00e9 de ces outils, Terraform propose son propre langage, nomm\u00e9 HCL (pour HashiCorp Configuration Language), qui se veut plus lisible et structur\u00e9 que du JSON ou du YAML. Il permet \u00e9galement l\u2019utilisation de r\u00e9f\u00e9rences, fonctions et boucles. \u00c9tant un langage propre, il b\u00e9n\u00e9ficie \u00e0 travers le CLI Terraform d\u2019un outil de validation de structure et les diff\u00e9rents IDE ont impl\u00e9ment\u00e9 la coloration syntaxique du langage, ainsi que de la compl\u00e9tion automatique pour faciliter le d\u00e9veloppement.<\/p>\n<p><strong>Enfin, les CLI des Clouds ou les outils de provisioning des diff\u00e9rents Clouds ont un d\u00e9faut majeur :<\/strong> ils ne peuvent manipuler que des ressources sur leur propre Cloud. Il est rare qu\u2019une entreprise ne consomme des ressources d\u2019un unique service Cloud. Beaucoup d\u2019entreprises ont des zones DNS chez un fournisseur, des ressources sur un Cloud public, des bases de donn\u00e9es manag\u00e9es chez un autre fournisseur, etc.<\/p>\n<p><strong>Terraform permet de cr\u00e9er de l\u2019infrastructure sur tout type de fournisseurs Cloud, en utilisant le m\u00eame langage quel que soit le Cloud cible.<\/strong> Il est possible dans le m\u00eame code de faire cohabiter des ressources de plusieurs Cloud diff\u00e9rents. Contrairement \u00e0 ce qui est parfois imagin\u00e9, le code Terraform n\u2019est pas \u201cportable\u201d. Du code \u00e9crit pour provisionner de l\u2019infrastructure sur un Cloud public ne pourra pas \u00eatre r\u00e9utilis\u00e9 tel-quel pour un autre Cloud. Ce serait ignorer les diff\u00e9rences qui peuvent exister entre tous les fournisseurs. N\u00e9anmoins, avec l\u2019utilisation de Terraform, les processus de d\u00e9veloppement, langages et pratiques seront identiques lors d\u2019une migration d\u2019un Cloud \u00e0 un autre, ou lors de l\u2019ajout d\u2019un nouveau service Cloud.<\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h2 style=\"text-align: center;\">La mise en place de Terraform<\/h2>\n<h3><\/h3>\n<h3>Strat\u00e9gie et Architecture<\/h3>\n<p>L\u2019utilisation de Terraform ne dispense pas de conna\u00eetre le service Cloud que l\u2019on souhaite utiliser. La conception de l\u2019architecture Cloud reste une \u00e9tape cruciale : r\u00e8gles IAM, construction des r\u00e9seaux, VM, load-balancers, bases de donn\u00e9es, clusters Kubernetes, etc. L\u2019entreprise doit d\u00e9finir sa strat\u00e9gie d\u2019IaC en d\u00e9terminant si Terraform sera utilis\u00e9 pour g\u00e9rer tout l\u2019environnement, ou seulement certaines parties. Par exemple, l\u2019affectation des droits d\u2019acc\u00e8s des utilisateurs \u00e0 la plateforme Cloud peut \u00eatre g\u00e9r\u00e9e dans un processus d\u2019enr\u00f4lement manuel, le socle du Cloud (parfois appel\u00e9 <em>Landing Zone<\/em> ou <em>Fondations<\/em>) peut aussi parfois \u00eatre cr\u00e9\u00e9 manuellement.<\/p>\n<p>\u00c0 partir de cette strat\u00e9gie, il sera possible de d\u00e9terminer quel d\u00e9coupage pourra \u00eatre effectu\u00e9 au niveau du code Terraform, et quels modules r\u00e9utilisables devront \u00eatre impl\u00e9ment\u00e9s. Les ressources les plus courantes pourront \u00eatre impl\u00e9ment\u00e9es dans des modules : VMs, base de donn\u00e9es manag\u00e9es, clusters Kubernetes, buckets de stockage objet, etc.<\/p>\n<p>Une fois la strat\u00e9gie et l\u2019architecture d\u00e9finies, il sera possible de mettre en place le socle de d\u00e9veloppement Terraform, avec la configuration des <em>providers<\/em> et des <em>backends<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<h3>Configuration des providers et backends<\/h3>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 installer Terraform sur les postes des d\u00e9veloppeurs\u00a0 et op\u00e9rateurs en suivant la documentation officielle ou en utilisant l\u2019outil tfenv.<\/p>\n<p>La configuration des providers est alors le point de d\u00e9part des d\u00e9veloppements Terraform. Pour pouvoir appeler les API des Cloud Providers, Terraform aura besoin d\u2019acc\u00e8s via des cl\u00e9s d\u2019API, comptes de services. Ces acc\u00e8s seront souvent associ\u00e9s \u00e0 un r\u00f4le ayant des droits haut-niveau, administrateur, \u00e9diteur, etc. en fonction des diff\u00e9rents Clouds.<\/p>\n<p>Pour configurer un provider, on peut se r\u00e9f\u00e9rer \u00e0 la documentation officielle de Terraform, <a href=\"https:\/\/registry.terraform.io\">https:\/\/registry.terraform.io<\/a>. La bonne pratique de configuration des providers consiste \u00e0 privil\u00e9gier l\u2019utilisation de variables d\u2019environnement, en \u00e9vitant de positionner des secrets directement dans le code source.<\/p>\n<p>Voici un exemple de configuration pour le provider Scaleway :<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/code-terraform1.webp&#8221; alt=&#8221;code terraform&#8221; title_text=&#8221;code terraform1&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p>Une fois le ou les providers configur\u00e9s, l\u2019\u00e9tape suivante va \u00eatre de constituer une strat\u00e9gie de stockage du code Terraform et de son <em>state<\/em> pour permettre la collaboration. Une bonne pratique consiste \u00e0 d\u00e9couper le code en projets distincts, par application et par environnement. Pour chacun des projets, un <em>backend<\/em> devra \u00eatre configur\u00e9 pour y stocker le <em>state<\/em> Terraform (Bucket S3, Azure Blob Storage, Bucket GCS, HCP Terraform, etc.).<\/p>\n<p>Voici un exemple de configuration de <em>backend<\/em> qui stocke le <em>state<\/em> Terraform dans un bucket GCS (Google Cloud Storage) :<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/code-terraform2.webp&#8221; alt=&#8221;code terraform2&#8243; title_text=&#8221;code terraform2&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p>L\u2019utilisation d\u2019un <em>backend<\/em> n\u00e9cessite \u00e9galement des informations d\u2019authentification qui peuvent \u00eatre diff\u00e9rentes de celles du provider.<\/p>\n<p>Ces configurations devront \u00eatre faites dans l\u2019ensemble des projets Terraform. Certaines entreprises mettent \u00e0 disposition des squelettes de code avec cette configuration minimale pour permettre aux \u00e9quipes de d\u00e9marrer des nouveaux projets rapidement !<\/p>\n<h3>Les premiers modules<\/h3>\n<p>Le code Terraform pourra \u00e9galement \u00eatre organis\u00e9 en modules r\u00e9utilisables. Dans ce cas, les modules devront suivre la structure de r\u00e9pertoires standard :<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/code-terraform3.webp&#8221; alt=&#8221;code terraform3&#8243; title_text=&#8221;code terraform3&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p>Cette structure standardis\u00e9e est un bon point de d\u00e9part pour les d\u00e9veloppements d\u2019un module.<\/p>\n<p>Les modules peuvent alors \u00eatre d\u00e9velopp\u00e9s !<\/p>\n<p>Les modules exposent des entr\u00e9es et sorties, <em>variables<\/em> et <em>outputs<\/em>, dont les valeurs sont utilis\u00e9es dans le code. Voici \u00e0 titre d\u2019exemple un extrait du code d\u2019un module qui cr\u00e9e une base de donn\u00e9es sur Scaleway (<a href=\"https:\/\/github.com\/eni-terraform-samples\/terraform-scaleway-postgresql-instance\" target=\"_blank\" rel=\"noopener\">le code complet est disponible sur GitHub<\/a>) :<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/code-terraform4.webp&#8221; alt=&#8221;code terraform4&#8243; title_text=&#8221;code terraform4&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p>La publication des premiers modules pourra alors \u00eatre faite sur le registry HashiCorp officiel, dans un repository GitLab, ou bien dans un registry priv\u00e9 sur HCP Terraform ou JFrog Artifactory par exemple.<\/p>\n<p>Une fois les modules mis \u00e0 disposition des \u00e9quipes, leur utilisation se fait avec un bloc <em>module<\/em> :<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/code-terraform5.webp&#8221; alt=&#8221;code terraform5&#8243; title_text=&#8221;code terraform5&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||23px|||&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h2 style=\"text-align: center;\">Enrichir l\u2019outillage<\/h2>\n<p>Une fois Terraform en place et les premiers modules d\u00e9velopp\u00e9s et utilis\u00e9s, il pourra \u00eatre int\u00e9ressant d\u2019enrichir l\u2019outillage pour g\u00e9n\u00e9rer automatiquement la documentation des modules, \u00e9crire des tests d\u2019int\u00e9gration, ou int\u00e9grer l\u2019ex\u00e9cution de Terraform avec HCP Terraform ou des pipelines d\u2019int\u00e9gration continue GitHub ou GitLab.<\/p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/livre3d_terraform.webp&#8221; alt=&#8221;Livre Terraform&#8221; title_text=&#8221;livre3d_terraform&#8221; url=&#8221;https:\/\/www.editions-eni.fr\/livre\/l-infrastructure-as-code-avec-terraform-deployez-votre-infrastructure-sur-le-cloud-9782409046629&#8243; align=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h1 style=\"text-align: center;\">Pour en savoir plus<\/h1>\n<p>Toutes ces notions, depuis la structure du langage HCL, en passant par l\u2019\u00e9criture de modules, de providers, leur configuration, et l\u2019outillage que les entreprises utilisent pour compl\u00e9ter leur workflow de d\u00e9veloppement Terraform, sont explor\u00e9es en d\u00e9tails dans mon livre<a href=\"https:\/\/www.editions-eni.fr\/livre\/l-infrastructure-as-code-avec-terraform-deployez-votre-infrastructure-sur-le-cloud-9782409046629\" target=\"_blank\" rel=\"noopener\"> \u201cL\u2019infrastructure as Code avec Terraform\u201d, d\u00e9j\u00e0 disponible aux Editions ENI pour les particuliers<\/a>.<\/p>\n<p>Et sur notre plateforme elearning pour les professionnels : <a href=\"https:\/\/www.eni-elearning.com\/fr\/\">https:\/\/www.eni-elearning.com\/fr\/<\/a><\/p>\n<p>Vous y trouverez tous les \u00e9l\u00e9ments dont vous avez besoin pour basculer, si ce n\u2019est d\u00e9j\u00e0 fait, dans l\u2019IaC. N\u2019h\u00e9sitez pas \u00e0 nous partager vos retours d\u2019exp\u00e9rience\u00a0!<\/p>[\/et_pb_text][et_pb_code _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_testimonial _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p><strong>Julien WITTOUCK<\/strong><span>\u00a0est architecte solution et d\u00e9veloppeur ind\u00e9pendant, associ\u00e9 dans l\u2019ESN Lilloise EKIT\u00c9, avec pr\u00e8s de 15 ans d\u2019exp\u00e9rience. Il enseigne \u00e9galement le d\u00e9veloppement Java et Spring Boot \u00e0 l\u2019Universit\u00e9 de Lille depuis plus de 10 ans. Speaker occasionnel sur ses sujets de pr\u00e9dilection comme Java, Docker et Kubernetes, Terraform et le Cloud, il participe \u00e0 l\u2019organisation de la conf\u00e9rence Lilloise Cloud Nord. Au cours de ses diff\u00e9rentes exp\u00e9riences, il a eu l\u2019occasion d\u2019accompagner des entreprises sur des migrations Cloud sur AWS et GCP et de d\u00e9velopper des plateformes compos\u00e9es de dizaines de modules Terraform utilis\u00e9s en self-service par des \u00e9quipes de d\u00e9veloppeurs. Ce livre est le fruit de ces exp\u00e9riences !<\/span><\/p>[\/et_pb_testimonial][et_pb_social_media_follow _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#f5f5f5&#8243; custom_padding=&#8221;||10px|30px|false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_social_media_follow][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||50px||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#7ebec5&#8243; custom_margin=&#8221;40px||||false|false&#8221; custom_padding=&#8221;20px||0px|20px|false|false&#8221; border_radii=&#8221;off|20px|20px||&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; text_font=&#8221;||||||||&#8221; text_line_height=&#8221;1.8em&#8221; header_font=&#8221;||||||||&#8221; header_2_font=&#8221;Overpass|300|||||||&#8221; header_2_font_size=&#8221;35px&#8221; header_2_line_height=&#8221;1.5em&#8221; header_3_line_height=&#8221;1.8em&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; header_2_font_size_tablet=&#8221;30px&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; border_color_all=&#8221;#1a0a38&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h3><span style=\"color: #333333; font-weight:normal,\">POUR LES ENTREPRISES<\/span><\/h3>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.16&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_line_height=&#8221;1em&#8221; header_font=&#8221;||||||||&#8221; header_2_font=&#8221;Overpass|300|||||||&#8221; header_2_font_size=&#8221;35px&#8221; header_2_line_height=&#8221;1.5em&#8221; header_3_line_height=&#8221;1.8em&#8221; custom_margin=&#8221;0px||20px||false|false&#8221; header_2_font_size_tablet=&#8221;30px&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; border_color_all=&#8221;#1a0a38&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h4><span style=\"color: #666666; font-weight: normal;\">D\u00e9couvrez nos solutions de formation pour vos \u00e9quipes et apprenants :<\/span><\/h4>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#7ebec5&#8243; custom_padding=&#8221;|30px|30px|30px|false|false&#8221; border_radii=&#8221;off|||20px|20px&#8221; border_color_all=&#8221;#3BB6D5&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; border_color_all=&#8221;#3BB6D5&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/reflechir.jpg&#8221; alt=&#8221;R\u00e9fl\u00e9chir en amont&#8221; title_text=&#8221;reflechir&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; border_color_all=&#8221;#000000&#8243; box_shadow_style=&#8221;preset1&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/10\/iconeElearning.png&#8221; alt=&#8221;elearning&#8221; title_text=&#8221;iconeElearning&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;10px||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; header_4_text_color=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h4 style=\"text-align: center;\">En e-learning avec<br \/>notre offre pour les professionnels<\/h4>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/www.eni-elearning.com\/fr\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;En savoir plus&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.0&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#EEEEEE&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/10\/iconeFormateur.png&#8221; alt=&#8221;formateur&#8221; title_text=&#8221;iconeFormateur&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;10px||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<h4 style=\"text-align: center;\"><span style=\"color: #ffffff;\">Avec un formateur, en pr\u00e9sentiel ou \u00e0 distance<\/span><\/h4>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/www.eni-service.fr\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;En savoir plus&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Ce mois-ci est sorti mon livre \u00ab\u00a0L\u2019infrastructure as Code avec Terraform &#8211; D\u00e9ployez votre infrastructure sur le Cloud\u00a0\u00bb qui est le fruit de mon exp\u00e9rience d\u2019architecte solutions qui m\u2019a r\u00e9guli\u00e8rement amen\u00e9 \u00e0 d\u00e9velopper des plateformes compos\u00e9es de dizaines de modules Terraform. Cette solution propose \u00e0 mes yeux de nombreux avantages, raison pour laquelle, entre autres, [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":6312,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:divi\/placeholder \/-->","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[4,18],"tags":[],"genre":[28,33],"class_list":["post-6311","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpement","category-paroles-d-experts","genre-developpement","genre-parole-dexpert"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?<\/title>\n<meta name=\"description\" content=\"Les avantages de l&#039;Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l&#039;agilit\u00e9.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?\" \/>\n<meta property=\"og:description\" content=\"Les avantages de l&#039;Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l&#039;agilit\u00e9.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/\" \/>\n<meta property=\"og:site_name\" content=\"Eni Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-22T14:35:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-04T10:32:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1279\" \/>\n\t<meta property=\"og:image:height\" content=\"454\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Denis Poillerat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Poillerat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/\",\"name\":\"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?\",\"isPartOf\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp\",\"datePublished\":\"2024-11-22T14:35:34+00:00\",\"dateModified\":\"2025-02-04T10:32:35+00:00\",\"author\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/a6d10ff07aa69cb7c10371334bbe60f6\"},\"description\":\"Les avantages de l'Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l'agilit\u00e9.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp\",\"contentUrl\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp\",\"width\":1279,\"height\":454,\"caption\":\"illustration infrastructure as code\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.editions-eni.fr\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#website\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/\",\"name\":\"Eni Blog\",\"description\":\"Blog des Editions ENI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.editions-eni.fr\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/a6d10ff07aa69cb7c10371334bbe60f6\",\"name\":\"Denis Poillerat\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/author\/dpoillerat\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?","description":"Les avantages de l'Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l'agilit\u00e9.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/","og_locale":"fr_FR","og_type":"article","og_title":"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?","og_description":"Les avantages de l'Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l'agilit\u00e9.","og_url":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/","og_site_name":"Eni Blog","article_published_time":"2024-11-22T14:35:34+00:00","article_modified_time":"2025-02-04T10:32:35+00:00","og_image":[{"width":1279,"height":454,"url":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp","type":"image\/webp"}],"author":"Denis Poillerat","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Denis Poillerat","Dur\u00e9e de lecture estim\u00e9e":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/","url":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/","name":"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?","isPartOf":{"@id":"https:\/\/www.editions-eni.fr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage"},"image":{"@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage"},"thumbnailUrl":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp","datePublished":"2024-11-22T14:35:34+00:00","dateModified":"2025-02-04T10:32:35+00:00","author":{"@id":"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/a6d10ff07aa69cb7c10371334bbe60f6"},"description":"Les avantages de l'Infrastructure as Code (IaC) avec Terraform pour r\u00e9duire les erreurs, garantir la conformit\u00e9 et am\u00e9liorer l'agilit\u00e9.","breadcrumb":{"@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#primaryimage","url":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp","contentUrl":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2024\/11\/iac_blog.webp","width":1279,"height":454,"caption":"illustration infrastructure as code"},{"@type":"BreadcrumbList","@id":"https:\/\/www.editions-eni.fr\/blog\/infrastructure-as-code-terraform\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.editions-eni.fr\/blog\/"},{"@type":"ListItem","position":2,"name":"Pourquoi adopter l\u2019Infrastructure as Code (IaC) ?"}]},{"@type":"WebSite","@id":"https:\/\/www.editions-eni.fr\/blog\/#website","url":"https:\/\/www.editions-eni.fr\/blog\/","name":"Eni Blog","description":"Blog des Editions ENI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.editions-eni.fr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/a6d10ff07aa69cb7c10371334bbe60f6","name":"Denis Poillerat","url":"https:\/\/www.editions-eni.fr\/blog\/author\/dpoillerat\/"}]}},"_links":{"self":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/6311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/comments?post=6311"}],"version-history":[{"count":4,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/6311\/revisions"}],"predecessor-version":[{"id":6322,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/6311\/revisions\/6322"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/media\/6312"}],"wp:attachment":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/media?parent=6311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/categories?post=6311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/tags?post=6311"},{"taxonomy":"genre","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/genre?post=6311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}