Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Infraestrutura como código (IaC, na sigla em inglês) é o processo de provisionar e gerenciar a infraestrutura de aplicativos de software usando código em vez de interfaces gráficas do usuário ou scripts de linha de comando.
O provisionamento da infraestrutura de aplicativos geralmente envolve a configuração e o gerenciamento de máquinas virtuais, conexões de banco de dados, armazenamento e outros elementos de infraestrutura. O gerenciamento manual dessa infraestrutura é demorado e propenso a erros, especialmente no gerenciamento de aplicativos em escala.
A IaC permite definir sua infraestrutura com arquivos de configuração, o que permite
criar, alterar e gerenciar sua infraestrutura de maneira segura e
repetível. É possível definir configurações de recursos para controlar, reutilizar e
compartilhar. A IaC permite especificar o estado desejado da infraestrutura. Em seguida, você pode implantar a mesma configuração várias vezes para criar ambientes
de desenvolvimento, teste e produção reproduzíveis.
A IaC permite tratar o provisionamento e a configuração da infraestrutura da
mesma maneira que o código do aplicativo. É possível armazenar sua lógica de configuração
de provisionamento no controle de origem e aproveitar os pipelines
de integração e implantação contínuas (CI/CD).
Benefícios de IaC
O uso da IaC para configurar e gerenciar a infraestrutura do aplicativo é uma
prática recomendada para vários casos de uso comuns. O Google gerencia os
sistemas com
IaC
e a estabeleceu como uma prática
padrão internamente.
A IaC oferece os seguintes benefícios:
É possível definir a infraestrutura com base nos seus requisitos e reutilizar a mesma configuração para criar vários ambientes de maneira consistente.
Automatize a criação e o gerenciamento de seus recursos de nuvem, inclusive para ambientes de implantação e teste.
Trate as alterações de infraestrutura como trata as alterações nos aplicativos. Por
exemplo, você pode garantir que as alterações na configuração sejam revisadas e
validadas automaticamente. Gerenciar ambientes de produção usando
processos controlados por mudanças usando a IaC é uma prática recomendada.
É possível manter um histórico de todas as alterações de configuração. As alterações podem ser auditadas
e revertidas.
Você pode ter uma única fonte de verdade para sua infraestrutura em nuvem.
Ferramentas de IaC para Google Cloud
OGoogle Cloud é totalmente integrado a muitas ferramentas de IaC. Escolha uma das
ferramentas abaixo, dependendo do caso de uso:
Terraform
Em geral, para configurar e gerenciar a infraestrutura do Google Cloud usando
código, use o provedor do Terraform para Google Cloud.
O HashiCorp Terraform é uma ferramenta de IaC que permite definir recursos na nuvem e no local em arquivos de configuração legíveis por humanos que você pode controlar, reutilizar e compartilhar. Assim, é possível usar um fluxo de trabalho consistente para provisionar e gerenciar toda a infraestrutura durante todo o ciclo de vida. Para mais informações, consulte
Visão geral do Terraform no Google Cloud.
Infrastructure Manager
Se você quiser automatizar a implantação da configuração do Terraform, use o Infrastructure Manager (Infra Manager).
O Infra Manager automatiza a implantação e o gerenciamento de
Google Cloud recursos de infraestrutura usando o Terraform.
O Infra Manager permite implantar programaticamente no
Google Cloud, permitindo que você use esse serviço em vez de manter
um conjunto de ferramentas diferente para trabalhar com o Terraform no Google Cloud. Para mais
informações, consulte Visão geral do Infra Manager.
Terraform Cloud e Terraform Enterprise
Se você precisar de um gerenciamento completo de mudanças com o Terraform em sua organização, use o Terraform Cloud ou o Terraform Enterprise.
O Terraform Cloud é um aplicativo de software como serviço (SaaS) que executa o Terraform em um ambiente remoto e estável e armazena estados e secrets com segurança. Ele também se integra à CLI do Terraform e se conecta a sistemas de controle de versões (VCS, na sigla em inglês) comuns, como GitHub, GitLab e Bitbucket. Quando você conecta um
espaço de trabalho do Terraform Cloud a um repositório do VCS, novas confirmações e alterações
podem acionar automaticamente os planos do Terraform. O Terraform Cloud também oferece uma API,
que permite integrá-lo a fluxos de trabalho existentes.
O Terraform Enterprise permite configurar uma distribuição auto-hospedada do Terraform
Cloud. Ele oferece limites de recursos personalizáveis e é ideal para organizações
com requisitos rigorosos de segurança e conformidade.
Se você quiser gerar infraestrutura com uma linguagem de programação de uso geral em vez de usar a linguagem de configuração Hashicorp (HCL, na sigla em inglês), use o Cloud Development Kit para Terraform (CDKTF).
O CDKTF (em inglês)
permite configurar o Terraform usando uma linguagem de programação para definir e
provisionar Google Cloud infraestrutura e usar o conjunto de ferramentas
atual para processos como testes e gerenciamento de dependências.
Pulumi
Pulumi (link em inglês)
é outra ferramenta que pode ser usada para provisionar infraestrutura usando linguagens de
programação. O provedor Google Cloud da Pulumi pode ser usado para criar
código de infraestrutura usando linguagens de programação como TypeScript, Python,
Go, C#, Java ou YAML.
Config Controller e Config Connector
Para gerenciar Google Cloud recursos pelo Kubernetes, use
o Config Controller e o Config Connector.
O Config Controller e o Config Connector permitem configurar
Google Cloud serviços e recursos usando ferramentas do Kubernetes. Use
ferramentas do GitOps, como o
Config Sync e
as APIs do Kubernetes, além de configurar e usar primitivos de engenharia de plataforma,
como webhooks e operadores de admissão.
Outra opção para gerenciar recursos do Google Cloud pelo Kubernetes é
usar o Crossplane.
O Crossplane conecta seu cluster do Kubernetes a recursos externos que não são do Kubernetes e permite que as equipes de plataforma criem APIs personalizadas do Kubernetes para consumir esses recursos. O Crossplane atua como um
controlador do Kubernetes
para observar o estado dos recursos externos e fornecer aplicação de estado.
Quando o Crossplane está instalado em um cluster do Kubernetes, os usuários só se comunicam
com o Kubernetes. O Crossplane gerencia a comunicação com recursos externos
como Google Cloud. Se algo modificar ou excluir um recurso fora do Kubernetes, o Crossplane reverterá a alteração ou recriará o recurso excluído.
Para automatizar o provisionamento, o gerenciamento de configurações, a implantação de aplicativos, a orquestração e outros processos de TI, use o Ansible. Para mais
informações, consulte Ansible para
Google Cloud.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-18 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)"]]