Configure a reversão como um pipeline com tarefas que retornam sua implantação a um estado estável anterior após uma falha em um pipeline de implantação. Para reverter se ocorrer uma falha, você anexa o pipeline de reversão a tarefas ou estágios.

Dependendo da sua função, seus motivos para reversão podem variar.

  • Como engenheiro de liberação, quero que o Code Stream verifique o sucesso durante uma liberação para eu saber se devo continuar com a versão ou revertê-la. Possíveis falhas incluem falha na tarefa, uma rejeição em UserOps, excedendo o limite de métricas.
  • Como proprietário do ambiente, desejo reimplantar uma versão anterior para poder retornar rapidamente um ambiente para um estado em boas condições.
  • Como proprietário do ambiente, quero oferecer suporte à reversão de uma implantação de Azul-Verde para que eu possa minimizar o tempo de inatividade das versões com falha.

Ao usar um modelo de pipeline inteligente para criar um pipeline de CD com a opção reversão selecionada, a reversão é automaticamente adicionada às tarefas no pipeline. Nesse caso de uso, o modelo de pipeline inteligente será usado para definir a reversão de uma implantação de aplicativo em um cluster Kubernetes usando o modelo de implantação de upgrade contínuo. O modelo de pipeline inteligente cria um pipeline de implantação e um ou mais pipelines de reversão.

  • No pipeline de implantação, a reversão será necessária se as tarefas de implantação de atualização ou de implantação de verificação falharem.
  • No pipeline de reversão, a implantação é atualizada com uma imagem antiga.

Também é possível criar manualmente um pipeline de reversão usando um modelo em branco. Antes de criar um pipeline de reversão, é necessário planejar o fluxo de reversão. Para obter mais informações básicas sobre a reversão, consulte Planejando uma reversão no Code Stream.

Pré-requisitos

  • Verifique se você é membro de um projeto no Code Stream. Se não for, peça a um administrador do Code Stream para adicioná-lo como membro de um projeto. Consulte Como adicionar um projeto no Code Stream.
  • Configure os clusters do Kubernetes em que o pipeline implantará seu aplicativo. Configure um cluster de desenvolvimento e um cluster de produção.
  • Verifique se há uma configuração de registro do Docker.
  • Identifique um projeto que agrupará todo o seu trabalho, incluindo o pipeline, os endpoints e os painéis.
  • Familiarize-se com o modelo inteligente de CD, conforme descrito na parte sobre CD de Como planejar uma compilação nativa de CICD no Code Stream antes de usar o modelo de pipeline inteligente, por exemplo:
    • Crie os endpoints de produção e desenvolvimento do Kubernetes que implantam a imagem do aplicativo nos clusters do Kubernetes.
    • Prepare o arquivo YAML do Kubernetes que cria o Namespace, o Serviço e a Implantação. Se você precisar baixar uma imagem de um repositório de propriedade privada, o arquivo YAML deverá incluir uma seção com o Segredo de configuração do Docker.

Procedimento

  1. Clique em Pipelines > Novo Pipeline > Modelo Inteligente > Entrega Contínua.
  2. Digite as informações no modelo de pipeline inteligente.
    1. Selecione um projeto.
    2. Digite o nome do pipeline, como RollingUpgrade-Example.
    3. Selecione os ambientes para seu aplicativo. Para adicionar a reversão à implantação, é necessário selecionar Prod..
    4. Clique em Selecionar, escolha um arquivo YAML do Kubernetes e clique em Processar.
      O modelo de pipeline inteligente exibe os serviços e os ambientes de implantação disponíveis.
    5. Selecione o serviço que o pipeline usará para a implantação.
    6. Selecione os endpoints do cluster para o ambiente Dev e o ambiente Prod.
    7. Para a origem da imagem, selecione Entrada do tempo de execução do pipeline.
    8. Para o modelo de implantação, selecione Atualização Contínua.
    9. Clique em Reverter.
    10. Forneça a URL de verificação de integridade.
    Ao criar um pipeline de reversão, você insere os detalhes, seleciona um serviço, uma implantação e um modelo de implantação e marca a caixa de seleção Reverter.
  3. Para criar o pipeline chamado RollbackUpgrade-Example, clique em Criar.

    O pipeline denominado RollbackUpgrade-Example é exibido, e o ícone de reversão aparece nas tarefas que podem ser revertidas no estágio Desenvolvimento e no estágio Produção.

    Em um pipeline de reversão, o ícone de reversão aparece nas tarefas em que o pipeline pode ser revertido.

  4. Feche o pipeline.

    Na página Pipelines, o pipeline que você criou é exibido, e um novo pipeline para cada estágio no seu pipeline é exibido.

    • RollingUpgrade-Example. O Code Stream desativa o pipeline que você criou por padrão, o que garante que você possa revisá-lo antes de o executar.
    • RollingUpgrade-Example_Dev_Rollback. Falha de tarefas na fase de desenvolvimento, como Criar serviço, Criar segredo, Criar implantação e Verificar implantação invocam esse pipeline de desenvolvimento de reversão. Para garantir a reversão de tarefas de desenvolvimento, o Code Stream ativa o pipeline de desenvolvimento de reversão por padrão.
    • RollingUpgrade-Example_Prod_Rollback. Falha de tarefas no estágio de produção, como Implantar - Fase 1, Verificar - Fase 1, Implantar - Fase de lançamento, Finalizar - Fase de lançamento e Verificar - Fase de lançamento, invocam esse pipeline de produção de reversão. Para garantir a reversão das tarefas de produção, o Code Stream ativa o pipeline de produção de reversão por padrão.
    O Code Stream cria pipelines de reversão para os estágios e os habilita.
  5. Ative e execute o pipeline criado.
    Quando você iniciar a execução, o Code Stream solicitará parâmetros de entrada. Forneça a imagem e a tag para o endpoint no repositório Docker que está sendo usado.
  6. Na página Execuções, selecione Ações > Visualizar Execução e observe a execução do pipeline.

    O pipeline começa a EXECUÇÃO e passa pelas tarefas de estágio de desenvolvimento. Se o pipeline não conseguir executar uma tarefa durante o estágio de desenvolvimento, o pipeline chamado RollingUpgrade-Example_Dev_Rollback será disparado para reverter a implantação e o status do pipeline será alterado para ROLLING_BACK.

    O pipeline de reversão reverte a implantação e retorna o pipeline ao estado estável anterior.

    Após a reversão, a página Execuções listará duas execuções do pipeline RollingUpgrade-Example.

    • O pipeline que você criou é revertido e exibe ROLLBACK_COMPLETED.
    • O pipeline de desenvolvimento de reversão que acionou e executou a reversão exibe COMPLETED.

    Os resultados da reversão aparecem na guia Execuções, e os comentários exibem o ponto de gatilho da reversão.

Resultados

Parabéns! Você definiu com sucesso um pipeline com reversão e observou o Code Stream reverter o pipeline no ponto de falha.