

# Fluxo de trabalho de implantações de serviços azul/verde do Amazon ECS
<a name="blue-green-deployment-how-it-works"></a>

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.

1. **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.

1. **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.

1. **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.

1. **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.

1. **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
<a name="blue-green-deployment-workflow"></a>

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\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/blue-green.png)


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.

1. **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.

1. **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.

1. **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.

1. **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.

1. **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.

1. **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.

1. **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.

1. **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
<a name="blue-green-deployment-stages"></a>

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 CloudFormation têm restrições adicionais de tempo limite. Embora o limite de estágio de 24 horas permaneça em vigor, o CloudFormation impõe um limite de 36 horas em toda a implantação. A implantação do 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\$1SERVICE | 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\$1SCALE\$1UP | 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\$1UP | 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\$1SCALE\$1UP | 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\$1TRAFFIC\$1SHIFT | 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\$1TEST\$1TRAFFIC\$1SHIFT | 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\$1TRAFFIC\$1SHIFT | 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\$1PRODUCTION\$1TRAFFIC\$1SHIFT | A mudança do tráfego de produção está concluída. | Sim | 
| BAKE\$1TIME | A duração em que as revisões de serviço azul e verde são executadas simultaneamente. | Não | 
| CLEAN\$1UP | 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\$1PROGRESS 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](https://github.com/aws-samples/sample-amazon-ecs-blue-green-deployment-patterns/blob/main/ecs-bluegreen-lifecycle-hooks/src/approvalFunction/app.py#L20-L25) em sample-amazon-ecs-blue-green-deployment-patterns no GitHub.