Qué es Cloud Run

Cloud Run es una plataforma de aplicaciones totalmente gestionada que te permite ejecutar tu código, función o contenedor en la infraestructura altamente escalable de Google.

En resumen, Cloud Run permite a los desarrolladores dedicar su tiempo a escribir código y muy poco tiempo a operar, configurar y escalar su servicio de Cloud Run. No tienes que crear un clúster ni gestionar la infraestructura para ser productivo con Cloud Run.

Servicios y trabajos

En Cloud Run, tu código puede ejecutarse como unservicio o un trabajo..

En la siguiente tabla se ofrece una visión general de las opciones que proporciona cada tipo de recurso de Cloud Run.

Recurso Descripción
Servicio Responde a las solicitudes HTTP enviadas a un endpoint único y estable mediante instancias sin estado que se autoescalan en función de varias métricas clave. También responde a eventos y funciones.
Tarea Ejecuta tareas paralelizadas que se ejecutan manualmente o según una programación y se completan.

Servicios de Cloud Run

Un servicio de Cloud Run te proporciona la infraestructura necesaria para ejecutar un endpoint HTTPS fiable. Es tu responsabilidad asegurarte de que tu código escucha en un puerto TCP y gestiona las solicitudes HTTP.

En el siguiente diagrama se muestra un servicio de Cloud Run que ejecuta varias instancias de contenedor para gestionar solicitudes web y eventos del cliente mediante un endpoint HTTPS.

Un servicio de Cloud Run ejecuta contenedores para atender solicitudes web y eventos

Un servicio estándar incluye las siguientes funciones:

Punto de conexión HTTPS único para cada servicio
Todos los servicios de Cloud Run tienen un punto de conexión HTTPS en un subdominio único del dominio *.s3nsrun.fr. También puedes configurar dominios personalizados. Cloud Run gestiona TLS por ti y admite WebSockets, HTTP/2 (de extremo a extremo) y gRPC (de extremo a extremo).
Autoescalado rápido basado en solicitudes
Cloud Run se escala rápidamente para gestionar todas las solicitudes entrantes o para gestionar el aumento de la utilización de la CPU fuera de las solicitudes si la configuración de facturación es facturación basada en instancias. Un servicio puede escalar rápidamente hasta mil instancias o incluso más si solicitas un aumento de la cuota. Si la demanda disminuye, Cloud Run elimina los contenedores inactivos. Si te preocupan los costes o la sobrecarga de los sistemas posteriores, puedes limitar el número máximo de instancias.
Escalado manual opcional
De forma predeterminada, Cloud Run escala automáticamente a más instancias para gestionar más tráfico, pero puedes anular este comportamiento mediante el escalado manual para controlar el comportamiento de escalado.
Gestión del tráfico integrada

Para reducir el riesgo de desplegar una nueva revisión, Cloud Run admite realizar un lanzamiento gradual, lo que incluye dirigir el tráfico entrante a la revisión más reciente, restaurar una revisión anterior y dividir el tráfico entre varias revisiones al mismo tiempo.

Por ejemplo, puedes empezar enviando el 1% de las solicitudes a una revisión nueva y aumentar ese porcentaje mientras monitorizas la telemetría.

Servicios públicos y privados

Se puede acceder a un servicio de Cloud Run desde Internet, o bien puedes restringir el acceso de las siguientes formas:

Puedes servir recursos almacenables en caché desde una ubicación perimetral más cercana a los clientes si pones una red de distribución de contenido (CDN), como Firebase Hosting y Cloud CDN, delante de un servicio de Cloud Run.

Escalado a cero e instancias mínimas

De forma predeterminada, si la facturación se establece en facturación basada en instancias, Cloud Run añade y elimina instancias automáticamente para gestionar todas las solicitudes entrantes o para gestionar el aumento del uso de la CPU fuera de las solicitudes.

Si no hay solicitudes entrantes a tu servicio, se eliminará incluso la última instancia restante. Este comportamiento se conoce como escalado a cero. Después, si no hay instancias activas cuando llega una solicitud, Cloud Run crea una nueva instancia. Esto aumenta el tiempo de respuesta de estas primeras solicitudes, en función de la rapidez con la que tu contenedor esté listo para gestionar solicitudes.

Para cambiar este comportamiento, utilice uno de los siguientes métodos:

Precios de pago por uso de los servicios

Escalar a cero es una opción atractiva por motivos económicos, ya que se te cobra por la CPU y la memoria asignadas a una instancia con una granularidad de 100 ms. Si no configuras instancias mínimas, no se te cobrará si no se usa tu servicio. Hay un nivel gratuito con muchas ventajas. Consulta los precios para obtener más información.

Puede habilitar dos ajustes de facturación:

Basada en solicitudes
Si una instancia no procesa solicitudes, no se te cobrará. Pagas una cuota por solicitud.
Basado en instancias
Se te cobra durante toda la vida útil de una instancia. No se cobra ninguna tarifa por solicitud.

Hay un nivel gratuito con muchas ventajas. Consulta los precios para obtener más información y los ajustes de facturación para saber cómo habilitar la facturación basada en solicitudes o en instancias de tu servicio.

Un sistema de archivos de contenedor desechable

Las instancias de Cloud Run son desechables. Cada contenedor tiene una superposición de sistema de archivos en memoria y de escritura, que no se conserva si el contenedor se cierra. Cloud Run determina cuándo dejar de enviar solicitudes a una instancia y cerrarla, por ejemplo, al reducir la escala.

Para recibir una advertencia cuando Cloud Run esté a punto de cerrar una instancia, tu aplicación puede interceptar la señal SIGTERM. Esto permite que tu código vacíe los búferes locales y conserve los datos locales en un almacén de datos externo.

Para conservar los archivos de forma permanente, integra Cloud Storage o monta un sistema de archivos de red (NFS).

Cuándo usar los servicios de Cloud Run

Los servicios de Cloud Run son ideales para el código que gestiona solicitudes, eventos o funciones. Estos son algunos ejemplos de casos prácticos:

Sitios y aplicaciones web
Crea tu aplicación web con tu pila favorita, accede a tu base de datos SQL y renderiza páginas HTML dinámicas.
APIs y microservicios
Puedes crear una API REST, una API GraphQL o microservicios privados que se comuniquen a través de HTTP o gRPC.

Tareas de Cloud Run

Si tu código realiza un trabajo y, a continuación, se detiene (por ejemplo, mediante una secuencia de comandos), puedes usar un trabajo de Cloud Run para ejecutarlo. Puedes ejecutar una tarea desde la línea de comandos con la CLI de Google Cloud, programando una tarea periódica

Los trabajos de matriz son una forma más rápida de ejecutar trabajos

Un trabajo puede iniciar una sola instancia para ejecutar tu código, que es una forma habitual de ejecutar una secuencia de comandos o una herramienta.

Sin embargo, también puedes usar un trabajo de matriz, que inicia muchas instancias idénticas e independientes en paralelo. Los trabajos de matriz son una forma más rápida de procesar trabajos que se pueden dividir en varias tareas independientes.

En el siguiente diagrama se muestra cómo un trabajo con siete tareas tarda más en ejecutarse de forma secuencial que el mismo trabajo cuando cuatro instancias pueden procesar tareas independientes en paralelo:

Las tareas de array son una forma más rápida de ejecutar tareas paralelizadas

Por ejemplo, si cambias el tamaño y recortas 1000 imágenes de Cloud Storage, procesarlas consecutivamente es más lento que procesarlas en paralelo con muchas instancias, con Cloud Run gestionando el escalado automático.

Cuándo usar tareas de Cloud Run

Los trabajos de Cloud Run son adecuados para ejecutar código que realiza una tarea y se cierra cuando esta finaliza. Aquí tienes algunos ejemplos:

Secuencia de comandos o herramienta
Ejecuta una secuencia de comandos para realizar migraciones de bases de datos u otras tareas operativas.
Tarea de matriz
Realiza un procesamiento altamente paralelizado de todos los archivos de un segmento de Cloud Storage.
Tarea programada
Crea y envía facturas a intervalos regulares, o guarda los resultados de una consulta de base de datos como XML y sube el archivo cada pocas horas.

Siguientes pasos