Automatizar a implantação

Este documento é uma visão geral da automação de implantação.

É possível configurar o Cloud Deploy para executar automaticamente tarefas relacionadas à versão e ao lançamento para um determinado pipeline de entrega. Essas tarefas incluem promoção de lançamento e avanço de fase.

Saiba mais sobre os recursos usados para automação de lançamentos no Cloud Deploy.

Saiba mais sobre como configurar as regras que definem como essas automações funcionam.

Ações que podem ser automatizadas

No Cloud Deploy, é possível automatizar as seguintes atividades de lançamento e lançamento:

  • Promover uma versão

    É possível configurar o Cloud Deploy para promover sua versão automaticamente, após um lançamento bem-sucedido em um destino. Por exemplo, se você tiver três destinos, dev, staging e prod, poderá configurar uma automação para que a versão seja promovida para prod, sem mais interações humanas, após uma implantação bem-sucedida em staging.

  • Avançar um lançamento

    É possível configurar o Cloud Deploy para avançar um lançamento de uma fase para a próxima após um lançamento bem-sucedido para o destino anterior. O avanço de fases está disponível apenas em destinos que usam uma estratégia de implantação canário.

Como funciona a automação?

Cada automação está vinculada ao pipeline de entrega em que é usada. Não é possível compartilhar uma automação em vários pipelines de entrega.

Este é o processo geral para configuração e execução de uma automação:

  1. Você configura uma automação

    Esta automação está associada a um pipeline de entrega.

  2. Registre essa automação usando gcloud deploy apply.

    Isso cria o recurso de automação.

  3. Você invoca o pipeline de entrega associado a essa automação criando uma versão.

  4. O lançamento foi concluído com sucesso em pelo menos um destino.

  5. No destino para que esta automação está configurada...

    Se a automação for promoteReleaseRule:

    1. A execução aguarda a conclusão bem-sucedida do lançamento no destino de origem. O destino de origem é o selector.targets configurado para a automação, não no AutomationRule.

    2. Se houver um tempo wait configurado, a execução também aguardará esse tempo.

    3. A versão é promovida automaticamente para o próximo destino na progressão do pipeline ou para um destino específico, se indicado.

    Se a automação for advanceRolloutRule e o destino usar uma estratégia de implantação canário:

    1. A execução aguarda a fase de origem identificada, se houver uma.

      A propriedade sourcePhase é opcional e, se nenhuma fase de origem for especificada, cada fase no lançamento será avançada automaticamente. O avanço automático da fase acontece quando a fase de origem é IN_PROGRESS, sujeito ao tempo de wait.

    2. Se houver um tempo wait configurado, a execução também aguardará esse tempo.

      Ao automatizar uma implantação canário, use esse tempo de espera para especificar a duração de cada fase canário.

    3. O lançamento é avançado automaticamente dessa fase de origem para a próxima fase do lançamento.

    4. Se houver uma fase de origem adicional, ela será tratada da mesma forma, incluindo o mesmo tempo de espera, se aplicável.

Recursos de Automation

Há dois recursos do Cloud Deploy especificamente para automação:

  • Automação

    Um Automation é um recurso filho de um pipeline de entrega e inclui as seguintes informações:

    • Um ponteiro para os destinos em que a automação é usada
    • as regras que regem o que a automação faz e como ela faz

    A configuração do recurso de Automation é descrita no documento Sobre o recurso de automação.

    Quando você executa gcloud deploy apply em um arquivo que inclui uma configuração de automação (kind: Automation), o Cloud Deploy cria um recurso de automação, que associa um pipeline de entrega e um destino ou destinos a uma ou mais regras de automação.

  • Execução da automação

    O AutomationRun é uma instância de uma automação. Ele é um indicador para o recurso de Automation correspondente, além de informações sobre o lançamento que o gerou e outros metadados.

    A execução da automação é criada quando uma automação é acionada.

Saiba mais sobre os recursos de automação.

Regras Automation

Uma regra de automação define uma ação que pode ser realizada no pipeline de entrega automaticamente, além de detalhes sobre como a automação deve ser executada.

Saiba mais sobre as regras de automação.

Permissões e papéis do Identity and Access Management necessários

Além das permissões necessárias para executar qualquer pipeline de entrega do Cloud Deploy e realizar as tarefas a serem automatizadas (como avançar um lançamento), há várias permissões que são necessárias para executar determinadas operações nos recursos Automation e 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

Além dessas permissões, cada regra de automação pode exigir outras permissões para executar a operação automatizada. Consulte Configurar regras de automação para saber as permissões específicas necessárias por regra de automação.

Consulte Papéis e permissões do IAM. Para mais informações, incluindo quais papéis do Cloud Deploy incluem essas permissões.

Criar uma automação

É possível criar uma automação, inclusive o uso de qualquer uma das regras de automação disponíveis, configurando uma automação e criando o recurso de automação usando gcloud deploy apply

Consulte a seção a seguir (Como configurar a automação) e Como configurar regras de automação.

Configurar a automação

Consulte o Esquema do arquivo de configuração para mais detalhes sobre como configurar o recurso Automation.

Configuração da regra Automation

Além dessa configuração de automação, você especifica regras de automação. A configuração é diferente para cada uma das regras disponíveis.

Consulte Como usar regras de automação para ver descrições de cada uma das regras disponíveis.

Suspender uma automação

É possível suspender um recurso sem excluí-lo. Isso pode ser útil para testar uma automação sem afetar o pipeline de entrega. Ao suspender uma automação, ela não é executada, mas os registros da plataforma ainda são gerados.

  1. Na configuração de Automation, atualize a propriedade suspended para true.

  2. Execute gcloud deploy apply nesse arquivo de configuração.

  3. Os registros de plataforma ainda serão gerados quando a automação for instanciada, mesmo se estiver suspensa. É possível usá-lo para testar e depurar a automação sem afetar o pipeline de entrega.

A seguir