Canary test (implementação canária)

A canary deployment é uma estratégia de lançamento onde uma nova versão de um aplicativo de software é primeiramente implementada para um pequeno subconjunto de usuários antes de ser disponibilizada para o público em geral. Isto permite aos desenvolvedores testar a nova versão do software em um ambiente do mundo real e garantir que não haja grandes problemas antes de torná-la amplamente disponível.

As implementações canárias são frequentemente usadas para aplicações críticas de software onde é importante minimizar o risco de uma nova versão causar grandes problemas. Ao implementar primeiro a nova versão para um pequeno grupo de usuários, os desenvolvedores podem identificar e corrigir qualquer problema antes que ele afete um número maior de usuários. Por que precisamos de uma implantação canária? As implantações canárias são uma forma de testar alterações no software em um ambiente de produção sem impactar todos os usuários. Isso é conseguido implantando primeiro as mudanças em um pequeno subconjunto de usuários e depois monitorando qualquer efeito negativo antes de expandir a implantação para todos os usuários.

Esta abordagem pode ser usada para testar qualquer tipo de mudança, desde uma simples mudança de código até uma nova funcionalidade ou mesmo uma nova versão do software. Ao implementar gradualmente a mudança para mais e mais usuários, é possível obter feedback antecipadamente e identificar quaisquer problemas potenciais antes que eles afetem toda a base de usuários.

As implantações canárias podem ser uma forma eficaz de reduzir o risco de introduzir alterações no software em produção. Elas também podem ser usadas para obter feedback sobre mudanças de usuários reais antes de torná-las amplamente disponíveis.

Como se consegue a implementação canária em Kubernetes?

Existem algumas maneiras de obter a implementação canária em Kubernetes. A forma mais comum é usar uma ferramenta como o Istio ou Linkerd que fornece suporte para a implementação de canários fora da caixa.

Outra forma é usar uma ferramenta como o MetalLB que pode fornecer balanceamento de carga de Camada 2 e Camada 3 para Kubernetes. Isto pode ser usado para implementar implementações canárias, encaminhando uma percentagem de tráfego para a nova versão da aplicação e aumentando gradualmente o tráfego ao longo do tempo.

Outra forma é utilizar uma ferramenta como o kube-router que pode fornecer funcionalidades avançadas de encaminhamento como o encaminhamento baseado em políticas e modelagem de tráfego. Isto pode ser usado para implementar implementações canárias, encaminhando uma percentagem do tráfego para a nova versão da aplicação e aumentando gradualmente o tráfego ao longo do tempo.

Finalmente, também é possível implementar implementações canárias utilizando funcionalidades nativas Kubernetes como os Conjuntos de Réplicas e Contas de Serviços. Esta abordagem requer mais configuração manual mas pode ser usada para alcançar os mesmos resultados.

Como é implementada a implementação de canários?

A implementação canária é uma técnica usada para implementar lentamente as mudanças em um sistema de software, primeiro implementando as mudanças em um pequeno subconjunto de usuários, monitorando para qualquer problema, e depois gradualmente implementando as mudanças em um subconjunto maior de usuários.

Existem algumas maneiras diferentes de implementar a implantação canária. Uma abordagem comum é usar um sistema de sinalização de recursos, onde os novos recursos são inicialmente desativados e depois gradualmente ativados para um número cada vez maior de usuários ao longo do tempo. Outra abordagem é usar um servidor canário, onde o novo código é primeiro implementado para um pequeno número de servidores e depois gradualmente estendido para mais servidores ao longo do tempo.

Qualquer que seja a abordagem utilizada, o objetivo da implantação do canário é facilitar a implantação de mudanças de forma incremental e segura. Ao implementar lentamente as mudanças, é mais fácil identificar e corrigir quaisquer problemas que possam surgir, e ao monitorar quaisquer problemas, é possível implementar rapidamente as mudanças, se necessário.

Quais são os tipos de implantação?

Existem quatro tipos principais de implantação:

1. Implantação no local
2. Implantação em nuvem
3. Implantação híbrida
4. Implantação de borda

Implantação no local é quando um aplicativo é instalado e executado nas próprias instalações do cliente, geralmente dentro do seu próprio centro de dados. A implantação na nuvem é quando uma aplicação é hospedada em um servidor remoto e entregue aos clientes através da Internet. A implantação híbrida é uma mistura de implantação no local e na nuvem, onde alguns componentes de uma aplicação são hospedados no local e outros são hospedados na nuvem. A implantação na borda é quando um aplicativo é implantado na borda de uma rede, perto do usuário, a fim de reduzir a latência.