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 a promoção da versão e o avanço da fase.
Saiba mais sobre os recursos usados para a automação de versões no Cloud Deploy.
Saiba mais sobre como configurar as regras que definem o funcionamento dessas automações.
Ações que podem ser automatizadas
No Cloud Deploy, é possível automatizar as seguintes atividades de lançamento e implantação:
Promover uma versão automaticamente
É 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,stagingeprod, 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 atraso.Promover um lançamento em uma programação
É possível configurar o Cloud Deploy para promover sua versão de acordo com uma programação cron.
-
É 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 no destino anterior. O avanço de fase está disponível apenas em destinos que usam uma estratégia de implantação canary.
-
É possível configurar o Cloud Deploy para repetir automaticamente um lançamento com falha. Isso inclui repetir o lançamento um número especificado de vezes e reverter automaticamente se esse número de novas tentativas falhar.
Consulte Regras de automação para mais informações sobre essas ações e como configurá-las.
Como a automação funciona?
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.
A seguir, apresentamos o processo geral de configuração e execução de 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.
Você invoca o pipeline de entrega associado a essa automação by criando uma versão.
O lançamento é bem-sucedido para pelo menos um destino ou falha.
Se o lançamento for bem-sucedido e a automação for
promoteReleaseRule:A execução aguarda o lançamento ser bem-sucedido no destino de origem. O destino de origem é o
selector.targetsconfigurado para a automação, não noAutomationRule.Se houver um tempo de
waitconfigurado, a execução também aguardará esse tempo.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 e a automação for
advanceRolloutRulee o destino usar uma estratégia de implantação canary:A execução aguarda a fase de origem identificada , se houver.
A propriedade
sourcePhaseé opcional e, 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, sujeita ao tempo dewait.Se houver um tempo de
waitconfigurado, a execução também aguardará esse tempo.Ao automatizar uma implantação canary, você usa esse tempo de espera para especificar a duração de cada fase canary.
O lançamento é avançado automaticamente dessa fase de origem para a próxima fase do lançamento.
Se houver uma fase de origem adicional, 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 será repetido após o tempo configurado
wait, se houver.Se fases ou jobs específicos forem configurados nessa regra
repairRollout, apenas essas fases ou jobs serão repetidos. O padrão, se nenhum job ou fase for especificado, é repetir 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 acontecerá.
Se a primeira nova tentativa falhar, a execução aguardará o tempo
waitconfigurado e tentará novamente.As novas tentativas são repetidas até que o Cloud Deploy esgote as novas tentativas
attempts.Se cada tentativa falhar e as
attemptsforem esgotadas, o lançamento falhará.Durante as novas tentativas, o estado de lançamento é
IN_PROGRESSaté que o lançamento seja bem-sucedido ou falhe após a tentativa final. O estado da fase éIN_PROGRESSdurante as novas tentativas, masFAILEDapós cada falha de lançamento.Se todas as novas tentativas falharem (ou nenhuma for configurada), um novo lançamento será criado para reverter para a versão mais recente bem-sucedida no destino.
Recursos de Automation
Há dois recursos do Cloud Deploy que são especificamente para automação:
Automation
Uma
Automationé um recurso filho de um pipeline de entrega e inclui as seguintes informações:- Um ponteiro para o destino ou destinos em que a automação é usada
- A regra ou 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.
Ao executar
gcloud deploy applyem 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 Automation
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 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, bem como detalhes sobre como a automação deve 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.createclouddeploy.automations.deleteclouddeploy.automations.getclouddeploy.automations.listclouddeploy.automations.updateclouddeploy.automationRuns.cancelclouddeploy.automationRuns.getclouddeploy.automationRuns.list
Além dessas permissões, cada regra de automação pode exigir mais permissões para realizar a operação automatizada. Consulte Configurar regras de automação para 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 detalhes sobre como configurar o
Automation recurso.
Configuração de regras de 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 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.
Na
Automationconfiguração, atualize asuspendedpropriedade paratrue.Execute
gcloud deploy applyno arquivo de configuração.Os registros da plataforma ainda são gerados quando a automação é instanciada, mesmo que esteja suspensa. É possível 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 de lançamentos.
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 detalhes sobre os arquivos de configuração de automação.