Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'Infrastructure as Code (IaC) è il processo di provisioning e gestione dell'infrastruttura delle applicazioni software utilizzando codice anziché interfacce utente grafiche o script a riga di comando.
Il provisioning dell'infrastruttura delle applicazioni prevede in genere la configurazione e la gestione di macchine virtuali, connessioni al database, archiviazione e altri elementi dell'infrastruttura. La gestione manuale di questa infrastruttura è lunga
e soggetta a errori, soprattutto quando si gestiscono applicazioni su larga scala.
IaC ti consente di definire l'infrastruttura con file di configurazione, che ti consentono di crearla, modificarla e gestirla in modo sicuro e ripetibile. Puoi definire configurazioni delle risorse di cui puoi creare una versione, riutilizzare e condividere. La IaC ti consente di specificare lo stato desiderato della tua infrastruttura. Puoi quindi eseguire il deployment della stessa configurazione più volte per creare ambienti di sviluppo, test e produzione riproducibili.
L'IaC ti consente di trattare il provisioning e la configurazione dell'infrastruttura nello stesso modo in cui gestisci il codice dell'applicazione. Puoi memorizzare la logica di configurazione del provisioning nel controllo del codice sorgente e sfruttare le pipeline di integrazione e deployment continui (CI/CD).
Vantaggi dell'IaC
L'utilizzo dell'IaC per configurare e gestire l'infrastruttura delle applicazioni è una best practice per una serie di casi d'uso comuni. Google gestisce i propri sistemi con IaC e lo ha stabilito come pratica standard interna.
L'IaC offre i seguenti vantaggi:
Puoi definire l'infrastruttura in base ai tuoi requisiti e riutilizzare la stessa configurazione per creare più ambienti in modo coerente.
Puoi automatizzare la creazione e la gestione delle risorse cloud,
incluso per gli ambienti di test e di deployment.
Puoi trattare le modifiche dell'infrastruttura come le modifiche dell'applicazione. Ad esempio, puoi assicurarti che le modifiche alla configurazione vengano esaminate e convalidate automaticamente. La gestione degli ambienti di produzione tramite processi controllati tramite modifiche che utilizzano l'IaC è una best practice.
Puoi conservare una cronologia di tutte le modifiche alla configurazione. Le modifiche possono essere controllate
e annullate.
Puoi avere un'unica fonte attendibile per la tua infrastruttura cloud.
Strumenti IaC per Google Cloud
Google Cloud è strettamente integrato con molti strumenti IaC. Scegli uno dei seguenti strumenti in base al tuo caso d'uso:
Terraform
In generale, per configurare e gestire Google Cloud l'infrastruttura utilizzando
il codice, utilizza il provider Terraform per Google Cloud.
HashiCorp Terraform è uno strumento IaC che consente di definire le risorse in cloud e on-premise in file di configurazione leggibili da persone che puoi versionare, riutilizzare e condividere. Puoi quindi utilizzare un flusso di lavoro coerente per eseguire il provisioning e gestire tutta l'infrastruttura durante il suo ciclo di vita. Per ulteriori informazioni, consulta la panoramica di Terraform su Google Cloud.
Infrastructure Manager
Se vuoi automatizzare il deployment della configurazione Terraform, utilizza Infrastructure Manager (Infra Manager).
Infra Manager automatizza il deployment e la gestione delle
Google Cloud risorse di infrastruttura utilizzando Terraform.
Infra Manager ti consente di eseguire il deployment in modo programmatico su
Google Cloud, il che ti consente di utilizzare questo servizio anziché gestire
una toolchain diversa per lavorare con Terraform su Google Cloud. Per ulteriori informazioni, consulta la panoramica di Infra Manager.
Terraform Cloud e Terraform Enterprise
Se hai bisogno di una gestione completa delle modifiche con Terraform nell'intera organizzazione, utilizza Terraform Cloud o Terraform Enterprise.
Terraform Cloud è un'applicazione Software as a Service (SaaS) che esegue Terraform in un ambiente remoto stabile e archivia in modo sicuro stato e segreti. Terraform Cloud si integra anche con la CLI Terraform e si connette a sistemi di controllo della versione (VCS) comuni come GitHub, GitLab e Bitbucket. Quando colleghi un'area di lavoro Terraform Cloud a un repository VCS, i nuovi commit e le nuove modifiche possono attivare automaticamente i piani Terraform. Terraform Cloud offre anche un'API, che ti consente di integrarlo nei flussi di lavoro esistenti.
Terraform Enterprise ti consente di configurare una distribuzione self-hosted di Terraform Cloud. Offre limiti di risorse personalizzabili ed è ideale per le organizzazioni con requisiti rigorosi di sicurezza e conformità.
Se vuoi generare l'infrastruttura con un linguaggio di programmazione generico anziché utilizzare HashiCorp Configuration Language (HCL), utilizza Cloud Development Kit for Terraform (CDKTF).
CDKTF
ti consente di configurare Terraform utilizzando un linguaggio di programmazione per definire e provisioning Google Cloud dell'infrastruttura e ti consente di utilizzare la tua toolchain esistente per processi come test e gestione delle dipendenze.
Pulumi
Pulumi
è un altro strumento che puoi utilizzare per eseguire il provisioning dell'infrastruttura utilizzando i linguaggi di programmazione. Puoi utilizzare il Google Cloud provider per Pulumi per scrivere
codice di infrastruttura utilizzando linguaggi di programmazione come TypeScript, Python,
Go, C#, Java o YAML.
Config Controller e Config Connector
Per gestire Google Cloud le risorse tramite Kubernetes, utilizza
Config Controller e Config Connector.
Config Controller e Config Connector ti consentono di configurareGoogle Cloud servizi e risorse utilizzando gli strumenti Kubernetes. Puoi utilizzare strumenti GitOps come Config Sync e API Kubernetes, nonché configurare e utilizzare primitive di progettazione della piattaforma come webhook e operatori di ammissione.
Un'altra opzione per gestire le risorse Google Cloud tramite Kubernetes è utilizzare Crossplane.
Crossplane connette il cluster Kubernetes a risorse esterne non Kubernetes e consente ai team della piattaforma di creare API Kubernetes personalizzate per utilizzare queste risorse. Crossplane agisce come
controller Kubernetes
per monitorare lo stato delle risorse esterne e applicare lo stato.
Con Crossplane installato in un cluster Kubernetes, gli utenti comunicano solo con Kubernetes. Crossplane gestisce la comunicazione con risorse esterne come Google Cloud. Se qualcosa modifica o elimina una risorsa al di fuori di Kubernetes, Crossplane annulla la modifica o ricrea la risorsa eliminata.
Se vuoi automatizzare il provisioning, la gestione della configurazione, il deployment delle applicazioni, l'orchestrazione e altre procedure IT, utilizza Ansible. Per ulteriori informazioni, consulta Ansible per
Google Cloud.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)"]]