Description de la formation Terraform
Terraform est un environnement open source proposé par la société HashiCorp pour gérer son infrastructure informatique sous forme de scripts (VM, réseau, sécurité, stockage, SGBD, entrée DNS, etc.). Ce concept correspond à l’acronyme IaC (Infrastructure As Code).
Concrètement il s’agit de construire ou de mettre à jour une infrastructure de façon efficace et sécurisée tout en étant capable de gérer les versions et la cohérence de son infrastructure. Le plan d’exécution, basé sur un graphe de dépendances des ressources visualisable, peut concerner des infrastructures de toute taille qui intègrent ou non des technologies Cloud (Azure, AWS, GCP, OpenStack, etc.).
Objectifs
Objectif opérationnel :
Savoir orchestrer le déploiement et la configuration de son infrastructure Cloud à l’aide de Terraform conformément au concept d’IaC.
Objectifs pédagogiques :
À l’issue de cette formation Terraform, vous aurez acquis les connaissances et compétences nécessaires pour :
- Connaître le fonctionnement et les cas d’usage de Terraform
- Comprendre les apports d’une solution d’orchestration et d’automatisation pour votre infrastructure
- Savoir mettre en œuvre les bonnes pratiques permettant d’optimiser son efficacité dans la gestion d’infrastructures avec Terraform
- Connaître et décrire les solutions tierces permettant d’enrichir ses outils d’Infrastructure as Code
À qui s’adresse cette formation ?
Public :
Cette formation s’adresse aux administrateurs, développeurs et architectes souhaitant apprendre à utiliser Terraform pour orchestrer leurs applications et piloter leurs workloads sur leurs infrastructures virtuelles ou Cloud.
Prérequis :
Les participants doivent posséder des connaissances de base de l’administration d’un système Unix/Linux pour suivre cette formation Terraform dans de bonnes conditions. Une connaissance des architectures cloud et plus particulièrement des spécificités des acteurs du marché (Azure, AWS, GCP) sera utile pour assimiler plus rapidement les différentes modalités de déploiement de Terraform.
Contenu du cours Terraform
Introduction à l’Infrastructure As Code
Objectifs de l’Infrastructure As Code
Culture DevOps et IaC
Philosophie d’une infrastructure immutable
Infrastructure As Code – Les outils IaC
Origine de l’automatisation
Les apports d’une solution d’orchestration et d’automatisation
Les trois grandes familles de l’automatisation et leurs outils :
– Outils de gestion des templates
– Outils d’orchestration
– Outils de gestion de configuration
Les solutions tiercesTravaux pratiquesDémonstration autour des outils précédents sous forme de « tour d’horizon fonctionnel »
Introduction à Terraform
Les principes fondamentaux de Terraform
Présentation des autres outils d’HashiCorp
Introduction au langage HCL de Terraform (Hashicorp Configuration Language)
Le standard JSONTravaux pratiquesInstallation de Terraform
Introduction au langage Terraform
Présentation succincte de la plateforme de Cloud AWS
Présentation des ressources de base Terraform sur AWS :
– Providers
– Ressources
– Variables
– Data-source
Visualisation des ressources crées avec TerragraphTravaux pratiquesDéploiement de ressources sur AWS :
– Déploiement d’un serveur sur AWS
– Déploiement d’un serveur web sur AWS
– Déploiement d’un cluster de Serveurs Web sur AWS
– Déploiement d’un LoadBalancer sur AWSJour 2
Faciliter la réutilisation du Code Terraform
Présentation du système de modules Terraform
Présentation du Hub communautaire Terraform
Création d’un module
Gestion des Input
Gestion des OutputTravaux pratiquesCréation d’un module Terraform pour AWS
Créer un module Terraform de gestion d’un cluster de Serveurs Web avec LoadBalancer frontal sur AWS
Terraform et Multi-Cloud
Présentation succincte de la plateforme de cloud Microsoft Azure
Présentation des ressources de base Terraform sur Microsoft AzureTravaux pratiquesCréation d’un module Terraform pour GCP
Créer un module Terraform de gestion d’un cluster de Serveurs Web avec LoadBalancer frontal sur Azure
Terraform : notions avancées
Les conditions
Les boucles
Terraform et mise à jour de l’infrastructure sans interruption de service
Bonnes pratiquesTravaux pratiquesCréation d’un module de gestion des utilisateurs IAM sur AWS (boucle)
Modification du module de Cluster WEB sur AWS pour ajouter la possibilité d’activer le monitoring CloudWatch (condition)
Mise à jour du cluster de Serveurs Web avec Terraform sans interruption de service
Utiliser Terraform en équipe
Présentation du fichier « Terraform State »
– Partager le fichier « Terraform State »
– Protéger le fichier « Terraform State » des écritures concurrentielles
– Versionner le fichier « Terraform State »
Best-Practice de gestion du Code Terraform en équipe
Gestion des Secret dans Terraform
Tester et valider le code TerraformTravaux pratiquesMise en place d’une solution de gestion du fichier « Terraform State » sur AWS
Versionner et stocker le code Terraform sur AWS
Mise en place d’un test automatique du code Terraform sur AWS