Este documento es una descripción general de la automatización de implementaciones.
Puedes configurar Cloud Deploy para que realice automáticamente tareas relacionadas con la versión y con el lanzamiento en una canalización de entrega determinada. Estas tareas incluyen la promoción del lanzamiento y el avance de fases.
Obtén más información sobre los recursos que se usan para automatizar versiones en Cloud Deploy.
Obtén más información para configurar las reglas que definen cómo funcionan estas automatizaciones.
Acciones que puedes automatizar
En Cloud Deploy, puedes automatizar las siguientes actividades de lanzamiento y lanzamiento:
Promover una versión
Puedes configurar Cloud Deploy para que promueva tu versión automáticamente, después de un lanzamiento exitoso 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 realice una implementación exitosa enstaging
.Adelantar un lanzamiento
Puedes configurar Cloud Deploy para que un lanzamiento avance de una fase a la siguiente, después de un lanzamiento exitoso al destino anterior. El avance de fase solo está disponible en objetivos que usan una estrategia de implementación de versiones canary.
¿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 entre varias canalizaciones de entrega.
A continuación, se detalla el proceso general de configuración y ejecución de una automatización:
Configura una instancia de automatización
Esta automatización está asociada con una canalización de entrega.
Registras esa automatización con
gcloud deploy apply
.Esto crea el recurso de automatización.
Para invocar la canalización de entrega asociada con esta automatización, crea una versión.
El lanzamiento se realizó correctamente en al menos un destino.
En el destino para el que está configurada esta automatización...
Si la automatización es
promoteReleaseRule
:La ejecución espera a que el lanzamiento se realice correctamente en el destino de origen. El destino de origen es el
selector.targets
configurado para la automatización, no enAutomationRule
.Si se configuró un tiempo de
wait
, la ejecución también espera ese tiempo.La versión asciende de forma automática al siguiente destino en el progreso de la canalización o a un destino específico, si se indica.
Si la automatización es
advanceRolloutRule
y el destino usa una estrategia de implementación de versiones canary, ocurre lo siguiente:La ejecución espera la fase de origen identificada, si es que la hay.
La propiedad
sourcePhase
es opcional y, si no se especifican fases de origen, cada fase del lanzamiento avanza automáticamente. El avance automático de la fase se produce cuando la fase de origen esIN_PROGRESS
, sujeta a un tiempowait
.Si se configuró un tiempo de
wait
, la ejecución también espera ese tiempo.Cuando automatizas una implementación de versiones canary, usa este tiempo de espera para especificar la duración de cada fase de las versiones canary.
El lanzamiento avanza de forma automática de esa fase de origen a la siguiente fase del lanzamiento.
Si hay una fase de fuente adicional, se trata de la misma manera, incluido el mismo tiempo de espera, si corresponde.
Recursos de automatización
Hay dos recursos de Cloud Deploy que son específicamente para la automatización:
Automatización
Un
Automation
es un recurso secundario de una canalización de entrega y, además, incluye la siguiente información:- Un puntero a los objetivos para los que se usa la automatización
- Es la regla o las reglas que rigen lo que hace la automatización y cómo lo hace.
La configuración del recurso de automatización se describe en el documento Acerca del recurso de automatización.
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 más destinos con una o más reglas de automatización.Ejecución de automatización
El
AutomationRun
es una instancia de una automatización. Es un puntero a su recurso de automatización correspondiente, además de información sobre el lanzamiento que lo generó y otros metadatos.La ejecución de la automatización se crea cuando se activa una automatización.
Obté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 realizar automáticamente en tu canalización de entrega, así como los detalles sobre cómo se realizará la automatización.
Obtén más información sobre las reglas de automatización.
Se requieren roles y permisos de Identity and Access Management
Además de los permisos que necesitas para ejecutar cualquier canalización de entrega de Cloud Deploy y realizar las tareas que se deben automatizar (como avanzar con el lanzamiento), se necesitan varios permisos para realizar ciertas 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 realizar la operación automatizada. Consulta Configura reglas de automatización para conocer los permisos específicos necesarios por regla de automatización.
Consulta Funciones y permisos de IAM Para obtener más información, incluida qué funciones de Cloud Deploy incluyen estos permisos.
Crea una automatización
Puedes crear una automatización, incluido el uso de cualquiera de las reglas de automatización disponibles, si configuras una automatización y, luego, creas el recurso de automatización con gcloud deploy apply
.
Consulta la siguiente sección (Cómo configurar la automatización) y Cómo configurar las reglas de automatización.
Configuración de la automatización
Consulta Esquema del archivo de configuración para obtener detalles sobre cómo configurar el recurso Automation
.
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.
Consulta Usa reglas de automatización para obtener descripciones de cada una de las reglas disponibles.
Suspende una automatización
Puedes suspender un recurso existente sin borrarlo. Esto puede ser útil para probar una automatización sin afectar la canalización de entrega. Cuando suspendes una automatización, esta no se ejecuta, pero se siguen generando los registros de la plataforma.
En la configuración de
Automation
, actualiza la propiedadsuspended
atrue
.Ejecuta
gcloud deploy apply
en ese archivo de configuración.Los registros de plataforma se generan cuando se crea una instancia de la automatización, incluso si está suspendida. Puedes usarlo para probar y depurar la automatización sin afectar la canalización de entrega.
¿Qué sigue?
Prueba la guía de inicio rápido: Automatiza la creación de versiones y el avance del lanzamiento.
Obtén más información sobre las reglas de automatización de Cloud Deploy.
Obtén más información sobre los recursos de automatización de Cloud Deploy.
Consulta la documentación del esquema del archivo de configuración para obtener detalles sobre los archivos de configuración de la automatización.