Volver al portafolio
EN PT ES
Caso de estudio · Infraestructura como código

GKE de nivel productivo con Terraform y una Shared VPC

Llevar un parque de GKE aprovisionado a mano al 100% de infraestructura como código: una Shared VPC, clusters privados, un despliegue en 8 fases y las protecciones que detienen un destroy accidental. Además, las landing zones de código abierto que construí para GCP, AWS y Azure con el mismo patrón.

Por Vitor Schiavo Actualizado en octubre de 2026 ~8 min de lectura
Solución de un vistazoSeparar la red compartida de las cargas de trabajo por entorno.
Módulos de TerraformVersionar infraestructura reutilizable
Shared VPCDefinir subnets y límites
Entornos de GKEAprovisionar cargas de trabajo aisladas

Módulos reutilizables de Terraform aprovisionan los límites de red y los recursos de GKE de forma consistente.

Contribución de un vistazo

Mi responsabilidad
Terraform modular, límites de red y un despliegue por fases de la plataforma de GKE.
Alcance
Shared VPC e infraestructura de entornos aislados; los ejemplos públicos de landing zone son código reutilizable aparte.
Colaboración y límites
Diseñé e implementé la base de infraestructura descrita aquí; los ejemplos públicos generalizan el patrón en lugar de exponer la configuración del empleador.
Resultado
Aprovisionamiento de entornos reutilizable y recursos de red compartida protegidos, entregados mediante una transición de propiedad por fases.

Imagina un parque de GKE y la red que lo sostiene, todo aprovisionado a mano. Sin infraestructura como código, sin una historia consistente entre entornos y sin nada que impida que un terraform destroy accidental elimine la red compartida. Este es un relato de cómo reconstruí eso en una Shared VPC, clusters privados, una base de código modular de Terraform y un despliegue en ocho fases que nunca dejó el sistema a medio gestionar.

Todo lo que hay aquí es la técnica, sin nombres internos ni detalles específicos. Al final enlazo las landing zones de código abierto que construí para GCP, AWS y Azure, para que puedas leer el código real detrás del mismo patrón.

El punto de partida

Los clusters y la red se crearon a través de la consola y un archivo de Terraform monolítico, copiado y pegado. No había ningún módulo reutilizable, ninguna estrategia por entorno ni prevent_destroy en la red. En otras palabras, el único recurso que no puedes recrear a la ligera, la VPC, era lo menos protegido del proyecto.

La arquitectura objetivo

El despliegue, en ocho fases

El objetivo de dividirlo en fases era no tener nunca una ventana en la que la red estuviera a medio gestionar. Cada fase dejó el sistema en un estado funcional.

La protección que más importa

Un bloque lifecycle prevent_destroy en la VPC, las subnets y Cloud NAT hace que un terraform destroy accidental de la red falle en lugar de tener éxito. La red es lo único que no puedes recrear a la ligera, así que es lo único que debería negarse a ser eliminado. Cuesta tres líneas y ha evitado caídas reales.

100%infraestructura como código
4clusters de GKE, un pipeline
0IPs públicas de nodos
3landing zones de código abierto

Resultados

El mismo patrón, como código abierto

El relato anterior se mantiene genérico, así que aquí está el mismo patrón como código que sí puedes leer. Construí una landing zone para cada nube principal: una configuración de Terraform más GitHub Actions para Kubernetes multientorno, con los valores de seguridad por defecto ya integrados (estado remoto, sin secrets en el repositorio, IAM de mínimo privilegio, un aviso de seguridad destacado en cada README).

Lo que le diría a alguien que empieza esto

Decisiones y próximos pasos

Una mirada retrospectiva al enfoque y sus límites. La próxima mejora es una propuesta, no un resultado entregado.

Alternativa y justificación

Un stack monolítico es rápido de empezar; separar la red compartida de las cargas de trabajo por entorno reduce el acoplamiento destructivo.

Contrapartida

Los módulos añaden interfaces y límites de estado que requieren propiedad, versionado y migración segura.

Lo que mejoraría a continuación

Próxima mejora: automatizar las verificaciones de drift y validar la recuperación desde cada límite de estado de la infraestructura.