En el siguiente diagrama, se muestra el modelo de recursos de Cloud Run para los servicios:
En el diagrama, se muestra un proyecto de Google Cloud que contiene tres servicios de Cloud Run, Service A
, Service B
yService C
y cada uno tiene varias revisiones.
En el diagrama, Service A
recibe muchas solicitudes, lo que hace que se inicien y ejecuten varias instancias, cada una de las cuales ejecuta un solo contenedor. Ten en cuenta que Service B
no recibe solicitudes por el momento, por lo que aún no se inició ninguna instancia.
Service C
ejecuta varios contenedores por instancia dentro de cada revisión: ten en cuenta que solo el contenedor de entrada recibe la solicitud. Cada instancia con múltiples contenedores escala como una unidad independiente.
Servicios de Cloud Run
El servicio es el recurso principal de Cloud Run. Cada servicio se ubica en una región específica de Google Cloud. Para la redundancia y la conmutación por error, los servicios se replican de forma automática en varias zonas de la región en la que se encuentran. Un proyecto de Google Cloud determinado puede ejecutar muchos servicios en diferentes regiones.
Cada servicio expone un extremo único y ajusta de forma automática la escala de la infraestructura subyacente para controlar las solicitudes entrantes. Puedes implementar un servicio desde un contenedor, un repositorio o un código fuente.
Revisiones de Cloud Run
Cada implementación en un servicio conlleva la creación de una revisión. Una revisión consta de una o más imágenes de contenedor, junto con la configuración del entorno, como las variables de entorno, los límites de memoria o el valor de simultaneidad.
Las revisiones son inmutables: una vez que se crean, no se pueden modificar. Por ejemplo, cuando implementas una imagen de contenedor en un servicio de Cloud Run nuevo, se crea la primera revisión. Si luego implementas una imagen de contenedor diferente en ese mismo servicio, se crea una segunda revisión. Si después configuras una variable de entorno, se crea una tercera revisión, y así sucesivamente.
Las solicitudes se enrutan de forma automática a la revisión del servicio en buen estado más reciente lo antes posible.
Funciones de Cloud Run
Las funciones son un tipo de servicio que contiene fragmentos cortos de código para compilar y conectar servicios en la nube.
Con Cloud Run, puedes escribir funciones de un solo propósito vinculadas a eventos emitidos desde tus servicios y tu infraestructura de nube. La función se activa cuando ocurre un evento que se está supervisando. El código se ejecuta en un entorno completamente administrado, Debido a que las funciones se ejecutan como servicios de Cloud Run, no necesitas aprovisionar infraestructura ni preocuparte por administrar servidores.
Puedes escribir funciones de Cloud Run con varios lenguajes de programación admitidos. Puedes tomar la función y ejecutarla en cualquier entorno de ejecución estándar para uno de los lenguajes compatibles, lo que facilita la transferencia de la función y su prueba de forma local.
Eventos y activadores de funciones de Cloud Run
Los eventos de la nube representan todo lo que ocurre en tu entorno de nube. Pueden ser cambios en la información de la base de datos, la adición de archivos a un sistema de almacenamiento o la creación de una nueva instancia de máquina virtual.
Los eventos ocurren sin importar si decides responder a ellos o no. Las respuestas a los eventos se crean mediante un activador. Un activador es una declaración de tu interés en un evento o conjunto de eventos determinado. Cuando vinculas una función con un activador, puedes capturar eventos y reaccionar a ellos. Para obtener más información sobre la creación de activadores y cómo asociarlos a tus funciones, consulta Invoca con HTTPS y Activa con eventos.
Trabajos de Cloud Run
Cada trabajo se ubica en una región específica de Google Cloud y ejecuta uno o más contenedores hasta su finalización. Un trabajo consiste en una o varias tareas independientes que se ejecutan en paralelo en una ejecución de trabajo determinada. Cada tarea ejecuta un contenedor y es posible que vuelva a intentarlo.
Ejecuciones de trabajo de Cloud Run
Cuando se ejecuta un trabajo, se crea una ejecución de trabajo en la que se inician todas las tareas del trabajo. Todas las tareas de una ejecución de trabajo deben completarse correctamente para que la ejecución del trabajo se realice correctamente. Puedes establecer tiempos de espera para las tareas y especificar la cantidad de reintentos en caso de falla de la tarea. Si alguna tarea excede la cantidad máxima de reintentos, esa tarea se marca como con errores y el trabajo se marca como con errores. De forma predeterminada, las tareas se ejecutan en paralelo hasta un máximo de 100, pero puedes especificar un máximo inferior si alguno de tus recursos de copia de seguridad lo requiere.
Instancias de Cloud Run
Cada revisión que recibe solicitudes se escala de forma automática a la cantidad de instancias necesarias para manejar todas estas solicitudes. Ten en cuenta que el contenedor de Ingress dentro de una instancia puede recibir muchas solicitudes al mismo tiempo. Con la configuración de simultaneidad, puedes establecer la cantidad máxima de solicitudes que se pueden enviar en paralelo a una instancia determinada.