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 definem como essas automatizações funcionam.
Ações que podem ser automatizadas
No Cloud Deploy, é possível automatizar as seguintes atividades de lançamento e implantação:
Promover um lançamento automaticamente
É possível configurar o Cloud Deploy para promover a versão automaticamente após um lançamento bem-sucedido para um destino. Por exemplo, se você tiver três destinos,
dev
,staging
eprod
, poderá configurar uma automação para que a versão seja promovida paraprod
, sem mais interação humana, após uma implantação bem-sucedida emstaging
. Também é possível especificar um tempo de espera.Promover uma versão em uma programação
É possível configurar o Cloud Deploy para promover a versão de acordo com uma programação cron.
-
É possível configurar o Cloud Deploy para avançar uma distribuição de uma fase para a próxima, depois de uma distribuição bem-sucedida para o destino anterior. O avanço de fase está disponível apenas em destinos que usam uma estratégia de implantação canário.
-
É possível configurar o Cloud Deploy para tentar novamente automaticamente uma implantação com falha. Isso inclui tentar o lançamento um número especificado de vezes e reverter automaticamente se esse número de tentativas falhar.
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. Não é possível compartilhar uma automação entre vários pipelines de entrega.
Confira a seguir o processo geral de configuração e execução de uma automatização:
Você configura uma automação.
Essa automação está associada a um pipeline de entrega.
Você registra essa automação usando
gcloud deploy apply
.Isso cria o recurso de automação.
Invoque o pipeline de entrega associado a essa automação criando uma versão.
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
:A execução aguarda o lançamento no destino de origem. O destino de origem é o
selector.targets
configurado para a automação, não noAutomationRule
.Se houver um horário
wait
configurado, a execução também vai esperar por esse horário.A versão é promovida automaticamente para o próximo destino na progressão do pipeline ou para um destino específico, se indicado.
Se o lançamento for bem-sucedido, a automação for
advanceRolloutRule
e o destino usar uma estratégia de lançamento canário:A execução aguarda a fase de origem identificada, se houver uma.
A propriedade
sourcePhase
é opcional. Se nenhuma fase de origem for especificada, cada fase do lançamento será avançada automaticamente. O avanço automático da fase acontece quando a fase de origem éIN_PROGRESS
, sujeito ao tempowait
.Se houver um horário
wait
configurado, a execução também vai esperar por esse horário.Ao automatizar uma implantação de canário, use esse tempo de espera para especificar a duração de cada fase.
O lançamento é avançado automaticamente dessa fase de origem para a próxima fase no lançamento.
Se houver outra fase de origem, ela será tratada da mesma forma, incluindo o mesmo tempo de espera, se aplicável.
Se o lançamento falhar e houver uma automação com uma regra
repairRollout
:O lançamento é tentado novamente após o tempo
wait
configurado, se houver.Se fases ou jobs específicos forem configurados nesta regra
repairRollout
, somente essas fases ou jobs serão tentadas novamente. 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.
Se a primeira tentativa falhar, a execução vai esperar o tempo
wait
configurado e tentar de novo.As tentativas são repetidas até que o Cloud Deploy esgote a tentativa
attempts
.Se cada tentativa falhar e o
attempts
for esgotado, o lançamento vai falhar.Durante as novas tentativas, o estado do lançamento é
IN_PROGRESS
até que o lançamento seja bem-sucedido ou falhe após a tentativa final. O estado da fase éIN_PROGRESS
durante as novas tentativas, masFAILED
após cada falha no lançamento.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 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 o(s) alvo(s) 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 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 ou mais destinos a uma ou mais regras de automação.Execução da automação
O
AutomationRun
é uma instância de uma automação. É um ponteiro para o recurso de Automation correspondente, além de informações sobre o lançamento que o gerou e outros metadados.A execução de 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 será realizada.
Saiba mais sobre as regras de automação.
Papéis e permissões 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 conferir 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, 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) e 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 Automation
Além dessa configuraçã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 do sistema ainda são gerados.
Na configuração
Automation
, atualize a propriedadesuspended
paratrue
.Execute
gcloud deploy apply
com esse arquivo de configuração.Os registros da plataforma ainda são gerados quando a automação é instanciada, mesmo que seja suspensa. Você pode usar isso para testar e depurar a automação sem afetar o pipeline de entrega.
A seguir
Confira o guia de início rápido: automatizar a criação de versões e o avanço do lançamento.
Saiba mais sobre as regras de automação do Cloud Deploy.
Saiba mais sobre os recursos de automação do Cloud Deploy.
Consulte a documentação do esquema do arquivo de configuração para saber mais sobre os arquivos de configuração de automação.