Gerenciar lançamentos

O lançamento do Cloud Deploy inclui fases. Uma fase é um conjunto ordenado e agrupamento de jobs para fazer em um lançamento.

Cada fase inclui jobs, que são as ações a serem realizadas em cada fase (por exemplo, deploy ou verify). Cada job pode ter nenhuma ou mais execuções. Uma execução de job é uma instância de um job. Se o job não foi executado, não há execuções.

Este documento descreve as fases, os jobs e as execuções de job e como gerenciá-los.

Estrutura de um lançamento

Um lançamento é um recurso do Cloud Deploy que associa um release – com uma destino.

Fases

Um lançamento consiste em uma ou mais fases.

Para uma estratégia de implantação padrão, há tem apenas uma fase: stable.

Para uma estratégia de implantação canário, Há uma fase separada para cada porcentagem configurada. Por exemplo, se você configurar um canário que implante 25%, depois 50% e 100%, haverá três fases:

  • canary-25
  • canary-50
  • stable

Esses nomes de fase são padrão: canary-[PERCENTAGE] para estágios canário e stable para a fase de 100%. No entanto, se você configurar um canário manual ou personalizado, será possível controlar os nomes das fases.

Jobs e execuções de jobs

Cada fase de lançamento inclui um ou mais jobs.

Para um lançamento em uma implantação padrão sem verificação de implantação ativada, há uma fase (stable).

Para um lançamento canário, haverá uma fase para cada parte do canário (por exemplo, canary-25, canary-50, stable), e para cada fase, há um job deploy. Se a verificação estiver ativada, também haverá um job verify para cada fase de testes.

Uma execução de job é uma instância de um job. Por exemplo, um job executado para um job deploy é executada e, se ela for bem-sucedida, não haverá mais execução de job para esse job. Se ele falhar, será possível tentar novamente como outra execução de job.

Como pular fases na primeira vez

Algumas estratégias de implantação (por exemplo, canário) distribuem tráfego entre as versões antigas e novas. Se você estiver implantando em um destino pela primeira vez, não há uma versão antiga e, por isso, não podemos dividir o tráfego.

Por esse motivo, quando você implanta um canário pela primeira vez, pulamos as fases do canário e executamos a fase stable. Depois disso, o aplicativo é implantadas, e futuras implantações canário incluirão as fases canário.

Em uma situação real, você normalmente executará uma implantação canário em que seu aplicativo já está em execução, então será raro ignorar essa fase.

Estados em um lançamento

Os lançamentos, as fases, os jobs e as execuções de jobs têm estados. Nesta seção, descrevemos estados para cada uma.

Estados de lançamento

Um lançamento terá um dos seguintes estados:

  • APPROVAL_REJECTED

    O lançamento exigiu aprovação, mas ela foi rejeitada.

  • CANCELLED

    O estado terminal dos lançamentos que foram cancelados por de um usuário.

  • CANCELLING

    Um usuário cancelou o lançamento, mas o cancelamento ainda não foi concluído processamento.

  • HALTED

    Em uma implantação paralela, se um ou mais filhos dos lançamentos falhar, mas pelo menos um lançamento filho for bem-sucedido, o lançamento do controlador será HALTED se houver mais fases depois da atual.

    Para retomar um lançamento de controlador interrompido, siga um destes procedimentos:

    • Cancelar o lançamento do controlador

    • Tentar novamente ou ignorar jobs com falha em lançamentos filhos

  • IN_PROGRESS

    Uma execução de job está em processamento.

  • FAILED

    Um job falhou, e o usuário não escolheu ignorar a falha.

  • PENDING

    O lançamento não começou a ser processado. Esse estado faz a transição para IN_PROGRESS. ou CANCELED.

  • PENDING_APPROVAL

    O lançamento requer aprovação, mas que ainda não foi aprovada.

  • PENDING_RELEASE

    O lançamento está aguardando a renderização da versão.

  • SUCCEEDED

    O lançamento foi concluído, sem falhas.

Estados de fase

Uma fase terá um dos seguintes estados:

  • PENDING

    A fase está aguardando a conclusão de outra fase do lançamento.

  • IN_PROGRESS

    A fase começou.

  • SUCCEEDED

    A fase foi concluída.

  • FAILED

    Um job na fase falhou, e o usuário não escolheu ignorar a falha.

  • ABORTED

    Uma fase anterior falhou.

  • SKIPPED

    Quando você executa uma estratégia de implantação, como um canário, o Cloud Deploy pula para a fase stable nos casos em que ainda não há uma versão em execução do aplicativo para dividir o tráfego. Nesse caso, o estado é Defina como SKIPPED.

Estados do job

Um job terá um dos seguintes estados:

  • ABORTED

    Se uma fase falhar, as fases seguintes serão abortadas.

    Se um job falhar e essa falha não for ignorada, as operações jobs são cancelados. Por exemplo, se uma fase incluir um job de implantação e um e o job de implantação falhar, o job de verificação será cancelado.

  • DISABLED

    Alguns jobs em uma fase podem ser desativados. Por exemplo, as fases sempre incluem jobs de verificação, independentemente de a verificação estar ativada ou não. Se a verificação não estiver ativada, o job de verificação estará definido como DISABLED

  • FAILED

    Uma execução de job para este job falhou, e o usuário não escolheu ignorar a falha.

    O usuário escolheu encerrar a execução do job.

  • IGNORED

    Uma execução de job falhou e o usuário escolheu ignorar a falha.

  • IN_PROGRESS

    Um job executado para este job está em execução no momento.

  • PENDING

    A execução do job deste job está aguardando para começar, porque outra fase ou job que ela não terminou.

  • SKIPPED

    Quando você executa uma estratégia de implantação, como um canário, o Cloud Deploy pula para a fase stable nos casos em que ainda não há uma versão em execução do aplicativo para dividir o tráfego. Nesse caso, o estado é definido como SKIPPED em jobs dentro da fase ou das fases ignoradas.

  • SUCCEEDED

    A execução do job foi concluída com sucesso e o próximo job da fase foi iniciado. ou a próxima fase foi iniciada ou está pronta para começar (possivelmente aguardando ou o lançamento foi concluído.

Estados de execução do job

  • FAILED

    A execução do job falhou durante a execução.

  • IN_PROGRESS

    A execução do job começou, mas não terminou.

  • TERMINATED

    O usuário encerrou a execução do job.

  • TERMINATING

    O usuário encerrou a execução do job, mas ela não foi concluída. terminando.

  • SUCCEEDED

    Quando a execução de um job é concluída com sucesso, sem falhar ou ser encerrada um usuário, ele é colocado em um estado SUCCEEDED, que

Gerenciar seu lançamento

Usando o console ou o SDK Google Cloud, é possível fazer a seguir com um lançamento do Cloud Deploy:

Se você estiver usando implantação paralela com uma estratégia de implantação canário, consulte este documento.

Avançar um lançamento

No caso de destinos configurados para usar uma estratégia de implantação diferente da "padrão", você necessário para que o lançamento avance de uma fase para outra.

Por exemplo, se você tiver um destino configurado para executar uma implantação canário simples com apenas as fases 50% e stable (100%), você precisaria avançar o lançamento uma vez, da fase canary-50 para a fase stable (100%).

gcloud

gcloud deploy rollouts advance ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Em que:

ROLLOUT_NAME é o nome do lançamento atual. que você está avançando para a próxima fase.

RELEASE_NAME é o nome da versão que este o lançamento faz parte.

PIPELINE_NAME é o nome do pipeline de entrega que você está usando para gerenciar a implantação dessa versão.

REGION é o nome da região em que o versão foi criada, por exemplo us-central1. Obrigatório.

Consulte a referência do SDK Google Cloud para mais informações sobre o comando gcloud deploy rollouts advance.

Console

  1. Abra a página "Pipelines de entrega".

  2. Clique no pipeline mostrado na lista de pipelines de entrega.

    A página "Detalhes do pipeline de entrega" mostra uma representação gráfica do progresso do pipeline de entrega.

  3. Na guia Lançamentos, em Detalhes do pipeline de entrega, clique em o nome do lançamento.

    A página de detalhes do lançamento é exibida.

    detalhes do lançamento no console do Google Cloud

    Neste exemplo, o lançamento tem uma fase canary-50 e uma stable. O lançamento pode ter mais fases ou fases diferentes.

  4. Clique em Avançar o lançamento.

    O lançamento avança para a próxima fase.

Cancelar um lançamento

É possível cancelar qualquer lançamento que ainda não tenha sido concluído. Você também pode cancelar um para evitar outras ações nele, como ignorar ou tentar novamente. O lançamento precisa estar em um dos seguintes estados:

  • FAILED
  • HALTED
  • IN_PROGRESS
  • PENDING
  • PENDING_APPROVAL
  • PENDING_RELEASE

Depois de cancelar um lançamento, ele ficará no estado CANCELLING até que todos execuções de jobs pendentes foram concluídas. Você pode encerrar de jobs pendentes que você não quer esperar. Quando o lançamento for CANCELLED, ele não poderá mais ser avançado ou modificado.

Para cancelar um lançamento:

gcloud

gcloud deploy rollouts cancel ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Em que:

ROLLOUT_NAME é o nome do lançamento atual. que você está avançando para a próxima fase.

RELEASE_NAME é o nome da versão que este o lançamento faz parte.

PIPELINE_NAME é o nome do pipeline de entrega que você está usando para gerenciar a implantação dessa versão.

REGION é o nome da região em que o versão foi criada, por exemplo us-central1. Obrigatório.

Consulte a referência do SDK Google Cloud para mais informações sobre o comando gcloud deploy rollouts cancel.

Console

  1. Abra a página "Pipelines de entrega".

  2. Clique no pipeline mostrado na lista de pipelines de entrega.

    A página "Detalhes do pipeline de entrega" mostra uma representação gráfica do progresso do pipeline de entrega.

  3. Na guia Lançamentos, em Detalhes do pipeline de entrega, clique em o nome do lançamento.

    A página de detalhes do lançamento é exibida.

    detalhes do lançamento no console do Google Cloud

    Neste exemplo, o lançamento tem uma fase canary-50 e uma stable. Seu lançamento pode ter mais fases ou diferentes fases.

  4. Clique em Cancelar lançamento.

    O lançamento é cancelado.

Encerrar a execução de um job

É possível encerrar uma execução de job em andamento. Você pode fazer isso, por exemplo, se uma execução de job parecer estar demorando muito ou não funcionar conforme esperado. A execução do job precisa ser IN_PROGRESS para ser encerrada.

gcloud

gcloud deploy job-runs terminate JOB_RUN_ID \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --rollout=ROLLOUT_NAME \
                               --region=REGION

Em que:

JOB_RUN_ID é o (UUID) da execução do job que você quer encerrar. É possível encontrar o ID de execução do job no console do Google Cloud, por Cloud Deploy, na página de lançamento:

ID de execução do job nos detalhes do lançamento no console do Google Cloud

Também é possível receber o ID das execuções de jobs usando o comando gcloud deploy rollouts describe.

RELEASE_NAME é o nome da versão que este a execução do job faz parte.

PIPELINE_NAME é o nome do pipeline de entrega que você está usando para gerenciar a implantação dessa versão.

ROLLOUT_NAME é o nome do lançamento deste job. executar faz parte.

REGION é o nome da região em que o versão foi criada, por exemplo us-central1. Obrigatório.

Consulte a referência do SDK Google Cloud para mais informações sobre o comando gcloud deploy job-runs terminate.

Console

  1. Abra a página "Pipelines de entrega".

  2. Clique no pipeline mostrado na lista de pipelines de entrega.

    A página de detalhes do pipeline de entrega mostra uma representação gráfica da o andamento do pipeline de entrega.

  3. Na guia Lançamentos, em Detalhes do pipeline de entrega, clique em o nome do lançamento.

    A página de detalhes do lançamento é exibida.

    detalhes do lançamento no console do Google Cloud

    Neste exemplo, o lançamento tem uma fase canary-50 e uma stable. Seu lançamento pode ter mais fases ou diferentes fases.

  4. Em Fases, clique na fase que inclui o job cujo job é executado está encerrando.

  5. Em Execuções do job, selecione a execução do job que você está encerrando e depois Clique em Encerrar.

    A execução do job é encerrada e o status dele, conforme mostrado em Fases. da tabela, é Failure.

Depois de encerrar uma execução de job, ele é considerado com falha e você pode fazer o seguinte:

  • Deixe assim e ignore o lançamento com falha
  • Repetir o job
  • Ignore o job e continue com o próximo job ou a próxima fase da lançamento

Ignorar um job

É possível ignorar um job com falha e passar imediatamente para o próximo job da fase. Esse job pode ter falhado por qualquer motivo, incluindo você ou outra pessoa interrompeu uma execução de job para ele.

Um job com falha significa uma fase com falha e um lançamento com falha. No entanto, se você ignorar depois da falha, tanto a fase quanto o lançamento podem ser progredidos e, em última instância, têm SUCCEEDED estados.

gcloud

gcloud deploy rollouts ignore-job ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --job-id=JOB_ID \
                               --phase-id=PHASE_ID \
                               --region=REGION

Em que:

ROLLOUT_NAME é o nome do lançamento deste job. executar faz parte.

RELEASE_NAME é o nome da versão atual. que inclui esse trabalho.

PIPELINE_NAME é o nome do pipeline de entrega que você está usando para gerenciar a implantação dessa versão.

JOB_ID é o nome do job a ser ignorado, para exemplo DEPLOY. Encontre o nome do job na tabela Fases do no console do Google Cloud:

Tabela de fases no console do Google Cloud com uma execução de job com falha

PHASE_ID é o nome da fase que inclui o job que você está ignorando.

REGION é o nome da região em que o versão foi criada, por exemplo us-central1.

Consulte a referência do SDK Google Cloud para mais informações sobre o comando gcloud deploy rollouts ignore-job.

Console

  1. Abra a página "Pipelines de entrega".

  2. Clique no pipeline mostrado na lista de pipelines de entrega.

    A página de detalhes do pipeline de entrega mostra uma representação gráfica da o andamento do pipeline de entrega.

  3. Na guia Lançamentos, em Detalhes do pipeline de entrega, clique em o nome do lançamento.

    A página de detalhes do lançamento é exibida.

  4. Selecione o job com falha a ser ignorado.

  5. Clique no botão Ignorar falhas.

    A execução do job com falha é ignorada e o lançamento continua como se o job tivessem sido bem-sucedidos. Ou seja, se houver outros jobs na mesma fase, eles serão executados. Caso contrário, o lançamento está pronto para avançar para o próximo fase de testes.

Um job com falha pronto para ser ignorado no console do Google Cloud

Tentar novamente um job com falha

Você pode repetir uma execução de job que falhou. O job pode falhar para qualquer um dos seguintes motivos:

  • Uma execução de job não foi concluída.

    Por exemplo, pode ter havido uma falha nas permissões.

  • Um usuário encerrou uma execução de job daquele job.

    O encerramento de uma execução de job resulta em um job com falha, que você pode tentar novamente.

  • Falha em um teste de verificação.

    Para um job de verificação, um teste de verificação falhou. Mesmo que o trabalho de verificação tenha sido concluído corretamente, um dos seus de verificação falharam, e eles serão propagados de volta para o job de verificação. Nesse caso, você tentaria novamente o job como parte da depuração do teste com falha no aplicativo.

Para repetir um job com falha:

gcloud

gcloud deploy rollouts retry-job JOB_NAME \
                       --release=RELEASE_NAME \
                       --delivery-pipeline=PIPELINE_NAME \
                       --rollout=ROLLOUT_NAME \
                       --phase=PHASE_ID \
                       --region=REGION

Em que:

JOB_NAME é o nome do job que você está re tentando. Por exemplo, se você estiver repetindo o job de verificação depois que um verificação, seria verify.

RELEASE_NAME é o nome da versão que este a execução do job faz parte.

PIPELINE_NAME é o nome do pipeline de entrega que você está usando para gerenciar a implantação dessa versão.

ROLLOUT_NAME é o nome do lançamento deste job. executar faz parte.

PHASE_ID é o nome da fase em que este job está parte. Por exemplo, canary-50 ou stable.

REGION é o nome da região em que o versão foi criada, por exemplo us-central1. Obrigatório.

Consulte a referência do SDK Google Cloud para mais informações sobre o comando gcloud deploy rollouts retry-job.

Console

  1. Abra a página "Pipelines de entrega".

  2. Clique no pipeline mostrado na lista de pipelines de entrega.

    A página de detalhes do pipeline de entrega mostra uma representação gráfica da o andamento do pipeline de entrega.

  3. Na guia Implantações, em Detalhes do pipeline de entrega, clique no nome da implantação.

    A página de detalhes do lançamento é exibida.

  4. Em Fases e jobs, clique na fase que inclui o job que você está tentando novamente.

  5. Selecione o job para tentar de novo.

  6. Clique em Tentar de novo e confirme.

    detalhes do lançamento no console do Google Cloud

    A execução do job é executada novamente e o status dele, conforme mostrado Fases, está "em andamento". Se houver outros jobs no mesmo são executados. Caso contrário, o lançamento está pronto para avançar para para a próxima fase.

A seguir