En este documento, se proporciona una descripción general de la automatización de implementaciones.
Puedes configurar Cloud Deploy para que realice automáticamente tareas de y tareas relacionadas con el lanzamiento para una canalización de entrega determinada. Estas tareas incluyen la promoción de lanzamientos y el avance de fase.
Obtén más información sobre los recursos que se usan para y la automatización de lanzamientos 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 el siguiente lanzamiento y actividades de lanzamiento:
-
Puedes configurar Cloud Deploy para que promocione tu versión automáticamente, después de un lanzamiento exitoso a un destino. Por ejemplo, si tienes tres objetivos,
dev
,staging
yprod
, puedes configurar una automatización de modo que la versión se promocione aprod
, sin más interacción humana, después de una implementación correcta enstaging
. -
Puedes configurar Cloud Deploy para que avance una implementación de una fase a la siguiente, después de una implementación exitosa en el objetivo anterior. El avance de fase solo está disponible en los objetivos que usan una estrategia de implementación Canary.
-
Puedes configurar Cloud Deploy para reintentar automáticamente un lanzamiento con errores. Esto incluye reintentar el lanzamiento una cantidad específica de veces revertir automáticamente si falla esa cantidad de reintentos.
Consulta el artículo Reglas de automatización para obtener más información sobre estas acciones y cómo configurarlas.
¿Cómo funciona la automatización?
Cada automatización está vinculada a la canalización de publicación para la que se usa. No puedes comparten una automatización en varias canalizaciones de entrega.
A continuación, se describe el proceso general de configuración y ejecución de una automatización:
-
Esta automatización está asociada con una canalización de entrega.
Registras esa automatización con
gcloud deploy apply
.Esto crea la Recurso de automatización.
Puedes invocar la canalización de entrega asociada con esta automatización de la siguiente manera: crear una versión
El lanzamiento se realiza correctamente en, al menos, un objetivo o falla.
Si el lanzamiento se realiza correctamente y la automatización está
promoteReleaseRule
, haz lo siguiente: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 automáticamente al siguiente destino de la canalización progresión o a un objetivo específico, si se indica.
Si el lanzamiento se realiza correctamente, la automatización es
advanceRolloutRule
y el objetivo usa una estrategia de implementación Canary, ocurrirá lo siguiente:La ejecución espera por los eventos identificados fase fuente, si la hay.
La propiedad
sourcePhase
es opcional y, si no se especifican fases de origen, cada fase del lanzamiento avanza automáticamente. El el avance automático de las fases ocurre cuando la fase fuente seIN_PROGRESS
, sujeto await
vez.Si se configuró un tiempo de
wait
, la ejecución también espera ese tiempo.Cuando automatizas una implementación de versiones canaryy, usa este tiempo especificar la duración de cada fase de la versión canary.
El lanzamiento avanza automáticamente de esa fase de origen a la siguiente fase del lanzamiento.
Si hay una fase de fuente adicional, se trata de la misma manera, incluida la el mismo tiempo de espera, si corresponde.
Si el lanzamiento falla y hay una automatización con una regla
repairRollout
, haz lo siguiente:Se vuelve a intentar el lanzamiento después de
wait
vez, si corresponde.Si se configuran fases o trabajos específicos en la regla
repairRollout
, solo se reintentan esas fases o trabajos. La configuración predeterminada, si no se especifican trabajos ni fases, es volver a intentar todas las fases y los trabajos del lanzamiento.Como las reintentos son opcionales, si tu automatización no está configurada para reintentarlo, este paso no se realizará.
Si el primer reintento falla, la ejecución espera el tiempo
wait
configurado y, luego, vuelve a intentarlo.Los reintentos se repiten hasta que Cloud Deploy agote el reintento
attempts
.Si falla cada intento y se agotan los
attempts
, el lanzamiento falla.Durante los reintentos, el estado del lanzamiento es
IN_PROGRESS
hasta que el lanzamiento se realiza correctamente o falla después del intento de reintento final. La fase el estado esIN_PROGRESS
durante los reintentos, peroFAILED
después de cada lanzamiento falla.Si fallan todos los reintentos (o no se configura ninguno), se crea un nuevo lanzamiento revertir a la versión exitosa más reciente en el destino.
Recursos de automatización
Existen 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 y, además, incluye la siguiente información:- Es un puntero al objetivo o 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 publicación y un objetivo o varios con una o más reglas de automatización.Ejecución de automatización
AutomationRun
es una instancia de una automatización. Es un indicador de su recurso de automatización correspondiente, además de información sobre el lanzamiento la 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 detalles sobre cómo se debe realizar la automatización.
Obtén más información sobre las reglas de automatización.
Roles y permisos de Identity and Access Management necesarios
Además de los permisos, necesitas para ejecutar cualquier servicio de Cloud Deploy
de entrega continua y las tareas que se deben automatizar (como
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 realizar la operación automatizada. Consulta Configura reglas de automatización para los permisos específicos necesarios por regla de automatización.
Consulta Funciones y permisos de IAM Para obtener más información, incluye estos permisos.
Crea una automatización
Puedes crear una automatización, incluso con cualquiera de las reglas de automatización disponibles, configurando una automatización y, luego, creando el recurso de automatización con gcloud deploy apply
.
Consulta la siguiente sección (Configura la automatización) y Configura reglas de automatización.
Configuración de la automatización
Consulta el 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 de cada una de las reglas disponibles.
Consulta Usar reglas de automatización para las 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 aún se generan 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 aún se generan cuando la automatización, incluso si está suspendida. Puedes usar esto 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 lanzamientos y el avance del lanzamiento.
Más información sobre Cloud Deploy las reglas de automatización.
Más información sobre Cloud Deploy de los recursos de automatización.
Consulta la documentación del esquema del archivo de configuración para obtener detalles sobre los archivos de configuración de la automatización.