Implantações lineares do Amazon ECS
As implantações lineares transferem gradualmente o tráfego da revisão de serviço antiga para a nova em incrementos iguais ao longo do tempo, permitindo que você monitore cada etapa antes de prosseguir para a próxima. Com as implantações lineares do Amazon ECS, controle o ritmo da mudança de tráfego e valide novas revisões de serviços com quantidades crescentes de tráfego de produção. Essa abordagem fornece uma maneira controlada de implantar alterações com a capacidade de monitorar a performance a cada incremento.
Recursos envolvidos em uma implantação linear
Veja a seguir os recursos envolvidos nas implantações lineares do Amazon ECS:
-
Mudança de tráfego: o processo que o Amazon ECS usa para transferir o tráfego de produção. Para implantações lineares do Amazon ECS, o tráfego é deslocado em incrementos percentuais iguais com tempos de espera configuráveis entre cada incremento.
-
Porcentagem da etapa: a porcentagem do tráfego a ser deslocado em cada incremento durante uma implantação linear. Esse campo usa Dobro como valor, e os valores válidos vão de 3,0 a 100,0.
-
Tempo de incorporação da etapa: a duração da espera entre cada incremento de mudança de tráfego durante uma implantação linear. Os valores válidos vão de 0 a 1.440 minutos.
-
Tempo de incorporação da implantação: o tempo, em minutos, que o Amazon ECS espera após transferir todo o tráfego de produção para a nova revisão de serviço, antes de encerrar a revisão antiga. Essa é 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.
-
Estágios do ciclo de vida: uma série de eventos na operação de implantação, como “após a mudança no tráfego de produção”.
-
Gancho do ciclo de vida: uma função do Lambda que executa um estágio específico do ciclo de vida. Você pode criar uma função que verifica a implantação. As funções do Lambda ou os ganchos do ciclo de vida configurados para PRODUCTION_TRAFFIC_SHIFT serão invocados em cada etapa de mudança de tráfego de produção.
-
Grupo de destino: um recurso do ELB usado para rotear solicitações para um ou mais destinos registrados (por exemplo, instâncias do EC2). Ao criar um listener, especifique um grupo de destino para a ação padrão dele. O tráfego é encaminhado para o grupo de destino especificado na regra do listener.
-
Receptor: um recurso do ELB que verifica solicitações de conexão usando o protocolo e a porta que você configura. As regras que você define para um receptor determinam como o Amazon ECS roteia solicitações para seus destinos registrados.
-
Regra: um recurso do ELB associado a um receptor. Uma regra define como as solicitações são roteadas e consiste em uma ação, condição e prioridade.
Considerações
Considere o seguinte ao escolher um tipo de implantação:
-
Uso de recursos: as implantações lineares executam temporariamente as revisões de serviços azul e verde simultaneamente, o que pode dobrar o uso de recursos durante as implantações.
-
Monitoramento da implantação: as implantações lineares fornecem informações mais detalhadas sobre o status da implantação, permitindo que você monitore cada estágio do processo de implantação e cada incremento de mudança de tráfego.
-
Reversão: as implantações lineares facilitam a reversão para a versão anterior se forem detectados problemas, pois a revisão azul é mantida em execução até que o tempo de incorporação expire.
-
Validação gradual: as implantações lineares permitem que você valide a nova revisão com quantidades crescentes de tráfego de produção, proporcionando mais confiança na implantação.
-
Duração da implantação: as implantações lineares demoram mais para serem concluídas do que as implantações completas por causa da mudança incremental do tráfego e aos tempos de espera entre as etapas.
Como funciona a implantação linear
O processo de implantação linear do Amazon ECS segue uma abordagem estruturada com seis fases distintas que garantem atualizações seguras e confiáveis das aplicações. 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.
-
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 linear: mude gradualmente o tráfego de produção de azul para verde em incrementos percentuais iguais com base na sua estratégia de implantação configurada.
-
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.
A fase de mudança de tráfego linear segue estas etapas:
-
Inicial: a implantação começa com 100% do tráfego roteado para a revisão de serviço azul (atual). A revisão de serviço verde (nova) recebe tráfego de teste, mas nenhum tráfego de produção inicialmente.
-
Mudança incremental de tráfego: o tráfego é gradualmente deslocado de azul para verde em incrementos percentuais iguais. Por exemplo, com uma configuração de etapa de 10,0%, as mudanças de tráfego ocorrem da seguinte forma:
-
Etapa 1: 10,0% para verde, 90,0% para azul
-
Etapa 2: 20,0% para verde, 80,0% para azul
-
Etapa 3: 30,0% para verde, 70,0% para azul
-
E assim por diante até que chegue a 100% verde
-
-
Tempo de incorporação da etapa: entre cada incremento de mudança de tráfego, a implantação espera por uma duração configurável (tempo de incorporação da etapa) para permitir o monitoramento e a validação da performance da nova revisão com o aumento da carga de tráfego. Observe que o tempo de incorporação da última etapa é ignorado quando o tráfego é deslocado em 100,0%.
-
Ganchos do ciclo de vida: as funções do Lambda opcionais podem ser executadas em vários estágios do ciclo de vida durante a implantação para executar validação automatizada, monitoramento ou lógica personalizada. As funções do Lambda ou os ganchos do ciclo de vida configurados para PRODUCTION_TRAFFIC_SHIFT serão invocados em cada etapa de mudança de tráfego de produção.
Estágios do ciclo de vida de implantação
O processo de implantação linear percorre os diferentes estágios do ciclo de vida, 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 e, além disso, cada etapa de mudança de tráfego em PRODUCTION_TRAFFIC_SHIFT 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 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 | Suporte de 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 é gradualmente deslocado de azul para verde em incrementos percentuais iguais até que o verde receba 100% do tráfego. Cada mudança de tráfego invoca um gancho do ciclo de vida com tempo limite de 24 horas. | |
| 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 |