Qu’est-ce que Terraform ?
Découvrir la solution Terraform d’IBM S’abonner aux mises à jour sur le cloud
Illustration avec collage de pictogrammes représentant un écran d’ordinateur, un serveur, des nuages et des points
Qu’est-ce que Terraform ?

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.

Gagnez en flexibilité sur le lieu de travail avec le DaaS

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.

Contenu connexe

Obtenir le guide sur la modernisation des applications

Pourquoi choisir l’infrastructure en tant que code (IaC) ?

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 :

  • Rapidité améliorée : l’automatisation prend moins de temps que la navigation manuelle dans une interface lors du déploiement ou de la connexion des ressources.

  • Fiabilité améliorée : dans une grande infrastructure, il arrive plus facilement de mal configurer une ressource ou de ne pas provisionner les services dans le bon ordre. Avec l’IaC, les ressources sont toujours provisionnées et configurées exactement comme déclaré dans le code.

  • Prévention des écarts de configuration : des écarts de configuration se produisent lorsque la configuration qui a servi à provisionner votre environnement ne correspond plus à l’environnement réel. (Reportez-vous à la section « Infrastructure immuable ».)

  • Aide à l’expérimentation, aux tests et à l’optimisation : comme l’IaC facilite et accélère le provisionnement des nouvelles infrastructures, vous pouvez effectuer des changements expérimentaux et les tester sans investir trop de temps ni de ressources. Et si les résultats vous conviennent, vous pouvez rapidement dimensionner la nouvelle infrastructure pour la faire passer en production.
Pourquoi choisir Terraform ?

Les développeurs choisissent d’utiliser Terraform plutôt que d’autres outils d’infrastructure en tant que code pour plusieurs raisons principales :

  • Open source : Terraform est soutenu par de grandes communautés de contributeurs qui créent des plug-ins pour la plateforme. Indépendamment de votre fournisseur de cloud, il est facile de trouver des plug-ins, des extensions et une assistance professionnelle. Cela signifie également que Terraform évolue à un rythme soutenu : des nouveaux avantages et des améliorations en continu.

  • Indépendant de la plateforme : vous pouvez l’utiliser avec n’importe quel fournisseur de services cloud. La plupart des autres outils IaC ne sont compatibles qu’avec un seul fournisseur de cloud.

  • Infrastructure immuable : la plupart des outils d’infrastructure en tant que code créent une infrastructure mutable, qui peut changer pour s’adapter aux modifications telles que la mise à niveau du middleware ou l’ajout d’un nouveau serveur de stockage. Le danger des infrastructures mutables, ce sont les écarts de configuration : au fur et à mesure des changements, le provisionnement réel des différents serveurs ou autres éléments de l’infrastructure dérivent de la configuration d’origine, ce qui rend les bugs ou les problèmes de performance difficiles à repérer et à corriger. Terraform provisionne une infrastructure immuable : à chaque modification de l’environnement, la configuration du moment est remplacée par une nouvelle configuration qui tient compte du changement, et l’infrastructure est reprovisionnée. Mieux encore, les versions des configurations précédentes peuvent être conservées à des fins de restauration, le cas échéant.
Modules Terraform

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.

Fournisseurs Terraform

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.

Terraform et Kubernetes

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

Terraform et Ansible sont tous deux des outils IaC, mais il existe quelques différences significatives entre les deux :

  • Alors que Terraform est purement un outil déclaratif (voir ci-dessus), Ansible combine à la fois une configuration déclarative et procédurale. Une configuration procédurale consiste à spécifier les étapes ou la manière précise dont vous souhaitez provisionner l’infrastructure à l’état souhaité. Ce type de configuration demande plus de travail, mais elle offre plus de contrôle.

  • Terraform est un outil open source, Ansible est développé et vendu par Red Hat.
Solutions connexes
IBM Cloud Schematics

IBM Cloud Schematics permet l’automatisation en proposant des modèles Terraform déclaratifs pour l’infrastructure cloud souhaitée.

Découvrir IBM Cloud Schematics
Ressources Qu’est-ce que l’infrastructure en tant que code (IaC) ?

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.

Qu’est-ce que Kubernetes ?

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.

Qu’est-ce que l’infrastructure en tant que service (IaaS) ?

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.

Passez à l’étape suivante

Votre entreprise est-elle prête pour le DevOps ? Pour proposer des logiciels et des services à la vitesse exigée par le marché, les équipes doivent itérer et expérimenter rapidement, et déployer de nouvelles versions fréquemment, en fonction des retours d’information et des données. Les équipes de développement cloud les plus performantes ont adopté une culture et des bonnes pratiques DevOps modernes, des architectures cloud-natives, et ont constitué des chaînes d’outils à partir de ce qu’il se fait de mieux sur le marché afin de décupler leur productivité.

Découvrir les solutions DevOps Essayer gratuitement