Me gustaría ampliar el reciente blog de Paul "¿Es eficaz su prueba de preproducción?". Paul cubrió la utilización de la CPU y las rutas de código, pero hay otro aspecto muy importante de muchas aplicaciones: la utilización de la red. Muchas aplicaciones se prueban en un entorno LAN con latencias en el rango de submilisegundos y un ancho de banda de al menos 100 mbps. Luego se despliegan para ser utilizadas a través de una WAN con anchos de banda más pequeños y latencias mucho más altas. Los resultados pueden ser un desastre.
Aunque las pruebas en un entorno LAN descubrirán la mayoría de los fallos relacionados con la red, puede haber fallos relacionados con paquetes perdidos o con una segmentación inesperada (TCP NO mantendrá los límites de sus mensajes) que es menos probable que vea en un entorno LAN. También es mucho menos probable que note un diseño menos que óptimo en un entorno LAN rápido que en un entorno WAN lento. Por lo tanto, es muy importante probar cualquier aplicación basada en la red en el entorno de red peor previsto, con un ancho de banda bajo, altas latencias y no olvide las tasas de pérdida de paquetes.
Hay dos maneras de hacer esto.
La primera es usar el entorno real. Poner el servidor (o cliente) en un host de la red y ver cómo funciona. Esto tiene la ventaja de usar la infraestructura real. La desventaja es que no tienes control sobre el entorno, algo que es crítico cuando intentas duplicar un problema o probar una corrección de errores.
El segundo es usar un simulador de WAN. Sólo hay simuladores de hardware y software, comerciales y de código abierto (gratuitos). La ventaja en este caso es que se tiene un control total sobre la latencia, las tasas de caída de los paquetes y otros parámetros de la red, y no es necesario involucrar a otros grupos (es decir, poner el software en el sistema de otra persona). La desventaja es el costo y la curva de aprendizaje. Incluso si se utiliza software libre, hay que proporcionar un sistema (típicamente un poco de sabor a Unix) para ejecutarlo y aprender a utilizarlo. Hace varios años escribí un tutorial sobre Dummynet. En ese momento era uno de los pocos simuladores gratuitos disponibles. Ahora hay muchos más, sólo hay que buscar en Google "wan simulador".
Basándome en mi experiencia en el análisis de los problemas de rendimiento y fallos de la aplicación, creo que este tipo de pruebas se pagarán con creces en la reducción de las interrupciones de producción debidas a fallos y el aumento del rendimiento tanto de la aplicación como de sus usuarios.