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 eles serão tentados 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 novamente.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 automação
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 automação é 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 automação 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 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.
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 de automação
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
Você pode 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 esteja 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.