Cloud · GCP|13 min de lectura|

Arquitectura GCP para Empresas: Guía de Referencia

Google Cloud Platform tiene una curva de aprendizaje que engaña. Los primeros proyectos son fáciles de levantar, pero una arquitectura GCP que sea segura, multi-equipo, auditable y costeable requiere decisiones de diseño desde el día uno que son difíciles de cambiar después. Esta guía documenta las decisiones de arquitectura que tomamos en proyectos empresariales reales en GCP, con los patrones que escalan y los anti-patrones que generan deuda técnica.

Resource Hierarchy: la base de todo lo demás

El error más frecuente en empresas que empiezan en GCP: crear proyectos directamente bajo la organización sin planificar la jerarquía. Esto hace imposible aplicar políticas consistentes a múltiples equipos, gestionar billing por unidad de negocio, y delegar acceso sin comprometer seguridad.

text
Organización: empresa.com
├── Folder: produccion/
│   ├── Proyecto: prod-networking       # VPC Shared, Cloud DNS, NAT
│   ├── Proyecto: prod-data             # BigQuery, Cloud SQL
│   └── Proyecto: prod-apps            # GKE, Cloud Run, APIs
├── Folder: no-produccion/
│   ├── Proyecto: staging-apps
│   └── Proyecto: dev-sandbox
└── Folder: shared-services/
    ├── Proyecto: monitoring            # Cloud Monitoring centralizado
    └── Proyecto: security             # Security Command Center, KMS

La separación en proyectos distintos por función (networking, data, apps) crea límites naturales de blast radius. Un incidente de IAM en el proyecto de apps no compromete las claves KMS en security. El billing por folder permite reportar costos por unidad de negocio sin necesidad de tags manuales.

VPC Shared: el patrón de red correcto para empresas

Con VPC Shared, un proyecto host centraliza la red (subnets, firewall rules, Cloud NAT, VPC peering con on-premises) y los proyectos de servicio consumen esa red sin necesidad de gestionar recursos de red propios. Esto elimina la proliferación de VPCs aisladas, simplifica la conectividad y centraliza la auditoría de tráfico.

hcl
# Terraform — habilitar Shared VPC en el proyecto host
resource "google_compute_shared_vpc_host_project" "host" {
  project = var.host_project_id
}

resource "google_compute_shared_vpc_service_project" "apps" {
  host_project    = google_compute_shared_vpc_host_project.host.project
  service_project = var.apps_project_id
}

# Subnet con Private Google Access para que las VMs alcancen APIs de Google sin IP pública
resource "google_compute_subnetwork" "apps_subnet" {
  name                     = "apps-subnet"
  ip_cidr_range            = "10.10.0.0/24"
  region                   = "us-central1"
  network                  = google_compute_network.shared_vpc.id
  private_ip_google_access = true
}

GKE Autopilot vs. Standard: la decisión correcta por caso de uso

GKE Autopilot gestiona el plano de datos automáticamente — Google aprovisiona y escala los nodos, aplica parches de seguridad y optimiza el packing de pods. El precio es por CPU/memoria/almacenamiento consumido por los pods, no por nodos. GKE Standard da control completo sobre los node pools pero requiere gestión operacional del plano de datos.

  • Autopilot: recomendado para la mayoría de workloads empresariales. Elimina la operación de nodos, garantiza conformidad de seguridad automática, y la facturación granular por pod reduce el waste.
  • Standard: necesario cuando tienes requerimientos de hardware específicos (GPUs, local SSDs), necesitas DaemonSets personalizados, o tienes workloads con profiles de recursos muy variables que Autopilot no puede optimizar.
  • En la práctica: la mayoría de las empresas deberían empezar con Autopilot y migrar a Standard solo si encuentran limitaciones concretas.

Workload Identity: sin credenciales en el código

El anti-patrón más peligroso en GCP: crear service account keys JSON y distribuirlas como variables de entorno o secretos. Si esa key se filtra, el acceso comprometido no tiene expiración automática. Workload Identity permite que pods de GKE accedan a APIs de GCP con la identidad de un service account, sin credenciales estáticas.

yaml
# Kubernetes ServiceAccount con Workload Identity binding
apiVersion: v1
kind: ServiceAccount
metadata:
  name: api-service
  namespace: production
  annotations:
    iam.gke.io/gcp-service-account: api-service@prod-apps.iam.gserviceaccount.com
bash
# Vincular el KSA con el GSA
gcloud iam service-accounts add-iam-policy-binding \
  api-service@prod-apps.iam.gserviceaccount.com \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:prod-apps.svc.id.goog[production/api-service]"
Con Workload Identity, la credencial del pod expira automáticamente cada hora. No hay keys JSON que rotar manualmente, no hay riesgo de leakage en repositorios, y el acceso es auditable por pod en Cloud Audit Logs.

Cloud Run para APIs sin gestión de cluster

Para APIs HTTP stateless, Cloud Run es frecuentemente mejor que GKE. Sin gestión de nodos, sin preocupación por pod scheduling, con scale-to-zero automático y pricing por request. El tradeoff: menos control sobre el ambiente de ejecución y cold starts en servicios con tráfico esporádico.

yaml
# Cloud Run service con VPC connector y sin tráfico público directo
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: payment-api
  annotations:
    run.googleapis.com/ingress: internal-and-cloud-load-balancing
    run.googleapis.com/vpc-access-connector: projects/prod-networking/locations/us-central1/connectors/vpc-connector
    run.googleapis.com/vpc-access-egress: private-ranges-only
spec:
  template:
    spec:
      serviceAccountName: api-service@prod-apps.iam.gserviceaccount.com
      containers:
      - image: us-central1-docker.pkg.dev/prod-apps/api/payment-api:latest
        resources:
          limits:
            cpu: "2"
            memory: "1Gi"

Seguridad de red: VPC Service Controls

VPC Service Controls crea un perímetro de seguridad alrededor de APIs de GCP (BigQuery, Cloud Storage, Cloud SQL) que previene la exfiltración de datos incluso si un service account es comprometido. Las APIs dentro del perímetro solo son accesibles desde redes y proyectos explícitamente autorizados.

Para empresas que manejan datos regulados (PCI-DSS, HIPAA, datos financieros), VPC Service Controls no es opcional — es el control que previene que una brecha de IAM se convierta en una brecha de datos.

Preguntas frecuentes

¿GCP, AWS o Azure para una empresa nueva en cloud?
La respuesta honesta: depende de dónde está el talento y los workloads. GCP es la mejor opción si el equipo técnico tiene experiencia con herramientas Google (BigQuery, Kubernetes, datos), o si el core del negocio es análisis de datos/ML. AWS tiene el mayor ecosistema y el mayor pool de talento disponible. Azure es la opción natural si ya hay contratos Microsoft (Office 365, Active Directory). Para la mayoría de empresas en LATAM, AWS o GCP son equivalentes en capacidad — la diferencia está en el equipo y la estrategia de largo plazo.
¿Cómo controlo los costos de GCP en una empresa con múltiples proyectos?
Budgets y alertas por proyecto y folder son el control básico. Para visibilidad real: exportar Cloud Billing a BigQuery y construir dashboards en Looker Studio con costo por equipo, proyecto y servicio. Labels de costo obligatorios en todos los recursos (equipo, ambiente, aplicación) permiten hacer drill-down. Recommender de GCP identifica recursos sub-utilizados automáticamente.
¿Cómo migro de on-premises a GCP sin cortar los servicios existentes?
La estrategia estándar para migración sin downtime: Cloud VPN o Dedicated Interconnect para conectividad híbrida, migración por servicio usando el patrón Strangler Fig, y período de coexistencia donde el tráfico se divide gradualmente. Las herramientas de migración de GCP (Migrate to VMs, Database Migration Service) automatizan la parte más pesada.
¿Qué es Cloud Armor y cuándo necesito activarlo?
Cloud Armor es el WAF y DDoS protection de GCP, integrado con Cloud Load Balancing. Necesario para cualquier servicio expuesto a internet que maneje datos de usuarios o procese pagos. Proporciona protección OWASP Top 10, reglas adaptativas contra DDoS, y integración con reCAPTCHA Enterprise para protección contra bots.
¿GKE Autopilot tiene limitaciones relevantes para producción empresarial?
Las limitaciones más relevantes: no soporta DaemonSets (los reemplaza con nodos de sistema gestionados por Google), no permite customizar el kernel del nodo ni usar drivers de hardware específicos, y los pods deben definir resource requests explícitos. Para el 80% de workloads empresariales, estas no son restricciones — pero si tienes agentes de monitoring personalizados como DaemonSets, o workloads con GPUs, GKE Standard es necesario.

¿Tu empresa está evaluando GCP o necesita estructurar mejor su arquitectura cloud existente? Nuestro equipo puede hacer un assessment y proponer una arquitectura de referencia.

Habla con el equipo

Artículos relacionados

IQS

Equipo de Ingeniería — IQS

Ingenieros de software, cloud y DevOps con experiencia en proyectos empresariales.