Implantações lineares do Amazon ECS - Amazon Elastic Container Service

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

  1. Fase de preparação: crie o ambiente verde junto com o ambiente azul existente.

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

  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.

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