CDL
Deep Dive
Compute Engine, GKE, Cloud Run, Cloud Functions y App Engine. Cuándo usar cada opción y los trade-offs clave para el examen CDL.
Google Cloud ofrece cómputo en un espectro de control vs abstracción. Más control = más responsabilidad. Más abstracción = más velocidad de desarrollo.
Compute Engine (IaaS)
GKE (Contenedores)
Cloud Run (Serverless containers)
Cloud Functions (FaaS)
App Engine (PaaS)
VMs (instancias) en la infraestructura de Google. Control total: sistema operativo, red, almacenamiento. Equivalente a AWS EC2 o Azure VMs.
Machine types
General purpose (N2, E2), memory-optimized (M3), compute-optimized (C3), GPU/TPU. Ajusta vCPUs y RAM a la medida.
Persistent Disk
Almacenamiento en bloque adjunto a VMs. Standard HDD, Balanced SSD o Extreme SSD. Independiente del ciclo de vida de la VM.
Managed Instance Groups
Grupo de VMs idénticas con auto-scaling, auto-healing y load balancing. Para alta disponibilidad y escala.
Spot VMs
VMs con hasta 91% de descuento que GCP puede revocar con 30s de aviso. Ideal para cargas batch tolerantes a fallos.
GKE es Kubernetes totalmente gestionado. Google creó Kubernetes internamente (Borg) y lo donó como open source — GKE es su implementación más madura y optimizada.
Autopilot mode
Google gestiona todos los nodos y el plano de control. Pagas por pods, no por nodos. Máxima automatización.
Standard mode
Tú controlas los nodos (VMs). Más flexibilidad para workloads con requisitos especiales de hardware.
Auto-scaling
Horizontal Pod Autoscaler (pods) + Cluster Autoscaler (nodos). Escala automáticamente según carga.
Integración GCP
Integrado con Cloud Load Balancing, Cloud Storage, Artifact Registry, Cloud Monitoring y IAM.
Cuándo elegir GKE
Apps en contenedores con múltiples microservicios, necesitas orquestación avanzada (rolling updates, canary deployments, service mesh), o tu equipo ya usa Kubernetes on-premises.
Cloud Run ejecuta contenedores sin gestionar infraestructura. Sube tu imagen Docker, Cloud Run escala de 0 a N instancias automáticamente y pagas solo por las solicitudes procesadas.
Scale-to-zero
Si no hay tráfico, Cloud Run escala a 0. No pagas nada en reposo. Escala en milisegundos cuando llega una petición.
Cualquier lenguaje
Si corre en un contenedor, corre en Cloud Run: Python, Node.js, Go, Java, Ruby, Rust, .NET...
Cloud Run Jobs
Para tareas batch que se ejecutan hasta completarse (no HTTP). Procesar archivos, ETL, ML training.
Pricing
Pagas por solicitudes + CPU/memoria mientras procesa. 2M solicitudes/mes gratis. Muy económico para APIs con tráfico variable.
Cloud Functions (FaaS)
Ejecuta funciones individuales en respuesta a eventos: HTTP, Pub/Sub, Cloud Storage, Firestore. Serverless completo — cero gestión de infraestructura.
App Engine (PaaS)
Plataforma gestionada para aplicaciones web y APIs. Sube tu código, Google gestiona el runtime, escala y parches del SO.
| Servicio | Úsalo cuando | No úsalo cuando |
|---|---|---|
| Compute Engine | Necesitas control total del SO, tienes apps legacy que no se pueden contenerizar, requieres hardware específico (GPUs, TPUs) | Quieres olvidarte de parchear el OS o gestionar actualizaciones |
| GKE | Microservicios en contenedores, necesitas orquestación avanzada, ya usas Kubernetes on-premises | Tienes pocas apps simples — el overhead de K8s no compensa |
| Cloud Run | APIs y servicios HTTP en contenedores, tráfico variable o impredecible, quieres serverless pero con tu propia imagen | Necesitas ejecutar procesos de larga duración sin HTTP (usa Cloud Run Jobs) |
| Cloud Functions | Lógica simple event-driven (máx 60 min), responder a eventos de GCP (Storage, Pub/Sub), webhooks rápidos | Lógica compleja con múltiples dependencias — mejor Cloud Run |
| App Engine | Migrar apps web legacy a la nube rápidamente sin contenerizar, apps con tráfico predecible | Proyectos nuevos — Cloud Run ofrece más flexibilidad con menos limitaciones |
| Dimensión | VMs (Compute Engine) | Contenedores (GKE/Cloud Run) |
|---|---|---|
| Qué incluyen | OS completo + runtime + app. Todo el stack virtualizado. | Solo app + dependencias. Comparten el OS kernel del host. |
| Tamaño típico | GB (imagen incluye todo el SO) | MB (solo la app y sus librerías) |
| Tiempo de inicio | Minutos (boot completo del SO) | Segundos o menos (sin boot de SO) |
| Aislamiento | Hardware virtualizado — aislamiento fuerte entre VMs | Proceso aislado — comparten el kernel del host |
| Portabilidad | Depende del hipervisor y la imagen | Alta: corre igual en cualquier host con Docker/Kubernetes |
| Overhead de recursos | Alto: cada VM tiene su propio OS completo | Bajo: comparten el kernel, más apps por servidor |
| Cuándo usar | Apps legacy, SO específico, aislamiento de hardware necesario | Microservicios, CI/CD rápido, alta densidad de apps |
Una API (Application Programming Interface) es un contrato que define cómo dos sistemas de software pueden comunicarse entre sí. Las APIs permiten que diferentes aplicaciones compartan datos y funcionalidades sin revelar su implementación interna.
En la economía digital, las APIs son activos de negocio: permiten crear ecosistemas de partners, abrir nuevos canales de ingresos y acelerar la integración entre servicios.
Nuevos canales de venta
Una aerolínea expone una API de vuelos → Kayak, Google Flights la integran → más ventas sin más infraestructura.
Monetización directa
Google Maps API, Stripe, Twilio cobran por llamadas a sus APIs. Las APIs son el producto.
Ecosistema de partners
Las APIs permiten que terceros construyan sobre tu plataforma. El App Store es un ecosistema de APIs.
Integración interna
Microservicios se comunican por APIs internas. Equipos desarrollan de forma independiente y desacoplada.
Apigee API Management
Plataforma de Google Cloud para diseñar, desplegar, asegurar y escalar APIs. Actúa como la "puerta de entrada" gestionada a todos los servicios backend. Apigee es la solución líder de mercado en API management.
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una startup está construyendo una API REST que recibe tráfico impredecible — alta carga durante el día y casi nada por las noches. No tienen equipo de infraestructura y quieren desplegar contenedores Docker. ¿Qué servicio de GCP es más adecuado?