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