Terraform : Utiliser GCP pour déployer son infrastructure

-
4
 m de lecture
-

Terraform facilite la gestion des infrastructures cloud, comme Google Cloud Platform. Dans cet article, nous allons justement voir comment construire un environnement GCP à l'aide de Terraform.

Qu’est-ce que Terraform ?

Terraform est un outil open source d’Infrastructure as a Code (IaaS). Développée par Hashicorp, cette solution permet de gérer une infrastructure cloud. 

Vous pouvez ainsi centraliser plusieurs services cloud (comme Google platform, Amazon web service, GitHub, Microsoft Azure, …) et décrire leur configuration à travers une seule et même solution. 

Bon à savoir : dans le langage Terraform, l’ensemble des services cloud est surnommé « Providers ». 

Dans cet article, nous allons nous intéresser spécifiquement à un provider : Google Cloud Platform. L’idée est alors de comprendre le déploiement de l’infrastructure GCP à travers Terraform.

Comment fonctionne Terraform ?

Pour exécuter Terraform sur GCP, vous devez comprendre son mode de fonctionnement. 

Avant toute chose, sachez qu’il s’agit d’un outil de codage déclaratif qui utilise le langage de configuration HCL (HashiCorp Configuration Language). C’est ce qui permet à la fois de décrire une infrastructure existante avec précision et de décrire son état final souhaité. 

À partir de là, Terraform intervient en 3 phases : 

  • Le plan : il s’agit de visualiser le plan d’exécution en mode dry run. Plus précisément, Terraform utilise le principe de l’idempotence. C’est-à-dire qu’il va comparer l’état actuel et l’état souhaité. Au cours de ce plan, aucune action n’est mise en œuvre. 
  • L’application : si Terraform ne constate aucune différence entre l’état initial de l’infrastructure et l’état cible, il ne fait rien. En revanche, si un delta est détecté, l’outil IaaS entreprend une action. Par exemple, créer une nouvelle ressource, mettre à jour certains éléments ou en supprimer d’autres… Les nouvelles ressources créées ou modifiées sont rassemblées dans des « topologies ». Il s’agit d’ensembles de ressources cohérents (par rapport à une instance, un réseau, une région…).
  • La destruction : les éléments d’infrastructure gérés par Terraform sont supprimés.

Toutes ces actions sont enregistrées dans le fichier tfstate. Cela va permettre de récupérer les ID techniques de chaque élément. En cas de mise à jour, les développeurs pourront ainsi rafraîchir les différents attributs.

Comment déployer son infrastructure GCP avec Terraform ?

L’installation des outils

La première chose à faire pour déployer son infrastructure GPC avec Terraform est d’installer et de configurer les différents outils (à savoir Terraform et Google Cloud Platform) si ce n’est pas déjà fait. 

Mais pour créer une connexion entre les deux, il faudra également utiliser Google Cloud SDK pour gérer vos ressources GCP. Cela vous permettra ainsi de vous authentifier sur votre compte Google Cloud Platform et de gérer les infrastructures avec Terraform. 

La structure de Terraform

Terraform élabore tous les fichiers GCP à l’intérieur d’un répertoire de travail. Que vous ayez un seul fichier ou plusieurs, ils apparaîtront tous sur terraform. Cela dit, nous vous conseillons de bien organiser l’ensemble de vos ressources pour faciliter votre travail et la collaboration avec d’autres équipes. 

La structure de Terraform est composée de plusieurs éléments. Voici les principaux : 

  • GCP : c’est le premier niveau qui apparaît sur Terraform. Ce fichier comprend toutes vos ressources stockées sur Google Cloud Platform. 
  • Main.tf : ce dossier permet d’exécuter Terraform. Plusieurs sections y sont présentes (fournisseur = GCP, Module = vos ressources, Output = résultats finaux). 
  • Variable.tf : vous devez définir l’ensemble de vos variables (comme les régions GCP). C’est le seul fichier que vous pouvez modifier. 
  • Backend.tf : cela vous permet d’enregistrer les différentes actions dans un fichier tfstate. Généralement, il est stocké dans le Google Cloud Storage, mais vous pouvez le conserver en local. Vous pouvez également les partager avec d’autres développeurs.

La création des modules

Pour déployer l’infrastructure GCP avec Terraform, vous devez utiliser les modules. Ces derniers vous permettent, par exemple, de : 

  • Créer des sous-réseaux : de manière personnalisée ou automatique. Par défaut, la création de sous-réseaux est automatique. Dès qu’une nouvelle région apparaît, un nouveau sous-réseau sera créé. Si vous ne souhaitez pas cela, il est possible de désactiver le mode automatique. De cette manière, vous devrez créer des sous-réseaux, mais uniquement quand vous en avez besoin. 
  • Définir des règles de pare-feu : l’idée est alors d’autoriser ou d’interdire les connexions à vos ressources. 
  • Configurer les sous-réseaux : si Google Cloud Platform est un réseau public, il héberge aussi des VPC (virtual private cloud). Vous pourrez définir quel sous-réseau est public et quel autre sous réseau est privé.
  • Créer une instance de machine virtuelle Compute Engine : cela vous permettra ainsi d’exécuter des machines virtuelles sur l’infrastructure Google.

Il existe de nombreuses autres fonctionnalités GPC que vous pouvez configurer dans les modules Terraform. Si vous souhaitez en savoir plus sur leur utilité et leur fonctionnement, n’hésitez pas à rejoindre nos formations chez Datascientest. 

L’exécution du plan Terraform

Pour exécuter le plan Terraform, il convient d’utiliser l’outil Google cloud SDK que vous avez préalablement installé. 

Cela va ainsi permettre de connecter les deux solutions. À partir de là, Terraform va comparer l’état actuel de GCP et l’état souhaité (que vous aurez défini à travers les différents modules) et appliquer les modifications requises. 

Quels sont les avantages de Terraform pour Google cloud platform ?

Si Terraform est un outil relativement nouveau (2014), il a déjà conquis de nombreux développeurs. Voici les principales raisons qui expliquent un tel succès : 

  • Une gestion rapide de l’infrastructure : grâce aux différents fichiers de configuration, il est facile d’approvisionner, définir ou paramétrer vos ressources.
  • La collaboration : à travers ses multiples fonctionnalités (gestion des états, modules, …) Terraform peut être utilisé par des équipes de toutes tailles. Et ce, n’importe où.
  • La communauté : Terraform est un outil open source qui s’améliore sans cesse grâce aux contributions de ses utilisateurs.

En prime, Terraforme est multiplateforme. Vous pouvez donc l’utiliser pour Google Cloud, mais aussi pour AWS, Oracle Cloud Infrastructure, Alibaba Cloud, Azure

Ce qu’il faut retenir

  • Terraform vous permet de gérer et déployer des infrastructures cloud rapidement et facilement. 
  • En tant qu’outil de codage déclaratif, Terraform compare un état initial et un état cible. Grâce à ces fonctionnalités, il applique les modifications nécessaires pour aboutir à l’état cible.
  • Utiliser Terraform pour GPC vous permet de gagner du temps pour le déploiement et la gestion et de travailler efficacement avec d’autres DevOps.

Maintenant que vous savez tout sur Terraform pour GCP, vous pouvez commencer une formation pour maîtriser cet outil utile en Data Science. Inscrivez-vous dès maintenant sur DataScientest.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?