En este documento se ofrece una descripción general de la automatización de implementaciones.
Puede configurar Cloud Deploy para que realice automáticamente tareas relacionadas con las versiones y los lanzamientos de un flujo de trabajo de entrega determinado. Entre estas tareas se incluyen la promoción de la versión y el avance de fase.
Más información sobre los recursos que se usan para automatizar las versiones en Cloud Deploy.
Más información sobre cómo configurar las reglas que definen el funcionamiento de estas automatizaciones.
Acciones que puedes automatizar
En Cloud Deploy, puedes automatizar las siguientes actividades de lanzamiento e implementación:
Promocionar una versión automáticamente
Puedes configurar Cloud Deploy para que promocione tu lanzamiento automáticamente cuando se haya implementado correctamente en un destino. Por ejemplo, si tienes tres destinos (
dev
,staging
yprod
), puedes configurar una automatización para que la versión se promocione aprod
, sin más interacción humana, cuando se haya implementado correctamente enstaging
. También puedes especificar un tiempo de espera.Promocionar un lanzamiento de forma programada
Puedes configurar Cloud Deploy para que promocione tu lanzamiento según una programación cron.
-
Puedes configurar Cloud Deploy para que avance un lanzamiento de una fase a la siguiente después de que el lanzamiento se haya completado correctamente en el destino anterior. El avance de fase solo está disponible en los destinos que usan una estrategia de despliegue canary.
-
Puedes configurar Cloud Deploy para que vuelva a intentar automáticamente un lanzamiento que haya fallado. Esto incluye volver a intentar el lanzamiento un número de veces especificado y volver automáticamente a la versión anterior si ese número de reintentos falla.
Para obtener más información sobre estas acciones y cómo configurarlas, consulta Reglas de automatización.
¿Cómo funciona la automatización?
Cada automatización está vinculada a la canalización de entrega para la que se usa. No puedes compartir una automatización en varios flujos de procesamiento de entrega.
A continuación se describe el proceso general para configurar y ejecutar una automatización:
-
Esta automatización está asociada a una canalización de entrega.
Para registrar esa automatización, usa
gcloud deploy apply
.De esta forma, se crea el recurso de automatización.
Para invocar la canalización de lanzamiento asociada a esta automatización, crea un lanzamiento.
La implementación se completa correctamente en al menos un destino o falla.
Si el lanzamiento se completa correctamente y la automatización está
promoteReleaseRule
:La ejecución espera a que la implementación se realice correctamente en el destino de origen. El objetivo de origen es el
selector.targets
configurado para la automatización, no elAutomationRule
.Si se ha configurado una hora
wait
, la ejecución también espera hasta esa hora.La versión se asciende automáticamente al siguiente destino de la progresión de la canalización o a un destino específico, si se indica.
Si la implementación se realiza correctamente, la automatización está
advanceRolloutRule
y el destino usa una estrategia de implementación canary:La ejecución espera la fase de origen identificada, si la hay.
La propiedad
sourcePhase
es opcional. Si no se especifican fases de origen, cada fase del lanzamiento se completará automáticamente. El avance automático de fase se produce cuando la fase de origen esIN_PROGRESS
, sujeta a un tiempo dewait
.Si se ha configurado una hora
wait
, la ejecución también espera hasta esa hora.Cuando automatizas una implementación canary, usas este tiempo de espera para especificar la duración de cada fase canary.
El lanzamiento se avanza automáticamente de esa fase de origen a la siguiente.
Si hay una fase de origen adicional, se trata de la misma forma, incluido el mismo tiempo de espera, si procede.
Si la implementación falla y hay una automatización con una regla
repairRollout
:Se vuelve a intentar la implementación después del tiempo
wait
configurado, si lo hay.Si se configuran fases o tareas específicas en esta regla
repairRollout
, solo se volverán a intentar esas fases o tareas. Si no se especifican trabajos ni fases, se volverán a intentar todas las fases y los trabajos de la implementación.Como los reintentos son opcionales, si tu automatización no está configurada para reintentar, este paso no se llevará a cabo.
Si el primer reintento falla, la ejecución espera el tiempo
wait
configurado y vuelve a intentarlo.Los reintentos se repiten hasta que Cloud Deploy agota el
attempts
de reintentos.Si cada intento falla y se agotan los
attempts
, la implementación falla.Durante los reintentos, el estado de la implementación es
IN_PROGRESS
hasta que la implementación se realiza correctamente o falla tras el último intento. El estado de la fase esIN_PROGRESS
durante los reintentos, peroFAILED
después de cada error de lanzamiento.Si se produce un error en todos los reintentos (o no se ha configurado ninguno), se crea un nuevo lanzamiento para revertir a la versión correcta más reciente en el destino.
Recursos de automatización
Hay dos recursos de Cloud Deploy que se usan específicamente para la automatización:
Automatización
Un
Automation
es un recurso secundario de una canalización de entrega e incluye la siguiente información:- Un puntero al objetivo u objetivos para los que se usa la automatización
- Las reglas que rigen lo que hace la automatización y cómo lo hace
La configuración del recurso Automation se describe en el documento Acerca del recurso Automation.
Cuando ejecutas
gcloud deploy apply
en un archivo que incluye una configuración de automatización (kind: Automation
), Cloud Deploy crea un recurso de automatización, que asocia una canalización de entrega y uno o varios destinos con una o varias reglas de automatización.Ejecución de automatización
El
AutomationRun
es una instancia de una automatización. Es un puntero a su recurso Automation correspondiente, además de información sobre el lanzamiento que lo ha generado y otros metadatos.La ejecución de la automatización se crea cuando se activa una automatización.
Más información sobre los recursos de automatización
Reglas de automatización
Una regla de automatización define una acción que se puede llevar a cabo automáticamente en tu canal de distribución, así como detalles sobre cómo se debe realizar la automatización.
Más información sobre las reglas de automatización
Roles y permisos de Gestión de Identidades y Accesos necesarios
Además de los permisos que necesitas para ejecutar cualquier canal de distribución de Cloud Deploy y para realizar las tareas que se van a automatizar (como avanzar en un lanzamiento), hay varios permisos que se necesitan para realizar determinadas operaciones en los recursos Automation
y AutomationRun
:
clouddeploy.automations.create
clouddeploy.automations.delete
clouddeploy.automations.get
clouddeploy.automations.list
clouddeploy.automations.update
clouddeploy.automationRuns.cancel
clouddeploy.automationRuns.get
clouddeploy.automationRuns.list
Además de estos permisos, cada regla de automatización puede requerir permisos adicionales para llevar a cabo la operación automatizada. Consulta los permisos específicos necesarios para cada regla de automatización.
Consulta Roles y permisos de gestión de identidades y accesos para obtener más información, incluidos los roles de Cloud Deploy que incluyen estos permisos.
Crear una automatización
Puedes crear una automatización, incluidas las reglas de automatización disponibles,
configurando una automatización y, a continuación, creando el recurso de automatización mediante
gcloud deploy apply
Consulta la sección siguiente (Configurar la automatización) y Configurar reglas de automatización.
Configurar la automatización
Para obtener más información sobre cómo configurar el recurso Automation
, consulta el esquema del archivo de configuración.
Configuración de reglas de automatización
Además de esta configuración de automatización, debes especificar reglas de automatización. La configuración es diferente para cada una de las reglas disponibles.
Consulte las descripciones de cada una de las reglas disponibles en el artículo Usar reglas de automatización.
Suspender una automatización
Puedes suspender un recurso sin eliminarlo. Esto puede ser útil para probar una automatización sin que afecte al flujo de procesamiento de la entrega. Cuando suspendes una automatización, esta no se ejecuta, pero se siguen generando registros de la plataforma.
En la configuración
Automation
, cambia la propiedadsuspended
portrue
.Ejecuta
gcloud deploy apply
en ese archivo de configuración.Los registros de la plataforma se siguen generando cuando se crea una instancia de la automatización, aunque esté suspendida. Puedes usarlo para probar y depurar la automatización sin que afecte a la canalización de entrega.
Siguientes pasos
Consulta la guía de inicio rápido para automatizar la creación de versiones y el avance de la publicación.
Más información sobre las reglas de automatización de Cloud Deploy
Consulta más información sobre los recursos de automatización de Cloud Deploy.
Para obtener más información sobre los archivos de configuración de la automatización, consulta la documentación del esquema del archivo de configuración.