Fluxo de trabalho de implantações de serviços azul/verde do Amazon ECS - Amazon Elastic Container Service

Fluxo de trabalho de implantações de serviços azul/verde do Amazon ECS

O processo de implantação azul/verde do Amazon ECS segue uma abordagem estruturada com seis fases distintas que garantem atualizações de aplicações seguras e confiáveis. Cada fase tem um propósito específico na validação e transição da aplicação da versão atual (azul) para a nova versão (verde).

  1. Fase de preparação: crie o ambiente verde junto com o ambiente azul existente. Isso inclui o provisionamento de novas revisões de serviços e a preparação de grupos de destino.

  2. Fase de implantação: implante a nova revisão do serviço no ambiente verde. O Amazon ECS lança novas tarefas usando a revisão atualizada do serviço, enquanto o ambiente azul continua atendendo ao tráfego de produção.

  3. Fase de teste: valide o ambiente verde usando o roteamento de tráfego de teste. O Application Load Balancer direciona as solicitações de teste para o ambiente verde, enquanto o tráfego de produção permanece no azul.

  4. Fase de mudança de tráfego: mude o tráfego de produção do azul para o verde com base na sua estratégia de implantação configurada. Essa fase inclui pontos de verificação de monitoramento e validação.

  5. Fase de monitoramento: monitore a integridade da aplicação, as métricas de performance e os estados dos alarmes durante o tempo de incorporação. Uma operação de reversão é iniciada quando problemas são detectados.

  6. Fase de conclusão: finalize a implantação encerrando o ambiente azul ou mantendo-o para possíveis cenários de reversão, dependendo da sua configuração.

Fluxo de trabalho

O diagrama a seguir ilustra o fluxo de trabalho abrangente de implantação azul/verde, mostrando a interação entre o Amazon ECS e o Application Load Balancer:

Diagrama abrangente mostrando o processo de implantação azul/verde no Amazon ECS com interações detalhadas de componentes, fases de mudança de tráfego e pontos de verificação de monitoramento

Esse fluxo de trabalho de implantação aprimorado inclui as seguintes etapas detalhadas:

  1. Estado inicial: o serviço azul (produção atual) gerencia 100% do tráfego de produção. O Application Load Balancer tem um único receptor com regras que direcionam todas as solicitações para o grupo de destino azul contendo tarefas azuis íntegras.

  2. Provisionamento de ambiente verde: o Amazon ECS cria novas tarefas usando a definição atualizada de tarefas. Essas tarefas são registradas em um novo grupo de destino verde, mas inicialmente não recebem tráfego.

  3. Validação da verificação de integridade: o Application Load Balancer realiza verificações de integridade em tarefas verdes. Somente quando as tarefas verdes passam pelas verificações de integridade, a implantação vai para a próxima fase.

  4. Roteamento de tráfego de teste: se configurado, as regras de receptor do Application Load Balancer direcionam padrões de tráfego específicos (como solicitações com cabeçalhos de teste) para o ambiente verde para validação, enquanto o tráfego de produção permanece no azul. Isso é controlado pelo mesmo receptor que manipula o tráfego de produção, usando regras diferentes com base nos atributos da solicitação.

  5. Mudança de tráfego de produção: com base na configuração de implantação, o tráfego muda de azul para verde. Nas implantações azul/verde do ECS, esta é uma mudança imediata (tudo de uma vez), em que 100% do tráfego é movido do ambiente azul para o verde. O Application Load Balancer usa um único receptor com regras de receptor que controlam a distribuição do tráfego entre os grupos de destino azul e verde com base nos pesos.

  6. Monitoramento e validação: durante toda a mudança de tráfego, o Amazon ECS monitora as métricas, os estados dos alarmes e a integridade da implantação do CloudWatch. Os gatilhos de reversão automática serão ativados se forem detectados problemas.

  7. Período de tempo de incorporação: a duração em que as revisões de serviço azul e verde são executadas simultaneamente após a mudança do tráfego de produção.

  8. Encerramento do ambiente azul: após a mudança e a validação bem-sucedidas do tráfego, o ambiente azul é encerrado para liberar recursos do cluster, ou é mantido para capacidade de reversão rápida.

  9. Estado final: o ambiente verde torna-se o novo ambiente de produção, lidando com 100% do tráfego. A implantação está marcada como bem-sucedida.

Estágios do ciclo de vida de implantação

O processo de implantação azul/verde avança em estágios distintos do ciclo de vida (uma série de eventos na operação de implantação, como “após a mudança do tráfego de produção”), cada um com responsabilidades específicas e pontos de verificação de validação. A compreensão desses estágios ajuda você a monitorar o andamento da implantação e solucionar problemas de forma eficaz.

Cada estágio do ciclo de vida pode durar até 24 horas. Recomendamos que o valor permaneça abaixo da marca de 24 horas. Isso ocorre porque os processos assíncronos precisam de tempo para acionar os ganchos. O sistema atinge o tempo limite, falha na implantação e, em seguida, inicia uma reversão após um estágio atingir 24 horas. As implantações do AWS CloudFormation têm restrições adicionais de tempo limite. Embora o limite de estágio de 24 horas permaneça em vigor, o AWS CloudFormation impõe um limite de 36 horas em toda a implantação. A implantação do AWS CloudFormation falha e, em seguida, iniciará uma reversão se o processo não for concluído em até 36 horas.

Estágios do ciclo de vida Descrição Use este estágio para o gancho do ciclo de vida?
RECONCILE_SERVICE Este estágio só acontece quando você inicia uma nova implantação de serviço com mais de uma revisão de serviço em um estado ACTIVE. Sim
PRE_SCALE_UP A revisão do serviço verde ainda não foi iniciada. A revisão do serviço azul está processando 100% do tráfego de produção. Não há tráfego de teste. Sim
SCALE_UP O momento em que a revisão do serviço verde aumenta a escala verticalmente até 100% e inicia novas tarefas. A revisão do serviço verde não está recebendo nenhum tráfego neste momento. Não
POST_SCALE_UP A revisão do serviço verde foi iniciada. A revisão do serviço azul está processando 100% do tráfego de produção. Não há tráfego de teste. Sim
TEST_TRAFFIC_SHIFT As revisões do serviço azul e verde estão em execução. A revisão do serviço azul processa 100% do tráfego de produção. A revisão do serviço verde está migrando de 0% para 100% do tráfego de teste. Sim
POST_TEST_TRAFFIC_SHIFT A mudança de tráfego de teste foi concluída. A revisão do serviço verde processa 100% do tráfego de teste. Sim
PRODUCTION_TRAFFIC_SHIFT O tráfego de produção está mudando para a revisão do serviço verde. A revisão do serviço verde está migrando de 0% para 100% do tráfego de produção. Sim
POST_PRODUCTION_TRAFFIC_SHIFT A mudança do tráfego de produção está concluída. Sim
BAKE_TIME A duração em que as revisões de serviço azul e verde são executadas simultaneamente. Não
CLEAN_UP A revisão do serviço azul teve a escala reduzida verticalmente por completo para 0 tarefa em execução. A revisão do serviço verde agora é a revisão do serviço de produção após esse estágio. Não

Cada estágio do ciclo de vida inclui pontos de verificação de validação integrados que devem ser aprovados antes de prosseguir para a próxima etapa. Se alguma validação falhar, a implantação poderá ser revertida automaticamente para manter a disponibilidade e a confiabilidade do serviço.

Quando você usa uma função do Lambda, a função deve concluir o trabalho ou retornar IN_PROGRESS em 15 minutos. Você pode usar o callBackDelaySeconds para atrasar a chamada para o Lambda. Para obter mais informações, consulte a Função app.py em sample-amazon-ecs-blue-green-deployment-patterns no GitHub.