Opciones de Deployment y modelo de recursos

Opciones de implementación

Cloud Run ofrece varias opciones de implementación. Todas las opciones de implementación generan una imagen de contenedor que se ejecuta como un servicio o un trabajo de Cloud Run en la infraestructura completamente administrada y altamente escalable de Cloud Run.

Imágenes de contenedor

Cualquier imagen de contenedor que cumpla con el contrato de entorno de ejecución de contenedores de Cloud Run se puede implementar en un servicio o trabajo de Cloud Run.

Fuente

Para tu comodidad, Cloud Run te permite compilar e implementar el código fuente desde un solo comando. Cuando se implementan fuentes, Cloud Build transforma el código en una imagen de contenedor almacenada en Artifact Registry. Puedes implementar fuentes que incluyan un Dockerfile o que estén escritas en uno de los entornos de ejecución de lenguaje compatibles.

Las fuentes se pueden implementar en un servicio o un trabajo de Cloud Run.

Funciones

Puedes implementar funciones de un solo propósito que respondan a eventos emitidos desde tus servicios y tu infraestructura de nube. La función se activa cuando ocurre un evento que se está supervisando.

La implementación de funciones es un tipo especial de implementación de código fuente, en la que solo debes proporcionar el código de la función. Puedes escribir funciones de Cloud Run con varios lenguajes de programación admitidos.

Las funciones se implementan como servicios de Cloud Run.

Implementación de origen continua desde Git

Cloud Run te ayuda a configurar la implementación continua desde Git. Al igual que con las implementaciones de fuentes, puedes implementar fuentes que incluyan un Dockerfile o que estén escritas en uno de los entornos de ejecución de lenguaje compatibles.

La implementación continua desde Git está disponible para los servicios de Cloud Run y se puede configurar de forma manual en Cloud Build para los trabajos de Cloud Run.

Servicios de Cloud Run

El servicio es uno de los recursos principales 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.

En el siguiente diagrama, se muestra el modelo de recursos de Cloud Run para los servicios:

Servicios y revisiones de Cloud Run

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 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.

Revisiones del servicio 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, como las variables de entorno, los límites de memoria o el valor de simultaneidad de la solicitud.

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.

Instancias de servicio de Cloud Run

Cada revisión del servicio que recibe solicitudes se escala automáticamente a la cantidad de instancias necesarias para manejar todas estas solicitudes. Ten en cuenta que las instancias pueden recibir muchas solicitudes al mismo tiempo. Con la configuración de simultaneidad de solicitudes, puedes establecer la cantidad máxima de solicitudes que se pueden enviar en paralelo a cada instancia de una revisión.

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 consta de una o varias tareas independientes que se ejecutan en paralelo en una ejecución de trabajo determinada.

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 en la tarea 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.

Tareas de trabajo de Cloud Run

Cada ejecución de trabajo ejecuta varias tareas en paralelo. Cada tarea ejecuta una instancia y es posible que vuelva a intentarlo.