As implantações canário permitem executar versões antiga e nova de uma aplicação simultaneamente. É possível liberar a nova versão para uma pequena porcentagem de usuários antes de disponibilizá-la para toda a base de clientes. Com essa estratégia, você controla a proporção de tráfego direcionada a cada versão conforme as necessidades do seu negócio.
Cenário
Ao desenvolver uma aplicação, o objetivo é acelerar o ciclo de releases sem comprometer a experiência do usuário. Para mitigar riscos de falhas na nova versão, utilize implantações canário e direcione parte do tráfego de serviço para ela. Assim, é possível avaliar métricas como logs, desempenho e estabilidade com base no feedback dos usuários canário. Dependendo dos resultados, libere a nova versão gradualmente para todos os usuários ou reverta para a versão anterior.
Preparação
Implante as versões antiga e nova em servidores de backend distintos. Para garantir a disponibilidade do serviço, implante cada versão em múltiplos servidores de backend.
Crie uma instância de Application Load Balancer (ALB). Instâncias ALB básicas não suportam regras baseadas em cookies; portanto, crie instâncias ALB padrão. Para mais informações, consulte Criar e gerenciar instâncias ALB.
Crie grupos de servidores e adicione os servidores de backend da versão antiga e da nova versão em grupos separados. Para mais informações, consulte Criar e gerenciar um grupo de servidores.
-
Crie um listener e adicione os servidores de backend da versão antiga ao grupo de servidores padrão desse listener. Para mais informações, consulte Adicionar um listener HTTP, Adicionar um listener HTTPS e Adicionar um listener QUIC.
Após concluir as etapas anteriores, todas as requisições serão encaminhadas para a versão antiga. Utilize um ou mais dos métodos abaixo para implementar a implantação canário. Neste exemplo, a nova versão foi adicionada ao Grupo de Servidores A e a versão antiga ao Grupo de Servidores B.
Implantações canário baseadas em cabeçalhos HTTP
Neste exemplo, requisições HTTP contendo o cabeçalho User-Agent Mozilla/4.0 são encaminhadas para a nova versão.
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância ALB está implantada.
Na página Instances, clique em ID da instância ALB que deseja gerenciar.
Na aba Listener, localize o listener desejado e clique em View/Modify Forwarding Rule na coluna Actions.
Na aba Forwarding Rules, clique em Add New Rule.
-
Configure os parâmetros abaixo e clique em OK:
Adicionar condição: Selecione HTTP Header na lista suspensa, defina a chave como user-agent e o valor como Mozilla/4.0.
Ação: Selecione Forward to na lista suspensa e escolha o Grupo de Servidores A.
Para mais informações, consulte Regras de encaminhamento de listener.
NotaAdicione mais regras de encaminhamento para aumentar a porcentagem de tráfego direcionada à nova versão. Caso ela funcione conforme o esperado, desative a versão antiga e encaminhe todas as requisições para a nova versão.
Implantações canário baseadas em cookies
Este exemplo demonstra como configurar o ALB para encaminhar requisições à nova versão com base em cookies definidos por pares chave-valor.
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância ALB está implantada.
Na página Instances, clique em ID da instância ALB que deseja gerenciar.
Na aba Listener, localize o listener desejado e clique em View/Modify Forwarding Rule na coluna Actions.
Na aba Forwarding Rules, clique em Add New Rule.
-
Configure os parâmetros abaixo e clique em OK:
Cookie: Selecione Cookie na lista suspensa e defina o valor como chave: valor.
Ação: Selecione Forward to na lista suspensa e escolha o Grupo de Servidores A.
Para mais informações, consulte Regras de encaminhamento de listener.
NotaAdicione mais regras de encaminhamento para aumentar a porcentagem de tráfego direcionada à nova versão. Caso ela funcione conforme o esperado, desative a versão antiga e encaminhe todas as requisições para a nova versão.
Implantações canário baseadas em grupos de servidores
Neste cenário, 80% das requisições destinadas a example.com são encaminhadas para a versão antiga e 20% para a nova versão.
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância ALB está implantada.
Na página Instances, clique em ID da instância ALB que deseja gerenciar.
Na aba Listener, localize o listener desejado e clique em View/Modify Forwarding Rule na coluna Actions.
Na aba Forwarding Rules, clique em Add New Rule.
-
Configure as regras de encaminhamento conforme as informações abaixo e clique em OK:
Adicionar condição: Selecione Domain Name na lista suspensa e defina o nome de domínio como example.com.
Ação: Selecione Forward to na lista suspensa e escolha o Grupo de Servidores B e o Grupo de Servidores A. Defina o peso do Grupo de Servidores B como 80 e do Grupo de Servidores A como 20.
Para mais informações, consulte Regras de encaminhamento de listener.
NotaAltere os pesos dos grupos de servidores conforme as necessidades do seu negócio. Se a nova versão funcionar conforme o esperado, desative a versão antiga para que todas as requisições sejam encaminhadas para a nova versão.