Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La infraestructura como código (IaC) es el proceso de aprovisionar y administrar la infraestructura de la aplicación de software mediante un código en lugar de interfaces gráficas de usuario o secuencias de comandos de la línea de comandos.
El aprovisionamiento de la infraestructura de aplicaciones, por lo general, implica configurar y administrar máquinas virtuales, conexiones de bases de datos, almacenamiento y otros elementos de la infraestructura. La administración manual de esta infraestructura requiere mucho tiempo y es propensa a errores, en especial cuando se administran aplicaciones a gran escala.
La IaC te permite definir la infraestructura con archivos de configuración, lo que te permite compilar, cambiar y administrar la infraestructura de manera segura y repetible. Puedes definir opciones de configuración de recursos que puedes volver a usar y compartir y cuyas versiones puedes controlar. La IaC te permite especificar el estado deseado de tu infraestructura. Luego, puedes implementar la misma configuración varias veces para crear entornos de desarrollo, prueba y producción reproducibles.
La IaC te permite tratar el aprovisionamiento y la configuración de tu infraestructura de la misma manera que manejas el código de la aplicación. Puedes almacenar la lógica de configuración de aprovisionamiento en el control de origen y aprovechar las canalizaciones de integración continua y de implementación continua (CI/CD).
Beneficios de la IaC
Se recomienda usar la IaC a fin de configurar y administrar la infraestructura de tu aplicación para varios casos de uso comunes. Google administra sus sistemas con IaC y la establece como una práctica estándar de forma interna.
La IaC ofrece los siguientes beneficios:
Puedes definir la infraestructura según tus requisitos y volver a usar la misma configuración para crear varios entornos de forma coherente.
Puedes automatizar la creación y la administración de tus recursos en la nube, incluso para los entornos de implementación y prueba.
Puedes tratar los cambios en la infraestructura como tratas los cambios en las aplicaciones. Por ejemplo, puedes asegurarte de que los cambios en la configuración se revisen y validen de forma automática. Se recomienda administrar entornos de producción mediante procesos controlados por cambios mediante IaC.
Puedes mantener un historial de todos los cambios de configuración. Los cambios se pueden auditar y revertir.
Puedes tener una única fuente de información para tu infraestructura de nube.
Herramientas de IaC para Google Cloud
Google Cloud está estrechamente integrado a muchas herramientas de IaC. Elige una de las siguientes herramientas según tu caso de uso:
Terraform
En general, para configurar y administrar la infraestructura de Google Cloud con código, usa el proveedor de Terraform para Google Cloud.
HashiCorp Terraform es una herramienta de IaC que te permite definir recursos en la nube y de forma local en archivos de configuración legibles por humanos que volver a usar y compartir y cuyas versiones puedes controlar. Luego, puedes usar un flujo de trabajo coherente para aprovisionar y administrar toda la infraestructura durante su ciclo de vida. Para obtener más información, consulta
Descripción general de Terraform en Google Cloud.
Infrastructure Manager
Si buscas automatizar la implementación de la configuración de Terraform, usa el Administrador de infraestructura (Infra Manager).
Infra Manager automatiza la implementación y la administración de los recursos de infraestructura deGoogle Cloud con Terraform.
Infra Manager te permite implementar de manera programática enGoogle Cloud, lo que te permite usar este servicio en lugar de mantener una cadena de herramientas diferente para trabajar con Terraform en Google Cloud. Para obtener más información, consulta la descripción general de Infra Manager.
Terraform Cloud y Terraform Enterprise
Si necesitas una administración de cambios completa con Terraform en toda tu organización, usa Terraform Cloud o Terraform Enterprise.
Terraform Cloud es una aplicación de software como servicio (SaaS) que ejecuta Terraform en un entorno remoto y estable, y almacena el estado y los secretos de forma segura. Terraform Cloud también se integra en la CLI de Terraform y se conecta a sistemas de control de versión (VCS) comunes, como GitHub, GitLab, y Bitbucket. Cuando conectas un lugar de trabajo de Terraform Cloud a un repositorio de VCS, las confirmaciones y los cambios nuevos pueden activar de forma automática los planes de Terraform. Terraform Cloud también ofrece una API que te permite integrarla en flujos de trabajo existentes.
Terraform Enterprise te permite configurar una distribución autoalojada de Terraform Cloud. Ofrece límites de recursos personalizables y es ideal para organizaciones con requisitos estrictos de seguridad y cumplimiento.
Si deseas generar infraestructura con un lenguaje de programación de uso general en lugar de usar Hashicorp Configuration Language (HCL), usa Cloud Development Kit para Terraform (CDKTF).
CDKTF te permite configurar Terraform mediante un lenguaje de programación para definir y aprovisionar la infraestructura de Google Cloud y te permite usar tu cadena de herramientas existente para procesos como pruebas y administración de dependencias.
Pulumi
Pulumi es otra herramienta que puedes usar para aprovisionar infraestructura mediante lenguajes de programación. Puedes usar el proveedor de Google Cloud para Pulumi a fin de crear código de infraestructura con lenguajes de programación, como TypeScript, Python, Go, C#, Java o YAML.
Config Controller y Config Connector
Para administrar los recursos de Google Cloud a través de Kubernetes, usa el controlador de configuración y Config Connector.
El controlador de configuración y Config Connector te permiten configurar servicios y recursos deGoogle Cloud con las herramientas de Kubernetes. Puedes usar herramientas de GitOps, como el Sincronizador de configuración y las APIs de Kubernetes, y configurar y usar primitivas de ingeniería de plataformas, como webhooks y operadores de admisión.
Otra opción para administrar los recursos de Google Cloud a través de Kubernetes es usar Crossplane.
Crossplane conecta tu clúster de Kubernetes a recursos externos que no son de Kubernetes y permite que los equipos de plataforma compilen APIs de Kubernetes personalizadas para consumir esos recursos. Crossplane actúa como un controlador de Kubernetes para observar el estado de los recursos externos y proporcionar aplicación de estado.
Con Crossplane instalado en un clúster de Kubernetes, los usuarios solo se comunican con Kubernetes. Crossplane administra la comunicación con recursos externos, como Google Cloud. Si algo modifica o borra un recurso fuera de Kubernetes, Crossplane revierte el cambio o vuelve a crear el recurso borrado.
Si deseas automatizar el aprovisionamiento, la administración de configuración, la implementación de aplicaciones, la organización y otros procesos de TI, usa Ansible. Para obtener más información, consulta Ansible paraGoogle Cloud.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]