Teste de canário: o que é e como você pode se beneficiar dele?
Publicados: 2022-08-20Provavelmente, se você não é um programador, nunca ouviu falar sobre o teste canário. Tudo bem, no entanto, você provavelmente está se perguntando o que é e por que é chamado de teste canário?
O termo deriva da frase “canário na mina de carvão”. Você vê, os mineiros de carvão costumavam trazer um canário engaiolado para a mina de carvão com eles, pois os canários têm uma tolerância menor a gases tóxicos.
Portanto, os trabalhadores sabiam que se o canário morresse, eles deveriam sair da mina. Em termos de desenvolvimento de software, ao criar um novo software, o objetivo é detectar e resolver problemas o mais rápido possível, antes que se tornem um problema para os usuários.
O que é o teste canário?
O teste canário é o método de experimentar novas funcionalidades e recursos com um impacto negativo mínimo no final do usuário. Este tipo de teste é normalmente utilizado com um pequeno grupo de utilizadores, para os quais a aplicação é apresentada com pequenas alterações. Dessa forma, a maioria dos usuários ainda usará a versão atual do software, enquanto o grupo menor selecionado de usuários usará uma versão ligeiramente atualizada.
O objetivo deste exercício é permitir que a maioria das pessoas que usam o software continuem trabalhando com ele, sem problemas, ao mesmo tempo em que enviam alterações para apenas uma pequena porcentagem de usuários.
Tudo isso é feito mantendo a versão existente e a nova do aplicativo em execução simultaneamente. Em seguida, se o teste canário não retornar nenhum erro, você poderá continuar expandindo-o para porcentagens maiores de usuários.
Os leitores também gostam : O que é o desenvolvimento rápido de aplicativos? 4 Fases da Metodologia RAD – DevriX
Como realizar um teste de canário?
A primeira etapa em um teste canário é iniciar um conjunto de servidores ou contêineres de back-end para executar o novo código. Assim que houver novos usuários, seu balanceador de carga enviará uma porcentagem deles para o “cluster canário”.
Os especialistas em DevOps monitoram os servidores para identificar possíveis problemas, como a carga de computação ou taxas mais altas de E/S. E lembre-se de que, mesmo que ocorram problemas sérios, é fácil reverter as coisas para o que eram, pois o processo não afeta todos que usam o software.
Caso contrário, você pode implementar e automatizar facilmente o teste canário usando ferramentas como o Spinnaker para designar a quantidade de usuários usando o novo código.
Essa porcentagem é geralmente em torno de 5% e, uma vez que a equipe de DevOps designada estabelece que não há problemas, ela pode aumentar essa porcentagem de forma constante, até que todos estejam usando a nova versão de código do aplicativo.
Além disso, o teste canário é benéfico em situações em que os ambientes de desenvolvimento ou preparação não correspondem totalmente ao ambiente de produção. O uso de um pequeno grupo de usuários de teste pode revelar quaisquer problemas que não foram detectados durante os ambientes de teste ou desenvolvimento.
Os leitores também gostam: Teste A/B com WordPress: O Guia Definitivo – DevriX
Benefícios e desvantagens do teste de canário
Vamos definir o bom e o ruim na hora de testar, usando o método canário.
Benefícios do teste de canário
- Testes do mundo real . Testar em ambientes internos fechados é ótimo, no entanto, poder testar software em usuários reais é o que leva você um passo adiante. Com as implantações canary, você pode fazer exatamente isso – testar seu aplicativo em um público de pequena escala, sem o risco de lançar um aplicativo completamente novo.
- Melhor gerenciamento de risco . A liberação gradual de novos recursos e a garantia de que funcionem corretamente reduz significativamente quaisquer erros significativos e o custo total de quaisquer falhas.
Ao usar o método de teste canário, você basicamente elimina a necessidade de reverter atualizações importantes ou reescrever grandes quantidades de código. - Mais voltado para os negócios . Precisa apresentar dados de negócios para gerentes e pessoal de marketing/vendas? Com o canary, você pode visualizar os resultados muito rapidamente. Por exemplo, se você quiser testar um novo recurso de software – você pode implantar um novo recurso para um pequeno grupo de usuários e esperar para ver se o recurso funciona bem ou não. seu produto.
Desvantagens do teste de canário
- Problemas de software . Ainda há código não testado, então, naturalmente, há riscos envolvidos. Caso alguns usuários estejam enfrentando problemas significativos com um recurso específico, é melhor pular o teste canário em favor de testes internos mais rigorosos.
- Despesas maiores . Se você pretende usar um balanceador de carga para particionar usuários, precisará de infraestrutura adicional e mais administração. Isso significa que você terá que criar dois ambientes de produção e back-ends separados para executar o teste. Portanto, dois servidores de aplicativos, duas linhas de código, dois servidores Web e uma infraestrutura de rede para manter.
- Experiência do usuário ruim . Alguns usuários podem não gostar muito da ideia de serem usados como cobaias. Se você quiser ser aberto sobre o que está acontecendo, você pode informar aos usuários que eles estão sendo usados como “canários”, por meio de um programa de “adoção antecipada” ou algo semelhante.
Quando não usar o teste canário?
O teste canário é benéfico em muitos casos, no entanto, não é uma resposta infalível para tudo (são 42).
Aqui é quando você definitivamente não deve usar a abordagem canário:
- Em ambientes que não são adequados para implantação contínua.
- Ao lidar com software crítico, como sistemas de suporte à vida ou reatores nucleares.
- Sistemas financeiros onde o fracasso pode resultar em um impacto econômico substancial.
Quando você não pode atualizar o software remotamente.
Como fazer uma implantação canário?
Agora, vamos dar uma olhada nas etapas necessárias que você precisa seguir para executar uma implantação canário.
- Prepare-se para implantação no servidor de teste.
- Exclua nós canários por meio do balanceamento de carga.
- Implante a nova versão nos nós canários.
- Teste a nova versão com scripts de teste automatizados.
- Conecte nós canários ao tráfego com balanceamento de carga.
- Implemente a atualização nos nós de produção restantes.
Na prática, a implantação começa com a preparação do servidor de teste. Verifique os arquivos de configuração, scripts de teste, artefatos de construção e assim por diante. Depois disso, você pode executar testes automatizados ou manuais ou deixar o servidor ativo e ver se tudo funciona bem ou se trava.
Quando empurrar o canário para a produção?
Depois de testar sua atualização canário em 5 ou 10% dos usuários e tudo estiver funcionando corretamente, você pode dobrar ou triplicar a porcentagem de usuários de teste.
Em seguida, teste novamente, obtenha feedback das métricas e, depois de avaliar que tudo está funcionando bem, mais uma vez, você poderá atualizar 70% do ambiente de produção.
Por fim, repita o procedimento de teste e, se tudo estiver correto, lance a nova versão do software para 100% dos usuários e, é claro, continue monitorando.
Empresas que implementaram a implantação do Canary
Para mostrar a você que a implantação canário é um método popular de implementação, vamos dar uma olhada em algumas empresas que usam a implantação canário.
Netflix
A gigante do serviço de streaming usa análise canário automatizada com Kayenta desde 2018. Isso permite atualizações extremamente rápidas no ambiente de produção da Netflix. A empresa afirma que esse método de implantação aumentou a produtividade dos desenvolvedores, reduzindo o risco de fazer alterações em seu ambiente de produção.
Essa plataforma de mídia social também é fã de longa data da implantação de canários. Seu cofundador e CTO, Mike Krieger, compartilhou que as versões canary garantem que os bugs não causem muito dano e afetem apenas um pequeno grupo de pessoas.
Você sabia que o Google Chrome tem uma versão especial, destinada aos desenvolvedores? Isso mesmo, o Google Chrome Canary permite testar as novas APIs da plataforma web e ver como seria o futuro do navegador antes de qualquer outra pessoa.
Microsoft
A Microsoft usa sua própria equipe para testar todas as atualizações de seus produtos. O processo está em vigor desde o Windows Vista e o Microsoft Azure. A atualização do Windows 10 também foi feita usando atualizações canárias dos sistemas operacionais de sua equipe.
Resumo
O teste canário é uma ótima maneira de introduzir novas versões de aplicativos rapidamente, em ambientes de teste do mundo real. Não apenas isso, mas permite um melhor gerenciamento de risco e dados mais rastreáveis.
Apesar do teste canário ter tantos benefícios, nem sempre é a solução para todas as situações. Certifique-se de fazer sua pesquisa antes de iniciar uma implantação canário, caso contrário, pode sair pela culatra em você.