¿Qué es Cloud Run y Cómo desplegar contenedores Serverless?

Abraham Berrospi Casano
6 min readJun 24, 2024

--

La fusión de la computación sin servidor y la contenedorización da lugar a los contenedores sin servidor, una solución que habilita a los desarrolladores a desplegar aplicaciones en contenedores sin la necesidad de administrar la infraestructura que los sustenta. Este método agiliza tanto la implementación como la escalabilidad, ya que los desarrolladores pueden concentrarse exclusivamente en su código, despreocupándose así de aspectos como el aprovisionamiento de servidores o la orquestación de contenedores.

Fuente: octopus.com

¿Qué es GCP Cloud Run?

Google Cloud Platform tiene el servicio Cloud Run, diseñado para facilitar la ejecución de contenedores sin servidor alojados en el Container Registry.

Cloud Run es una plataforma sin servidor totalmente administrada que permite ejecutar contenedores controlados por HTTP en Google Cloud. Al ser sin servidor, Cloud Run se encarga automáticamente de las instancias del motor informático que ejecutan su contenedor, lo que le permite enfocarse en la lógica principal de su aplicación.

Cloud Run aprovecha la portabilidad de los contenedores para permitirle implementar todas sus aplicaciones en contenedores, independientemente de la pila de tecnología o el lenguaje de programación utilizados.

Para desplegar su aplicación dentro de una imagen de contenedor en Cloud Run, debe crear un servicio con una imagen de contenedor especificada desde Container Registry mediante la CLI de gcloud o la consola en la nube.

Aunque Cloud Run ofrece numerosas funciones, a continuación se destacan dos de ellas que pueden resultarle interesantes:

Escalado automático

Google Cloud Run ofrece escalado automático horizontal para manejar picos de tráfico, ajustando las instancias según la demanda y minimizando costos al reducirlas a cero después de 15 minutos sin tráfico HTTP. Los usuarios pueden especificar límites mínimos y máximos de instancias.

Gestión del tráfico

Cloud Run permite manejar fácilmente las implementaciones y revisiones de código. Cada nueva implementación genera automáticamente una revisión inmutable, lo que facilita la dirección del tráfico a versiones anteriores, la reversión o la división del tráfico simultáneamente entre diferentes versiones del código para una implementación progresiva. Esta opción es especialmente útil para mitigar el riesgo de implementar nuevas versiones, ya que permite enviar un porcentaje bajo de tráfico a la nueva versión y detener la implementación si se detecta una tasa de error más alta.

Registro y monitoreo

Cloud Run se integra con los servicios de la suite Operations de Google Cloud para proporcionar métricas de rendimiento, registros y comprobaciones de tiempo de actividad. Este tutorial muestra cómo implementar contenedores sin servidor en Cloud Run, descargando una aplicación Python de muestra, creando un Dockerfile, enviando la imagen al Container Registry y creando un servicio en Cloud Run con la imagen enviada

¿Cómo funciona Cloud Run en GCP?

Existen dos maneras de implementar código en Cloud Run.

Cloud Run services

Esta opción permite aprovechar el código que responde a una solicitud web o un evento. Algunos ejemplos de uso son:

  • Sitios web y aplicaciones web: puedes crear una aplicación con tus herramientas habituales, acceder a una base de datos SQL y generar páginas HTML dinámicas.
  • API y microservicios: con Cloud Run Services, es posible diseñar una API RESTful, gRPC o GraphQL, las cuales pueden ser públicas o privadas.
  • Procesamiento de datos en streaming: puedes recibir mensajes de Cloud Pub/Sub, solicitudes de Cloud Tasks y eventos.

Cloud Run Services se encarga de gestionar todas las solicitudes y eventos recibidos a través de instancias de contenedor. Tu única responsabilidad es asegurarte de que el código cumpla con los requisitos del puerto TCP y realice las tareas necesarias.

💡Nota importante: cada servicio de Cloud Run incluye un punto final HTTPS y un subdominio único. Si lo deseas, también puedes crear tus propios dominios personalizados.

Cloud Run Jobs

Esta función permite que el código ejecute una tarea y se detenga una vez completada, como realizar una migración de base de datos o generar facturas.

Una ventaja importante de Cloud Run Jobs es la capacidad de realizar múltiples tareas simultáneamente, conocidas como tareas Array. La idea es dividir un trabajo en diferentes tareas independientes y ejecutar varias instancias de contenedor en paralelo, ahorrando tiempo en la ejecución del código.

Ambas funciones operan en el mismo entorno de Cloud Run, lo que permite utilizar las mismas integraciones. Si necesita una base de datos, una opción de almacenamiento o una herramienta de administración específicas, puede utilizar las herramientas de Google Cloud Platform, como Pub/Sub, Cloud SQL, Secret Manager, entre otras.

Diferencias entre service y jobs:

Casos de uso

Cloud Run ha ganado amplia aceptación en diversas industrias. Entre los casos de uso más frecuentes se encuentran:

Servicios web: administración back-office

La administración back-office requiere el manejo de documentos, hojas de cálculo y la ejecución de una aplicación web provista por el proveedor. Al hospedar la aplicación web interna en contenedores en Cloud Run, esta se mantiene siempre lista para su uso y los usuarios solo pagan por el tiempo de uso efectivo.

Procesamiento de datos

Los usuarios pueden desarrollar aplicaciones de procesamiento de datos en Cloud Run que ayuden a transformar datos livianos a medida que llegan, convirtiéndolos en datos estructurados. Estas transformaciones pueden activarse desde fuentes de Google Cloud. Cuando se crea un archivo .csv, se dispara un evento que se envía al servicio Google Cloud Run. Una vez recibido el evento, los datos se extraen, estructuran y almacenan en una tabla de BigQuery.

Sitios web

Los usuarios pueden crear sus sitios web empleando tecnologías maduras como nginx, ExpressJS y django, accediendo a su base de datos SQL en Cloud SQL y generando páginas HTML dinámicas.

Backends de API REST

Las aplicaciones móviles modernas suelen depender de backends RESTful para proporcionar vistas actualizadas de los datos de la aplicación y separar el trabajo de los equipos de desarrollo de frontend y backend. Los servicios de API que se ejecutan en Cloud Run permiten a los desarrolladores almacenar datos de manera confiable en bases de datos administradas. Al iniciar sesión en Cloud Run, los usuarios obtienen acceso a los datos de recursos de la aplicación almacenados en Cloud Databases.

Es seguro decir que los mejores patrones de casos de uso de Cloud Run consistirían en:

  • Desarrolladores que priorizan los contenedores y su orquestación como plataformas predilectas y buscan tecnología sin servidor que se adapte mejor a los contenedores.
  • Aplicaciones que necesitan un servidor HTTP como componente de su arquitectura y valoran la sencillez en las pruebas que esto implica.
  • Equipos que confían en el despliegue continuo y desean un mayor control y visibilidad en sus procesos.
  • Quienes se sienten atraídos por los sistemas sin servidor, pero no quedan satisfechos con las características y funcionalidades de las ofertas sin servidor de otros proveedores de nube.
  • Aquellos que encuentran que este enfoque sin servidor resulta más económico que el uso de contenedores en despliegues no sin servidor, donde el exceso de recursos suele ser la norma.

Precios de Cloud Run

Google Cloud ofrece uno de los mejores sistemas de precios en el mercado de servicios en la nube, y esto también se aplica a Cloud Run. Esta plataforma altamente escalable permite a los usuarios pagar solo por los recursos que utilizan, ya que se puede reducir a cero cuando no recibe solicitudes.

Cloud Run le cobra sólo por los recursos que utiliza, redondeados a los 100 milisegundos más cercanos. Para calcular los costos exactos de sus casos de uso, Google Cloud ofrece una calculadora de costos.

Además, ¡Google proporciona un plan “Always Free” que incluye 180.000 vCPU-segundos de CPU, 180,000 GiB-segundos de memoria y 2 millones de solicitudes mensuales!.

Fuente: https://cloud.google.com/run/pricing

Referencias

Gracias por leerme,

¿Quieres seguir aprendiendo y conectarte con nuestra comunidad? Te invitamos a unirte a nuestras redes sociales. ¡Síguenos en Instagram y LinkedIn para estar al tanto de las últimas noticias, tutoriales y recursos sobre tecnología y aprendizaje automático!

Datapath

Acelerando el talento LATAM en data, cloud, analytics e inteligencia artificial

Síguenos en nuestras redes:

🔴 DISCORD: https://go.datapath.ai/Discord_IALatam

⚪️ Linkedin: https://go.datapath.ai/Linkedin

🟣 Instagram: https://go.datapath.ai/Instagram

🔵 Facebook: https://go.datapath.ai/Facebook

⚫️ Tiktok: https://go.datapath.ai/Tiktok

--

--