Pular para o conteúdo principal
Gostaria de aprofundar o recente blog do Paul, “Os seus testes de pré-produção são eficazes?”. Paul abordou a utilização da CPU e os caminhos do código, mas há outro aspecto muito importante em muitas aplicações: a utilização da rede. Muitas aplicações são testadas em um ambiente LAN com latências na faixa de submilissegundos e largura de banda de pelo menos 100 Mbps. Em seguida, elas são implantadas para serem usadas em uma WAN com larguras de banda menores e latências muito maiores. Os resultados podem ser desastrosos.
Embora os testes em um ambiente LAN revelem a maioria dos bugs relacionados à rede, pode haver bugs relacionados a pacotes perdidos ou segmentação inesperada (o TCP NÃO manterá os limites da sua mensagem) que você provavelmente não verá em um ambiente LAN. Também é muito menos provável que você perceba um design abaixo do ideal em um ambiente LAN rápido do que em um ambiente WAN lento. Portanto, é muito importante testar qualquer aplicativo baseado em rede no pior ambiente de rede previsto, com baixa largura de banda, altas latências e sem esquecer as taxas de perda de pacotes.
Há duas maneiras de fazer isso.
A primeira é usar o ambiente real. Coloque o servidor (ou cliente) em um host na rede e veja como ele funciona. Isso tem a vantagem de usar a infraestrutura real. A desvantagem é que você não tem controle sobre o ambiente, algo que é fundamental quando se tenta duplicar um problema ou testar uma correção de bug.
A segunda é usar um simulador WAN. Existem simuladores apenas de hardware e software, comerciais e de código aberto (gratuitos). A vantagem aqui é que você tem controle total sobre a latência, taxas de perda de pacotes e outros parâmetros de rede, e não precisa envolver outros grupos (ou seja, colocar seu software no sistema de outra pessoa). A desvantagem é o custo e a curva de aprendizado. Mesmo se você usar um software gratuito, terá que fornecer um sistema (normalmente algum tipo de Unix) para executá-lo e aprender a usá-lo. Há vários anos, escrevi um tutorial sobre o Dummynet. Na época, era um dos poucos simuladores gratuitos disponíveis. Agora existem muitos outros, basta pesquisar no Google por “simulador de WAN”.
Com base na minha experiência em analisar problemas de desempenho e falhas de aplicativos, acredito que esse tipo de teste se pagará com folga pela redução das interrupções na produção causadas por bugs e pelo aumento do desempenho tanto do aplicativo quanto dos usuários.

© 2024 Stratus Technologies.