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 ou ponto de pausa em um estágio específico do ciclo de vida. Os ganchos do Lambda invocam funções do Lambda que você definiu para executar código personalizado. Os ganchos de pausa pausam a implantação e aguardam você chamar
ContinueServiceDeploymentpara continuar. -
Grupo de destino: um recurso do Elastic Load Balancing 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 Elastic Load Balancing que verifica solicitações de conexão usando o protocolo e a porta que você configurou. As regras que você define para um receptor determinam como o Amazon ECS roteia solicitações para seus destinos registrados.
-
Regra: um recurso do Elastic Load Balancing 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: é possível configurar funções do Lambda opcionais ou ganchos de pausa em vários estágios do ciclo de vida durante a implantação para executar validação automatizada, monitoramento ou lógica personalizada. Ganchos configurados para
PRODUCTION_TRAFFIC_SHIFTouPRE_PRODUCTION_TRAFFIC_SHIFTsã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.
CloudFormationAs implantações 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.
Para os ganchos de pausa, é possível configurar o tempo limite em até 20.160 minutos (14 dias). O tempo limite de implantação é de 30 dias.
| 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 (somente Lambda) |
| 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 |
| PRE_PRODUCTION_TRAFFIC_SHIFT | Ocorre antes de cada etapa de mudança de tráfego de produção. Para canários, isso ocorre antes da mudança de tráfego do canário e antes da mudança de tráfego restante. | 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 (somente Lambda) |
| 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.