Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'Infrastructure as Code (IaC) est le processus de provisionnement et de gestion de l'infrastructure de l'application logicielle à l'aide de code plutôt que d'interfaces utilisateur graphiques ou de scripts de ligne de commande.
Le provisionnement de l'infrastructure d'application implique généralement de configurer et de gérer des machines virtuelles, des connexions à des bases de données, un stockage et d'autres éléments d'infrastructure. La gestion manuelle de cette infrastructure est chronophage et sujette aux erreurs, en particulier lors de la gestion des applications à grande échelle.
L'IaC vous permet de définir votre infrastructure à l'aide de fichiers de configuration, qui vous permettent de créer, de modifier et de gérer votre infrastructure de manière sûre et reproductible. Vous pouvez définir des configurations de ressources que vous pouvez versionner, réutiliser et partager. L'IaC vous permet de spécifier l'état souhaité de votre infrastructure. Vous pouvez ensuite déployer la même configuration plusieurs fois pour créer des environnements de développement, de test et de production reproductibles.
L'IaC vous permet de traiter le provisionnement et la configuration de votre infrastructure de la même manière que vous gérez le code d'application. Vous pouvez stocker votre logique de configuration de provisionnement dans un système de contrôle source et tirer parti des pipelines d'intégration et de déploiement continus (CI/CD).
Avantages de l'IaC
L'utilisation de l'IAC pour configurer et gérer votre infrastructure d'application est une bonne pratique pour un certain nombre de cas d'utilisation courants. Google gère ses systèmes avec l'IaC et la définit comme une pratique standard en interne.
L'IaC offre les avantages suivants :
Vous pouvez définir votre infrastructure en fonction de vos besoins et réutiliser la même configuration pour créer plusieurs environnements de manière cohérente.
Vous pouvez automatiser la création et la gestion de vos ressources cloud, y compris pour les environnements de déploiement et de test.
Vous pouvez traiter les modifications d'infrastructure de la même manière que les modifications d'application. Par exemple, vous pouvez vous assurer que les modifications apportées à la configuration sont examinées et validées automatiquement. Il est recommandé de gérer les environnements de production à l'aide de processus contrôlés par le changement via l'IaC.
Vous pouvez conserver un historique de toutes les modifications de configuration. Les modifications peuvent être auditées et annulées.
Vous pouvez avoir une source d'informations unique pour votre infrastructure cloud.
Outils IaC pour Google Cloud
Google Cloud est étroitement intégré à de nombreux outils IaC. Choisissez l'un des outils suivants en fonction de votre cas d'utilisation :
Terraform
En règle générale, pour configurer et gérer l'infrastructure Google Cloud à l'aide de code, utilisez le fournisseur Terraform pour Google Cloud.
HashiCorp Terraform est un outil IaC qui vous permet de définir des ressources dans le cloud et sur site dans des fichiers de configuration lisibles par l'homme, que vous pouvez versionner, réutiliser et partager. Vous pouvez ensuite utiliser un workflow cohérent pour provisionner et gérer l'ensemble de votre infrastructure tout au long de son cycle de vie. Pour en savoir plus, consultez la présentation de Terraform sur Google Cloud.
Infrastructure Manager
Si vous souhaitez automatiser le déploiement de votre configuration Terraform, utilisez Infrastructure Manager (Infra Manager).
Infra Manager automatise le déploiement et la gestion des ressources d'infrastructureGoogle Cloud à l'aide de Terraform.
Infra Manager vous permet de déployer de manière programmatique surGoogle Cloud, ce qui vous permet d'utiliser ce service plutôt que de gérer une chaîne d'outils différente pour travailler avec Terraform sur Google Cloud. Pour en savoir plus, consultez la page Présentation d'Infra Manager.
Terraform Cloud et Terraform Enterprise
Si vous avez besoin d'une gestion complète des changements avec Terraform dans l'ensemble de votre organisation, utilisez Terraform Cloud ou Terraform Enterprise.
Terraform Cloud est une application SaaS (Software as a Service) qui exécute Terraform dans un environnement distant stable et stocke de manière sécurisée l'état et les secrets. Terraform Cloud s'intègre également à la CLI Terraform et se connecte aux systèmes de contrôle des versions (VCS) courants tels que GitHub, GitLab et Bitbucket. Lorsque vous connectez un espace de travail Terraform Cloud à un dépôt VCS, les nouveaux commits et modifications peuvent déclencher automatiquement des plans Terraform. Terraform Cloud propose également une API qui vous permet de l'intégrer à des workflows existants.
Terraform Enterprise vous permet de configurer une distribution auto-hébergée de Terraform Cloud. Il offre des limites de ressources personnalisables et est idéal pour les organisations qui ont des exigences strictes en termes de sécurité et de conformité.
Si vous souhaitez générer une infrastructure avec un langage de programmation à usage général au lieu d'utiliser le langage de configuration Hashicorp (HCL), utilisez le kit de développement cloud pour Terraform (CDKTF).
CDKTF vous permet de configurer Terraform à l'aide d'un langage de programmation pour définir et provisionner l'infrastructure Google Cloud , et d'utiliser votre chaîne d'outils existante pour des processus tels que les tests et la gestion des dépendances.
Pulumi
Pulumi est un autre outil que vous pouvez utiliser pour provisionner une infrastructure à l'aide de langages de programmation. Vous pouvez utiliser le fournisseur Google Cloud pour Pulumi pour créer du code d'infrastructure à l'aide de langages de programmation tels que TypeScript, Python, Go, C#, Java ou YAML.
Config Controller et Config Connector
Pour gérer les ressources Google Cloud via Kubernetes, utilisez Config Controller et Config Connector.
Config Controller et Config Connector vous permettent de configurer des services et des ressourcesGoogle Cloud à l'aide d'outils Kubernetes. Vous pouvez utiliser des outils GitOps tels que Config Sync et les API Kubernetes, et vous pouvez configurer et utiliser des primitives d'ingénierie de plate-forme telles que les webhooks d'admission et les opérateurs.
Vous pouvez également gérer des ressources Google Cloud via Kubernetes à l'aide de Crossplane.
Crossplane connecte votre cluster Kubernetes à des ressources externes non Kubernetes et permet aux équipes de plate-forme de créer des API Kubernetes personnalisées pour consommer ces ressources. Crossplane agit comme un contrôleur Kubernetes pour surveiller l'état des ressources externes et permettre l'application de l'état.
Avec Crossplane installé dans un cluster Kubernetes, les utilisateurs ne communiquent qu'avec Kubernetes. Crossplane gère la communication avec des ressources externes telles que Google Cloud. Si un élément modifie ou supprime une ressource en dehors de Kubernetes, Crossplane annule la modification ou recrée la ressource supprimée.
Si vous souhaitez automatiser le provisionnement, la gestion de la configuration, le déploiement d'applications, l'orchestration et d'autres processus IT, utilisez Ansible. Pour en savoir plus, consultez Ansible pourGoogle Cloud.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eInfrastructure as Code (IaC) allows for the management of software application infrastructure through code, enabling safer and more repeatable processes than manual methods.\u003c/p\u003e\n"],["\u003cp\u003eUsing IaC involves defining infrastructure with configuration files, allowing for versioning, reuse, and sharing, and enabling the creation of reproducible environments.\u003c/p\u003e\n"],["\u003cp\u003eIaC enables the management of infrastructure changes similarly to application code changes, allowing for review, automated validation, and historical tracking.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Cloud integrates with numerous IaC tools, including Terraform, Infrastructure Manager, Cloud Development Kit for Terraform (CDKTF), Pulumi, and others, each catering to different use cases.\u003c/p\u003e\n"],["\u003cp\u003eTools like Config Controller, Config Connector, Crossplane, and Ansible provide options to use IaC through Kubernetes or for broader automation of IT processes.\u003c/p\u003e\n"]]],[],null,["# Infrastructure as Code on Google Cloud\n\nInfrastructure as Code (IaC) is the process of provisioning and managing software\napplication infrastructure using *code* instead of graphical user interfaces or\ncommand-line scripts.\n\nProvisioning application infrastructure typically involves setting up and\nmanaging virtual machines, database connections, storage, and other\ninfrastructure elements. Manually managing this infrastructure is time consuming\nand error prone, especially when managing applications at scale.\n\nIaC lets you define your infrastructure with configuration files, which allow\nyou to build, change, and manage your infrastructure in a safe and repeatable\nway. You can define resource configurations that you can version, reuse, and\nshare. IaC lets you specify the desired state of your infrastructure. You can\nthen deploy the same configuration multiple times to create reproducible\ndevelopment, test, and production environments.\n\nIaC allows you to treat your infrastructure provisioning and configuration in\nthe same manner as you handle application code. You can store your provisioning\nconfiguration logic in source control and you can take advantage of continuous\nintegration and continuous deployment (CI/CD) pipelines.\n\nBenefits of IaC\n---------------\n\nUsing IaC to set up and manage your application infrastructure is a best\npractice for a number of common use cases. [Google manages its\nsystems with\nIaC](https://www.usenix.org/publications/loginonline/prodspec-and-annealing-intent-based-actuation-google-production),\nand established it as a [standard\npractice](https://sre.google/workbook/configuration-design/) internally.\n\nIaC offers the following benefits:\n\n- You can define your infrastructure based on your requirements and reuse the same configuration to create multiple environments consistently.\n- You can automate the creation and management of your cloud resources, including for deployment and test environments.\n- You can treat infrastructure changes like you treat application changes. For example, you can ensure that changes to the configuration are reviewed and automatically validated. Managing production environments through change-controlled processes using IaC is a best practice.\n- You can keep a history of all configuration changes. Changes can be audited and reverted.\n- You can have a single source of truth for your cloud infrastructure.\n\nIaC tools for Google Cloud\n--------------------------\n\nGoogle Cloud is tightly integrated with many IaC tools. Choose one of the\nfollowing tools depending on your use case:\n\n- **Terraform**\n\n In general, to configure and manage Google Cloud infrastructure using\n code, use the Terraform provider for Google Cloud.\n\n HashiCorp Terraform is an IaC tool that lets you define\n resources in cloud and on-premises in human-readable configuration files\n that you can version, reuse, and share. You can then use a consistent\n workflow to provision and manage all of your infrastructure throughout its\n lifecycle. For more information, see\n [Overview of Terraform on Google Cloud](/docs/terraform/terraform-overview).\n- **Infrastructure Manager**\n\n If you're looking to automate the deployment of your Terraform\n configuration, use Infrastructure Manager (Infra Manager).\n\n Infra Manager automates the deployment and management of\n Google Cloud infrastructure resources using Terraform.\n Infra Manager lets you deploy programmatically to\n Google Cloud, allowing you to use this service rather than maintaining\n a different toolchain to work with Terraform on Google Cloud. For more\n information, see [Infra Manager\n overview](/infrastructure-manager/docs/overview).\n- **Terraform Cloud and Terraform Enterprise**\n\n If you require full change management with Terraform across your\n organization, use Terraform Cloud or Terraform Enterprise.\n\n Terraform Cloud is a software as a service (SaaS) application that runs Terraform in a stable,\n remote environment and securely stores state and secrets. Terraform Cloud\n also integrates with the Terraform CLI and connects to common version\n control systems (VCS) like GitHub, GitLab, and Bitbucket. When you connect a\n Terraform Cloud workspace to a VCS repository, new commits and changes can\n automatically trigger Terraform plans. Terraform Cloud also offers an API,\n allowing you to integrate it into existing workflows.\n\n Terraform Enterprise lets you set up a self-hosted distribution of Terraform\n Cloud. It offers customizable resource limits and is ideal for organizations\n with strict security and compliance requirements.\n\n For more information, see the [Terraform Editions page in the Hashicorp\n documentation](https://developer.hashicorp.com/terraform/intro/terraform-editions).\n- **Cloud Development Kit for Terraform**\n\n If you want to generate infrastructure with a general-purpose programming\n language instead of using Hashicorp Configuration Language (HCL), use Cloud\n Development Kit for Terraform (CDKTF).\n\n [CDKTF](https://developer.hashicorp.com/terraform/cdktf)\n lets you configure Terraform using a programming language to define and\n provision Google Cloud infrastructure and lets you use your existing\n toolchain for processes like testing and dependency management.\n- **Pulumi**\n\n [Pulumi](https://www.pulumi.com/docs/clouds/gcp/)\n is another tool you can use to provision infrastructure using programming\n languages. You can use Google Cloud provider for Pulumi to author\n infrastructure code using programming languages such as TypeScript, Python,\n Go, C#, Java or YAML.\n- **Config Controller and Config Connector**\n\n To manage Google Cloud resources through Kubernetes, use\n Config Controller and Config Connector.\n\n Config Controller and Config Connector let you configure\n Google Cloud services and resources using Kubernetes tooling. You can\n use GitOps tools like\n [Config Sync](/anthos-config-management/docs/config-sync-overview), and\n Kubernetes APIs, and you can configure and use platform-engineering\n primitives such as admission webhooks and operators.\n\n For more information see the\n [Config Controller overview](/anthos-config-management/docs/concepts/config-controller-overview)\n and [Config Connector overview](/config-connector/docs/overview).\n- **Crossplane**\n\n Another option to manage Google Cloud resources through Kubernetes is\n by using Crossplane.\n\n Crossplane connects your Kubernetes cluster to external, non-Kubernetes\n resources, and allows platform teams to build custom Kubernetes APIs to\n consume those resources. Crossplane acts as a\n [Kubernetes controller](https://kubernetes.io/docs/concepts/architecture/controller/)\n to watch the state of the external resources and provide state enforcement.\n With Crossplane installed in a Kubernetes cluster, users only communicate\n with Kubernetes. Crossplane manages the communication to external resources\n like Google Cloud. If something modifies or deletes a resource outside\n of Kubernetes, Crossplane reverses the change or recreates the deleted\n resource.\n\n For more information, see the\n [Crossplane documentation](https://docs.crossplane.io/v1.18/).\n- **Ansible**\n\n If you want to automate provisioning, configuration management, application\n deployment, orchestration, and other IT processes, use Ansible. For more\n information, see [Ansible for\n Google Cloud](https://docs.ansible.com/ansible/latest/collections/google/cloud/).\n\nWhat's next\n-----------\n\n- Learn more about [Terraform](/docs/terraform/terraform-overview)\n- Learn how to [create a basic web server on Compute Engine using Terraform](/docs/terraform/get-started-with-terraform)\n- Learn how to [store Terraform state in a Cloud Storage bucket](/docs/terraform/resource-management/store-state)"]]