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).
-
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.
-
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.
-
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.
-
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.
-
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.
-
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:

Esse fluxo de trabalho de implantação aprimorado inclui as seguintes etapas detalhadas:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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