Implantações canário do Amazon ECS - Amazon Elastic Container Service

Implantações canário do Amazon ECS

As implantações canário primeiro direcionam uma pequena porcentagem do tráfego para a nova revisão para o teste inicial e, em seguida, transferem todo o tráfego restante de uma vez após a conclusão bem-sucedida da fase canário. Com as implantações canário do Amazon ECS, valide as novas revisões de serviços com tráfego de usuário real, minimizando a exposição ao risco. Essa abordagem fornece uma maneira controlada de implantar alterações com a capacidade de monitorar a performance e revertê-las rapidamente se forem detectados problemas.

Recursos envolvidos em uma implantação canário

Veja a seguir os recursos envolvidos nas implantações canário 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 canárias do Amazon ECS, o tráfego é transferido em duas fases: primeiro para a porcentagem canário e, em seguida, para concluir a implantação.

  • Porcentagem canário: a porcentagem de tráfego roteado para a nova versão durante o período de avaliação.

  • Tempo de incorporação canário: a duração para monitorar a versão canário antes de prosseguir com a implantação completa.

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

  • 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 canário executam conjuntos de tarefas originais e canário simultaneamente durante o período de avaliação, aumentando o uso de recursos.

  • Volume de tráfego: garanta que a porcentagem canário gere tráfego suficiente para uma validação significativa da nova versão.

  • Complexidade do monitoramento: as implantações canário exigem monitoramento e comparação de métricas entre duas versões diferentes simultaneamente.

  • Velocidade de reversão: as implantações canário permitem uma reversão rápida, transferindo o tráfego de volta para o conjunto de tarefas original.

  • Mitigação de riscos: as implantações canário oferecem excelente mitigação de riscos, limitando a exposição a uma pequena porcentagem de usuários.

  • Duração da implantação: as implantações canário incluem períodos de avaliação que estendem o tempo geral de implantação, mas oferecem oportunidades de validação.

Como funcionam as implantações canário

O processo de implantação canário 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 canário: mude a porcentagem configurada de tráfego para a nova revisão de serviço verde durante a fase canário, seguida pela transferência de 100,0% do tráfego para a revisão de serviço verde

  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 canário 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 de tráfego canário: essa é uma estratégia de mudança de tráfego em duas etapas.

    • Etapa 1: 10,0% para verde, 90,0% para azul

    • Etapa 2 :100,0% para verde, 0,0% para azul

  • Tempo de incorporação canário: aguarda uma duração configurável (tempo de incorporação canário) após a mudança de tráfego canário para permitir o monitoramento e a validação da performance da nova revisão com o aumento da carga de tráfego.

  • 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 canário percorre 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
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 de produção canário é encaminhado para a revisão verde e o gancho do ciclo de vida é invocado com um tempo limite de 24 horas. A segunda etapa transfere o tráfego de produção restante para a revisão verde. 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

Parâmetros de configuração

As implantações canário exigem os seguintes parâmetros de configuração:

  • Porcentagem canário: a porcentagem de tráfego a ser roteada para a nova revisão de serviço durante a fase canário. Isso permite fazer testes com um subconjunto controlado do tráfego de produção.

  • Tempo de incorporação canário: o tempo de espera durante a fase canário antes de transferir o tráfego restante para a nova revisão de serviço. Isso possibilita um tempo para monitorar e validar a nova versão.

Gerenciamento de tráfego

As implantações canário usam grupos de destino do balanceador de carga para gerenciar a distribuição do tráfego:

  • Grupo de destino original: contém tarefas da versão estável atual e recebe a maior parte do tráfego.

  • Grupo de destino canário: contém tarefas da nova versão e recebe uma pequena porcentagem do tráfego para testes.

  • Roteamento ponderado: o balanceador de carga usa regras de roteamento ponderado para distribuir o tráfego entre os grupos de destino com base na porcentagem canário configurada.

Monitoramento e validação

As implantações canário eficazes dependem de um monitoramento abrangente:

  • Verificações de integridade: ambos os conjuntos de tarefas devem passar por verificações de integridade antes de receber tráfego.

  • Comparação de métricas: compare os principais indicadores de performance entre as versões original e canário, como tempo de resposta, taxa de erro e throughput.

  • Reversão automatizada: configure os alarmes do CloudWatch para acionar automaticamente a reversão se a versão canário mostrar performance degradada.

  • Validação manual: use o período de avaliação para revisar manualmente os logs, as métricas e o feedback do usuário antes de continuar.

Práticas recomendadas para implantações canário

Siga essas práticas recomendadas para garantir implantações canário bem-sucedidas com serviços.

Escolher porcentagens de tráfego apropriadas

Considere estes fatores ao selecionar as porcentagens de tráfego canário:

  • Comece aos poucos: comece com 5% a 10% do tráfego para minimizar o impacto caso ocorram problemas.

  • Considere a criticidade da aplicação: use porcentagens menores para aplicações de missão crítica e porcentagens maiores para serviços menos críticos.

  • Considere o volume de tráfego: garanta que a porcentagem canário gere tráfego suficiente para uma validação significativa.

Definir períodos de avaliação apropriados

Configure períodos de avaliação com base nestas considerações:

  • Reserve tempo suficiente: defina períodos de avaliação longos o suficiente para capturar dados de performance significativos, normalmente de 10 a 30 minutos.

  • Considere os padrões de tráfego: leve em conta os padrões de tráfego e os horários de pico de uso da aplicação.

  • Equilibre velocidade e segurança: períodos de avaliação mais longos fornecem mais dados, mas diminuem a velocidade da implantação.

Implementar um monitoramento abrangente

Configure o monitoramento para rastrear a performance da implantação canário:

  • Principais métricas: monitore o tempo de resposta, a taxa de erro, o throughput e a utilização de recursos para ambos os conjuntos de tarefas.

  • Reversão baseada em alarme: configure os alarmes do CloudWatch para acionar automaticamente a reversão quando as métricas excederem os limites.

  • Análise comparativa: configure painéis para comparar métricas entre as versões original e canário lado a lado.

  • Métricas de negócios: inclua métricas específicas de negócios, como taxas de conversão ou engajamento do usuário, em conjunto com métricas técnicas.

Planejar estratégias de reversão

Prepare-se para possíveis cenários de reversão com estas estratégias:

  • Reversão automática: configure acionadores automáticos de reversão com base em verificações de integridade e métricas de performance.

  • Procedimentos de reversão manual: documente procedimentos claros para reversão manual quando os acionadores automatizados não capturam todos os problemas.

  • Teste de reversão: teste regularmente os procedimentos de reversão para garantir que funcionem corretamente quando necessários.

Validar completamente antes da implantação

Garanta uma validação completa antes de prosseguir com as implantações canário:

  • Teste de pré-implantação: teste minuciosamente as mudanças nos ambientes de preparação antes da implantação canário.

  • Configuração da verificação de integridade: garanta que as verificações de integridade reflitam exatamente a prontidão e a funcionalidade da aplicação.

  • Validação de dependência: verifique se as novas versões são compatíveis com os serviços downstream e upstream.

  • Consistência de dados: garanta que as alterações de esquema do banco de dados e as migrações de dados sejam compatíveis com versões anteriores.

Coordenar o envolvimento da equipe

Garanta uma coordenação eficaz da equipe durante as implantações canário:

  • Janelas de implantação: programe implantações canário durante o horário comercial, quando as equipes estiverem disponíveis para monitorar e responder.

  • Canais de comunicação: estabeleça canais de comunicação claros para o status da implantação e o escalonamento de problemas.

  • Atribuições de perfis: defina perfis e responsabilidades para monitoramento, tomada de decisões e execução de reversão.