À medida que o desenvolvimento ágil se tornou o novo e frequente e frequente fornecimento de serviços aprimorados transformou os modelos de processos de negócios. A questão é por quê? Bem, a resposta simples é a aquisição e retenção do cliente pela prestação oportuna de produtos ou serviços de qualidade para satisfazer as necessidades em rápida evolução dos clientes. A próxima pergunta é, isso compromete a qualidade? A resposta curta é “teste de desempenho”. Novamente, por que investir em testes quando pode atrasar a versão da compilação? Bem, isso não é uma grande troca, porque o teste é a espinha dorsal da qualidade sem a qual todo o propósito de ágil entraria em colapso. Esta é a razão pela qual ferramentas e técnicas de teste mais inteligentes estão sendo introduzidas. Os testes canários para testes de desempenho estão ganhando força nos dias de hoje.

Hoje, os usuários são oferecidos um nível de variedade em aplicativos que mesmo 5 segundos de atraso no tempo de carga do site e tempo de resposta superior a oito segundos podem causar uma grande perda. Por exemplo, em 2013, apenas um tempo de inatividade de 5 minutos do Google fez a empresa perder quase US$ 545.000. Da mesma forma, em janeiro de 2016, uma atualização de software fez com que o termostato Nest parasse de funcionar e deixou muitos usuários frios, que mais tarde reclamaram sobre o problema nas redes sociais. Além disso, não faz muito tempo que a paralisação do Amazon Web Service causou a perda de vendas das empresas no valor de US$ 1.100 por segundo.

Vamos dar uma olhada nos testes canários, seu significado, benefícios e desvantagens, para que possamos justificar seu significado.

 

O que é teste canário?

Testes canários, liberação canária e implantação canária são os termos usados alternativamente para uma técnica que permite a entrega contínua, mantendo o mínimo de risco. O processo é lançar uma atualização de software para um grupo selecionado de usuários para testes. O método recebeu o nome de aves canárias que foram usadas como detectores de gás tóxico nas minas de carvão no passado. Canários são mais sensíveis a gases tóxicos do que os humanos, portanto, eles imediatamente adoecem ou morrem em baixos níveis de exposição. Isso ajudou os mineiros a evacuar as minas e escapar do perigo antes que fosse tarde demais.

 

Estratégia de implantação

Da mesma forma, nos testes canários, os canários são um pequeno grupo de usuários que experimentam as atualizações de software mais recentes, e seu feedback ajuda a equipe de desenvolvimento a decidir se a nova versão deve ser disponibilizada para todos os usuários ou as alterações devem ser revertidas rapidamente. O teste canário é uma aplicação de mudanças paralelas que é feita em um ambiente de produção separado para o qual apenas alguns usuários selecionados são roteados, enquanto a maioria é mantida no antigo ambiente de produção. Essa migração de usuários dura até que todos os usuários tenham sido transferidos para a nova versão. Trata-se de uma abordagem incremental que apoia a inovação e reduz o risco de interrupção em nível de massa.

 

Estratégia de reversão

Se a nova versão se mostrar extremamente errônea e representar uma grande ameaça à experiência do usuário, em vez de reverter as mudanças no ambiente de produção; os usuários são redirecionados para a versão estável antiga. Enquanto isso, a equipe de desenvolvimento se esforça para corrigir erros.

 

Quem são os Usuários Selecionados?

A próxima pergunta é quem serão os usuários impactados pela sua atualização de software? Bem, existem diferentes maneiras de decidir sobre os usuários canários, tais como:

  • Eles podem ser as equipes de teste interna ou remotamente distribuídas
  • De uma região específica, no caso de usuários geograficamente distribuídos
  • A única marca primeiro, no caso de várias marcas

 

A melhor aplicação de testes canários que podem ser citados é o Facebook. O Facebook trabalha com uma estratégia “canário múltiplo”. Apenas funcionários internos são expostos primeiro às novas alterações com todos os Alternadores de Recursos ligados para detectar os problemas precocemente.

 

Quais são os benefícios do teste canário

Você não pode medir os benefícios de algo a menos que você tenha outra coisa para compará-lo. Então, sim, o teste canário é muitas vezes confundido com testes A/B e testes azul-esverdeado. No entanto, é o melhor dos dois mundos. Vamos ver por quê.

 

Teste A/B

Por implementação, o teste A/B é semelhante ao teste canário. 50% dos usuários recebem uma versão atualizada do aplicativo com novo recurso “B”. Os 50% restantes dos usuários continuam usando o recurso “A” da linha de base. Os resultados de lançamento do recurso são então monitorados para observar os resultados em relação às expectativas. No entanto, o foco do A/B é ver o quão útil é um recurso para os clientes. Enquanto os testes canários são realizados para mitigação de riscos.

 

Implantação azul-verde

A implantação azul-esverdeado está focada em eliminar o tempo de inatividade e a interrupção para os usuários finais. As alterações são feitas em um ambiente de produção ocioso para o qual todos os usuários são migrados da produção antiga, uma vez que os testes são concluídos. No entanto, nos testes canários, o volume de usuários impactados é mantido mínimo no início.

Podemos concluir que o teste canário é o melhor dos dois mundos, ou seja, testes A/B e implantação de verde-azul. Os benefícios da abordagem de implantação canária podem ser listados para:

  • Auxilia a inovação, agiliza o desenvolvimento ágil e permite fácil implantação de novos recursos.
  • Garante zero tempo de inatividade.
  • Permite uma rápida reversão das mudanças em caso de resultados negativos.
  • Ele permite um alto nível de configuração para as condições para determinar qual tráfego é enviado para a nova versão, antes de liberá-lo para toda a base de usuários.
  • Permite que várias equipes testem simultaneamente microsapresos individuais na produção.
  • Ao contrário da implantação azul-esverdeda, a expansão de recursos não é necessária para testar um ambiente adicional. Porque por microatendimento a estratégia de recursos é adotada para testes.
  • O comportamento da nova versão pode ser monitorado aumentando lentamente a carga na produção, em vez de configurar todo um novo ambiente de teste de capacidade.
  • Permite a implantação de múltiplas versões em produção. Isso fornece à equipe liberdade, flexibilidade e velocidade desejadas para testar a nova versão.

 

Implantação canária e LoadView

Você pode obter os melhores resultados para testes de desempenho sem comprometer a experiência do usuário das massas. Tudo o que você precisa é da prática de implantação canária e uma excelente ferramenta de teste que suporta métricas para testes de desempenho. Usando a abordagem canária, a execução de casos de teste de desempenho pode ser automatizada com a ajuda de uma solução avançada como o LoadView. Isso pode parecer confuso e complexo. Mas vamos tentar entendê-lo com a ajuda de um exemplo. Por exemplo, o Netflix, um aplicativo de página única (SPA), desenvolve um novo recurso e o lança para os usuários canários (7,50.000, ou seja, 5% de 15 milhões; com base em estatísticas de 2020).

Agora, nenhuma equipe de DevOps pode monitorar um número tão grande de usuários manualmente. Assim, o LoadView age como uma varinha mágica, pois permite que os DevOps e as equipes de teste girem centenas a milhares de usuários simultâneos para carregar e testar o estresse em seus aplicativos e ver como seus aplicativos funcionam sob essa carga aplicada.

Além disso, o que torna o LoadView, com sua ferramenta de scripting EveryStep Web Recorder, uma escolha convincente é que ele suporta SPAs de teste de carga. A lógica SPA conta com a tecnologia JavaScript, que não é suportada por muitas ferramentas, como o JMeter, por exemplo. O JMeter só funciona no nível de protocolo, e não no navegador, então muito do desempenho do lado do cliente fica de fora dos resultados dos testes de desempenho. Com o gravador EveryStep, criar cenários e caminhos de usuários é fácil e utiliza navegadores reais. Basta gravar o caminho e configurar seu cenário de teste. É muito fácil.

 

Desafios da implantação/teste canário

Cada moeda tem dois lados. Alguns diriam que a metodologia canário de implantação/teste tem seus contras, mas é mais apropriado afirmar os seguintes pontos mencionados como seus desafios.

  • As equipes do DevOps têm que gerenciar várias versões do software em paralelo. Portanto, é aconselhável manter o número de versões simultâneas ao mínimo.
  • Você não tem controle completo sobre a nova versão quando ela é atualizada se o software da sua solução estiver instalado nos dispositivos dos usuários.
  • O gerenciamento do banco de dados torna-se difícil durante as versões canárias.
  • A implementação de testes canários exige um esforço substancial para um monitoramento efetivo e robusto da infraestrutura e da aplicação.
  • O monitoramento de cada versão incremental leva tempo e pode afetar a data de lançamento do alvo. Os testes canários podem levar até várias horas.

 

Conclusão: Teste Canário

Para concluir tudo isso, pode ser deduzido que a abordagem canário de implantação/teste pode ser seu próximo melhor amigo em mitigação de risco quando se trata de fazer testes de desempenho da nova versão do seu software com usuários reais sem qualquer tempo de inatividade. Como Ian Molyneaux afirmou em seu livro,
The Art of Application Performance Testing: From Strategy to Tools
Se um usuário final perceber o desempenho ruim doseu site, seu próximo clique provavelmente estará em your-competition.com.” Não deixe isso acontecer. Certifique-se de que seus clientes e clientes estão tendo uma ótima experiência de usuário.

Inicie sua experiência de teste de carga agora com o LoadView.