Este documento é uma vista geral da automatização da implementação.
Pode configurar o Cloud Deploy para realizar automaticamente tarefas relacionadas com a versão e a implementação para um determinado pipeline de entrega. Estas tarefas incluem a promoção do lançamento e o avanço de fase.
Saiba mais acerca dos recursos usados para a automatização de lançamentos no Cloud Deploy.
Saiba mais sobre como configurar as regras que definem o funcionamento destas automatizações.
Ações que pode automatizar
No Cloud Deploy, pode automatizar as seguintes atividades de lançamento e implementação:
Promova uma versão automaticamente
Pode configurar o Cloud Deploy para promover a sua versão automaticamente, após uma implementação bem-sucedida num destino. Por exemplo, se tiver três alvos,
dev
,staging
eprod
, pode configurar uma automatização de forma que o lançamento seja promovido paraprod
, sem interação humana adicional, após uma implementação bem-sucedida emstaging
. Também pode especificar um tempo de atraso.Promova um lançamento com base numa programação
Pode configurar o Cloud Deploy para promover a sua versão de acordo com uma programação cron.
-
Pode configurar o Cloud Deploy para avançar uma implementação gradual de uma fase para a seguinte, após uma implementação gradual bem-sucedida no destino anterior. O avanço de fase só está disponível em alvos que usam uma estratégia de implementação canária.
-
Pode configurar o Cloud Deploy para repetir automaticamente uma implementação com falhas. Isto inclui repetir a implementação um número especificado de vezes e reverter automaticamente se esse número de repetições falhar.
Consulte o artigo Regras de automatização para mais informações sobre estas ações e como as configurar.
Como funciona a automatização?
Cada automatização está associada ao pipeline de publicação para o qual é usada. Não pode partilhar uma automatização em vários pipelines de entrega.
Segue-se o processo geral de configuração e execução de uma automatização:
-
Esta automatização está associada a um pipeline de entrega.
Regista essa automatização através de
gcloud deploy apply
.Isto cria o recurso de automatização.
Invoca o pipeline de implementação associado a esta automatização criando uma versão.
A implementação é bem-sucedida para, pelo menos, um destino ou falha.
Se a implementação for bem-sucedida e a automatização for
promoteReleaseRule
:A execução aguarda que a implementação seja bem-sucedida no destino de origem. O alvo de origem é o
selector.targets
configurado para a automatização, não noAutomationRule
.Se existir um tempo
wait
configurado, a execução também aguarda esse tempo.O lançamento é automaticamente promovido para o destino seguinte na progressão do pipeline ou para um destino específico, se indicado.
Se a implementação for bem-sucedida e a automatização estiver
advanceRolloutRule
ativada, e o destino usar uma estratégia de implementação canary:A execução aguarda a fase de origem identificada, se existir.
A propriedade
sourcePhase
é opcional e, se não forem especificadas fases de origem, cada fase na implementação é avançada automaticamente. O avanço automático da fase ocorre quando a fase de origem éIN_PROGRESS
, sujeito à horawait
.Se existir um tempo
wait
configurado, a execução também aguarda esse tempo.Quando automatiza uma implementação canary, usa este tempo de espera para especificar a duração de cada fase canary.
A implementação é automaticamente avançada dessa fase de origem para a fase seguinte na implementação.
Se existir uma fase de origem adicional, é tratada da mesma forma, incluindo o mesmo tempo de espera, se aplicável.
Se a implementação falhar e existir uma automatização com uma regra
repairRollout
:A implementação é repetida após o tempo
wait
configurado, se existir.Se forem configuradas fases ou tarefas específicas nesta regra
repairRollout
, apenas essas fases ou tarefas são repetidas. A predefinição, se não forem especificados trabalhos nem fases, é repetir todas as fases e trabalhos na implementação.Como as novas tentativas são opcionais, se a sua automatização não estiver configurada para repetir, este passo não ocorre.
Se a primeira nova tentativa falhar, a execução aguarda o
wait
tempo configurado e, em seguida, tenta novamente.As novas tentativas são repetidas até que o Cloud Deploy esgote a nova tentativa
attempts
.Se cada tentativa falhar e os
attempts
estiverem esgotados, a implementação falha.Durante as novas tentativas, o estado de implementação é
IN_PROGRESS
até a implementação ter êxito ou falhar após a tentativa final. O estado da fase éIN_PROGRESS
durante as novas tentativas, masFAILED
após cada falha na implementação.Se todas as novas tentativas falharem (ou não estiverem configuradas), é criado uma nova implementação para reverter para a versão bem-sucedida mais recente no destino.
Recursos de automatização
Existem dois recursos do Cloud Deploy especificamente para automatização:
Automatização
Um
Automation
é um recurso filho de um pipeline de entrega e inclui as seguintes informações:- Um ponteiro para o alvo ou os alvos para os quais a automatização é usada
- A regra ou as regras que regem o que a automatização faz e como o faz
A configuração do recurso de automatização é descrita no documento Acerca do recurso de automatização.
Quando executa
gcloud deploy apply
num ficheiro 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 alvos a uma ou mais regras de automação.Execução de automatização
O
AutomationRun
é uma instância de uma automatização. É um ponteiro para o recurso de automatização correspondente, além de informações sobre a implementação que o gerou e outros metadados.A execução da automatização é criada quando uma automatização é acionada.
Saiba mais sobre os recursos de automatização.
Regras de automatização
Uma regra de automatização define uma ação que pode ser realizada automaticamente no seu pipeline de entrega, bem como detalhes sobre como a automatização deve ser realizada.
Saiba mais sobre as regras de automatização.
Funções e autorizações da gestão de identidade e de acesso necessárias
Além das autorizações necessárias para executar qualquer pipeline de entrega do Cloud Deploy e para realizar as tarefas a automatizar (como avançar uma implementação), existem várias autorizaçõ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 destas autorizações, cada regra de automatização pode exigir mais autorizações para realizar a operação automatizada. Consulte o artigo Configure regras de automatização para ver as autorizações específicas necessárias por regra de automatização.
Consulte as funções e autorizações de IAM Para mais informações, incluindo as funções do Cloud Deploy que incluem estas autorizações.
Crie uma automatização
Pode criar uma automatização, incluindo a utilização de qualquer uma das
regras de automatização disponíveis,
configurando uma automatização e, em seguida, criando o recurso de automatização através de
gcloud deploy apply
Consulte a secção seguinte (Configurar automatização) e Configurar regras de automatização.
Configurar a automatização
Consulte o
esquema do ficheiro de configuração
para ver detalhes sobre como configurar o recurso
Automation
.
Configuração de regras de automatização
Além desta configuração de automatização, especifica regras de automatização. A configuração é diferente para cada uma das regras disponíveis.
Consulte o artigo Usar regras de automatização para ver descrições de cada uma das regras disponíveis.
Suspenda uma automatização
Pode suspender um recurso existente sem o eliminar. Isto pode ser útil para testar uma automatização sem afetar o pipeline de publicação. Quando suspende uma automatização, esta não é executada, mas os registos da plataforma continuam a ser gerados.
Na configuração
Automation
, atualize a propriedadesuspended
paratrue
.Execute o
gcloud deploy apply
com esse ficheiro de configuração.Os registos da plataforma continuam a ser gerados quando a automatização é instanciada, mesmo que esteja suspensa. Pode usar esta opção para testar e depurar a automatização sem afetar o pipeline de fornecimento.
O que se segue?
Experimente o início rápido: automatize a criação de lançamentos e o avanço da implementação.
Saiba mais sobre as regras de automatização do Cloud Deploy.
Saiba mais acerca dos recursos de automatização do Cloud Deploy.
Consulte a documentação do esquema do ficheiro de configuração para ver detalhes sobre os ficheiros de configuração da automatização.