Automatización de su implementación

En este documento, se brinda una descripción general de la automatización de implementaciones.

Puedes configurar Cloud Deploy para que realice de forma automática tareas relacionadas con el lanzamiento y el lanzamiento en una canalización de entrega determinada. Estas tareas incluyen la promoción de lanzamiento y el avance en 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 el funcionamiento de estas automatizaciones.

Acciones que puedes automatizar

En Cloud Deploy, puedes automatizar las siguientes actividades de lanzamiento y lanzamiento:

  • Promueve un lanzamiento

    Puedes configurar Cloud Deploy para promover tu versión de forma automática, luego de un lanzamiento exitoso en un destino. Por ejemplo, si tienes tres destinos, dev, staging y prod, puedes configurar una automatización de modo que la versión se promueva a prod, sin más interacción humana, cuando se realice una implementación exitosa en staging.

  • Cómo avanzar en un lanzamiento

    Puedes configurar Cloud Deploy para que avance un lanzamiento de una fase a la siguiente, después de un lanzamiento correcto 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.

El siguiente es el proceso general para configurar y ejecutar una automatización:

  1. Configura una automatización.

    Esta automatización está asociada con una canalización de entrega.

  2. Registras esa automatización con gcloud deploy apply.

    Esto crea el recurso de automatización.

  3. Para invocar la canalización de entrega asociada con esta automatización, crea una versión.

  4. El lanzamiento se realizó correctamente en al menos un destino.

  5. En el destino para el que se configuró esta automatización...

    Si la automatización es promoteReleaseRule:

    1. La ejecución espera a que el lanzamiento tenga éxito en el destino de origen. El destino de origen es el selector.targets configurado para la automatización, no en AutomationRule.

    2. Si hay un tiempo wait configurado, la ejecución también espera ese tiempo.

    3. La versión se promueve automáticamente 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, haz lo siguiente:

    1. La ejecución espera la fase de origen identificada, si la hay.

      La propiedad sourcePhase es opcional y, si no se especifican fases de origen, cada fase del lanzamiento avanza automáticamente. El avance de fase automático ocurre cuando la fase de origen es IN_PROGRESS, sujeta a un tiempo wait.

    2. Si hay un tiempo wait configurado, la ejecución también espera ese tiempo.

      Cuando automatizas una implementación de versiones canary, debes usar este tiempo de espera para especificar la duración de cada fase de la versión canary.

    3. El lanzamiento avanza automáticamente desde esa fase de origen a la siguiente fase del lanzamiento.

    4. Si hay una fase de origen adicional, se trata de la misma manera, incluido el mismo tiempo de espera, si corresponde.

Recursos de automatización

Existen 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 para los 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 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 un objetivo 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 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 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 de manera automatizada (como avanzar un lanzamiento), existen varios permisos que se necesitan 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

Consulta Funciones y permisos de IAM para obtener más información, incluidas las funciones de Cloud Deploy que incluyen estos permisos.

Crea una automatización

Para crear una automatización, incluido el uso de cualquiera de las reglas de automatización disponibles, puedes configurar una automatización y, luego, crear el recurso de automatización con gcloud deploy apply.

Consulta la siguiente sección (Cómo configurar la automatización) y Cómo configurar reglas de automatización.

Configura 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 para cada una de las reglas disponibles.

Consulta Usa reglas de automatización para obtener descripciones de cada una de las reglas disponibles.

Cómo suspender 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 generan los registros de la plataforma.

  1. En la configuración Automation, actualiza la propiedad suspended a true.

  2. Ejecuta gcloud deploy apply en ese archivo de configuración.

  3. Los registros de plataforma se generan cuando se crea una instancia de 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?