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 a lançamentos e lançamentos 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 a automação de lançamentos no Cloud Deploy.

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

Ações que podem ser automatizadas

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

Consulte Regras de automação para mais informações sobre essas ações e como configurá-las.

Como funciona a automação?

Cada automação está vinculada ao pipeline de entrega em que é usada. Você não pode compartilhar uma automação em vários pipelines de entrega.

Confira a seguir o processo geral de configuração e execução de uma automatização:

  1. Você configura uma automação.

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

  2. Você registra essa automação usando gcloud deploy apply.

    Isso cria o recurso de automação.

  3. Invoque o pipeline de entrega associado a essa automação criando uma versão.

  4. O lançamento é concluído com sucesso para pelo menos um destino ou falha.

    Se o lançamento for concluído e a automação for promoteReleaseRule:

    1. A execução aguarda o lançamento no destino de origem. O destino de origem é o selector.targets configurado para a automação, e 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 no pipeline. progressão ou para um objetivo específico, se indicado.

    Se o lançamento for bem-sucedido, a automação for advanceRolloutRule e o alvo usar uma estratégia de lançamento 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 especificado, cada fase do lançamento é avançada automaticamente. O avanço automático da fase acontece quando a fase de origem é IN_PROGRESS, sujeito ao tempo wait.

    2. Se houver um horário wait configurado, a execução também vai esperar por esse horário.

      Ao automatizar uma implantação canário, esse tempo de espera é usado 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 no lançamento.

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

    Se o lançamento falhar e houver uma automação com uma regra repairRollout:

    1. O lançamento é tentado novamente após o tempo wait configurado, se houver.

      Se fases ou jobs específicos estiverem configurados nesta regra repairRollout, apenas essas fases ou jobs são repetidos. O padrão, se nenhum job ou fase for especificado, é tentar novamente todas as fases e jobs no lançamento.

      Como as novas tentativas são opcionais, se a automação não estiver configurada para repetir, essa etapa não vai acontecer.

    2. Se a primeira tentativa falhar, a execução vai esperar o tempo wait configurado e tentar novamente.

    3. As novas tentativas são repetidas até que o Cloud Deploy tenha esgotado o tentar novamente attempts.

      Se cada tentativa falhar e o attempts for esgotado, o lançamento vai falhar.

      Durante novas tentativas, o lançamento estado é IN_PROGRESS até que o lançamento tenha êxito ou falhe de acordo com a na última tentativa. O estado da fase é IN_PROGRESS durante as novas tentativas, mas FAILED após cada falha no lançamento.

    4. Se todas as tentativas falharem (ou nenhuma estiver configurada), um novo lançamento será criado para reverter para a versão mais recente com sucesso no destino.

Recursos de Automation

Há dois recursos do Cloud Deploy que são específicos 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 governam o que a automação faz e como ela faz isso

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

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

  • Execução da automação

    O AutomationRun é uma instância de uma automação. Ele é um indicador para seu 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 de automação

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 será realizada.

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 necessárias para realizar 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 realizar a operação automatizada. Consulte Configurar regras de automação para saber as permissões necessárias por regra de automação.

Consulte Permissões e papéis do IAM Para mais informações, incluindo quais implantações Os papéis incluem essas permissões.

Criar uma automação

É possível criar uma automação, incluindo 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). Como configurar regras de automação.

Como configurar a automação

Consulte o Esquema do arquivo de configuração para saber como configurar o recurso Automation.

Configuração da regra de automação

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. Quando você suspende uma automação, ela não é executada, mas os registros da plataforma ainda são gerados.

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

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

  3. Os registros de plataforma ainda são gerados quando o automação é instanciada, mesmo que esteja suspensa. Você pode usar isso para testar e depurar a automação sem afetar o pipeline de entrega.

A seguir