Cuando el objetivo es llevar aplicaciones a producción sin preocuparse por la infraestructura subyacente, los servicios serverless de Google Cloud Platform ofrecen un camino directo y eficiente. A lo largo de esta explicación se presentan las tres opciones principales —App Engine, Cloud Functions y Cloud Run— junto con sus casos de uso, lenguajes soportados y las ventajas que aportan al ciclo de integración y entrega continua.
¿Qué significa serverless y por qué importa en GCP?
El concepto de serverless [0:24] implica que no necesitas gestionar la infraestructura ni los componentes que hacen funcionar los servicios. El enfoque se centra exclusivamente en llevar tu código o tus artefactos y comenzar el despliegue de la aplicación. Dentro de Google Cloud Platform existen varios servicios que operan bajo este modelo, entre ellos BigQuery para data warehouse, Cloud Storage para almacenamiento de objetos, y las opciones de cómputo como App Engine, Cloud Functions y Cloud Run.
Esta separación de responsabilidades permite a los equipos de desarrollo concentrarse en la lógica de negocio mientras Google se encarga del aprovisionamiento, la escalabilidad y el mantenimiento de los servidores.
¿Cómo funciona App Engine para aplicaciones web y APIs?
App Engine opera a nivel aplicación [1:22] y se activa mediante consultas HTTP. Sus casos de uso más comunes incluyen:
- Migración de aplicaciones existentes: portales web en PHP, Java u otros lenguajes soportados se pueden trasladar de forma prácticamente transparente.
- Aplicaciones del lado del servidor: toda la lógica se ejecuta en la infraestructura administrada.
- Creación de APIs: otros servicios interactúan con las interfaces de programación alojadas en App Engine.
- Páginas web dinámicas: tanto para navegadores como para dispositivos móviles.
¿Qué lenguajes soporta App Engine?
La plataforma admite Node.js, Java, Python, Go, Ruby, PHP y C# [2:05]. Si ninguno de estos lenguajes se ajusta a tus necesidades, puedes traer tu propio entorno de ejecución y configurarlo según lo requieras.
¿Cuándo conviene usar Cloud Functions frente a Cloud Run?
Cloud Functions para eventos y microservicios ligeros
Cloud Functions opera a nivel función [2:25] y se dispara a partir de diferentes eventos: subida de objetos a Cloud Storage, integración con chatbots o peticiones HTTP. Los escenarios habituales son:
- Cargas de trabajo asíncronas: por ejemplo, al subir una imagen se ejecutan procesos como reducir su tamaño, agregar marca de agua o extraer metadatos.
- Microservicios de propósito único: un servicio que envía notificaciones por correo electrónico sin necesidad de infraestructura adicional.
- Webhooks: el servicio Dialogflow [3:20], que gestiona chatbots conversacionales, extiende sus capacidades llamando código remoto mediante webhooks y devolviendo resultados.
- Transformaciones ligeras de datos: modificar contenido de archivos o bases de datos, siempre que no sean procesos que lleven horas o días.
- Analítica, IoT y backend para microservicios.
Los orígenes de datos que pueden disparar Cloud Functions incluyen Pub/Sub, Google Cloud Storage y Firebase [4:17] con sus distintos componentes.
Cloud Run para contenedores sin gestión de servidores
Cloud Run [4:28] permite crear contenedores y pasarlos a producción en cuestión de segundos. A diferencia de App Engine o Cloud Functions, aquí no importa el lenguaje ni las bibliotecas: todo vive dentro de la imagen del contenedor. Se paga exclusivamente por el uso y la ejecución ocurre sobre infraestructura administrada por Google.
Cloud Run ofrece flexibilidad notable porque corre en todas partes [5:06]:
- En los servicios administrados de GCP, donde solo implementas tu carga sin preocuparte por la infraestructura.
- Dentro de tu propio clúster de Google Kubernetes Engine (GKE), coexistiendo con cargas que ya tengas desplegadas.
- En centros de datos propios u on premise utilizando KNative [5:40], lo que permite portabilidad entre diferentes proveedores de nube.
Esta capacidad se apoya en Anthos, que habilita la ejecución uniforme de cargas en múltiples plataformas y proveedores de servicio.
Dominar estas opciones serverless es fundamental para diseñar pipelines de Continuous Integration y Continuous Delivery sólidos en GCP. ¿Ya has probado alguno de estos servicios en tus proyectos? Comparte tu experiencia en los comentarios.