Terraform est un outil open source « infrastructure en tant que code » créé par HashiCorp qui permet aux programmeurs de créer, de modifier et de gérer les versions d’une infrastructure de manière sûre et efficace.
Terraform est un outil de codage déclaratif qui permet aux développeurs d’utiliser un langage de configuration de haut niveau appelé HCL (HashiCorp Configuration Language) pour décrire « l’état final » souhaité de l’infrastructure cloud ou locale afin d’exécuter une application. Un plan est alors généré pour atteindre cet état final et le plan de provisionnement de l’infrastructure est exécuté.
Terraform utilise une syntaxe simple, provisionne une infrastructure sur plusieurs centres de données cloud et sur site, et reprovisionne l’infrastructure de façon sûre et efficace en cas de modification de la configuration. Il s’agit de l’un des outils d’automatisation d’infrastructure les plus populaires actuellement. Si votre entreprise prévoit de déployer un environnement de cloud hybride ou multicloud, vous avez tout intérêt à vous tourner vers Terraform.
Découvrez comment le DaaS (Desktop as a service) permet aux entreprises d'atteindre le même niveau de performance et de sécurité qu'en déployant les applications sur site.
Obtenir le guide sur la modernisation des applications
Pour mieux comprendre les avantages de Terraform, il faut d’abord connaître ceux de l’infrastructure en tant que code (IaC). L’IaC permet aux développeurs de coder l’infrastructure afin d’en automatiser et d’en accélérer le provisionnement, et de le rendre reproductible. C’est un composant clé des pratiques Agile et DevOps telles que le contrôle de version, l’intégration continue et le déploiement continu.
L’infrastructure en tant que code peut apporter les avantages suivants :
Les développeurs choisissent d’utiliser Terraform plutôt que d’autres outils d’infrastructure en tant que code pour plusieurs raisons principales :
Les modules Terraform sont de petites configurations Terraform réutilisables pour plusieurs ressources d’infrastructure, qui sont utilisées ensemble. Les modules Terraform sont pratiques, car ils permettent d’automatiser des ressources complexes avec des constructions configurables réutilisables. Écrire ne serait-ce qu’un fichier Terraform très simple permet de former un module. Un module peut appeler d’autres modules, appelés modules enfants, pour un assemblage de la configuration plus rapide et plus concis. Les modules peuvent également être appelés plusieurs fois, dans la même configuration ou dans des configurations distinctes.
Les fournisseurs Terraform sont des plug-ins qui mettent en œuvre certains types de ressources. Les fournisseurs contiennent tout le code nécessaire pour s’authentifier et se connecter à un service, en règle générale au service d’un fournisseur de cloud public, au nom de l’utilisateur. Vous pouvez trouver des fournisseurs pour les plateformes et services cloud que vous utilisez, les ajouter à votre configuration, puis utiliser leurs ressources pour provisionner l’infrastructure. Des fournisseurs sont disponibles pour la quasi-totalité des fournisseurs de cloud majeurs, des offres SaaS, et plus encore. Ils sont développés ou soutenus par la communauté Terraform ou des organisations individuelles. Reportez-vous à la documentation Terraform (lien externe à ibm.com) pour obtenir une liste détaillée.
Il y a parfois une confusion entre Terraform et Kubernetes, et ce qu’ils font. En vérité, l’un ne remplace pas l’autre et ces deux outils fonctionnent bien ensemble.
Kubernetes est un système d’orchestration de conteneurs open source qui permet aux développeurs de planifier des déploiements sur les nœuds d’un cluster de calcul et de gérer activement les workloads conteneurisés pour s’assurer que leur état correspond aux intentions des utilisateurs.
Terraform est un outil d’infrastructure en tant que code dont la portée est plus large : il permet aux développeurs d’automatiser une infrastructure complète couvrant plusieurs clouds publics et clouds privés.
Terraform peut automatiser et gérer des capacités de niveau infrastructure en tant que service (IaaS), plateforme en tant que service (PaaS) ou même logiciel en tant que service (SaaS) et créer toutes ces ressources, pour tous ces fournisseurs en parallèle. Vous pouvez utiliser Terraform pour automatiser le provisionnement de Kubernetes, en particulier les clusters Kubernetes gérés sur des plateformes cloud, et pour automatiser le déploiement d’applications dans un cluster.
Terraform et Ansible sont tous deux des outils IaC, mais il existe quelques différences significatives entre les deux :
IBM Cloud Schematics permet l’automatisation en proposant des modèles Terraform déclaratifs pour l’infrastructure cloud souhaitée.
L’infrastructure en tant que code (IaC) automatise le provisionnement de l’infrastructure, permettant à votre organisation de développer, de déployer et de dimensionner des applications cloud de manière plus rapide, moins risquée et plus économique.
Kubernetes est une plateforme d’orchestration de conteneurs open source qui automatise le déploiement, la gestion et la mise à l’échelle des applications. Découvrez comment Kubernetes peut vous faire profiter d’un développement cloud natif économique.
Présentation de l’IaaS, de ses composants, de ses avantages, de sa tarification et de son lien avec le PaaS, le SaaS, le BMaaS, les conteneurs et le sans serveur.