Facebook Twitter
alltechbites.com

Pruebas De Escalabilidad: 7 Pasos Hacia El éxito

Publicado en Octubre 5, 2022 por Grant Tafreshi

Los sistemas que funcionan muy bien durante el desarrollo, desplegados en una pequeña escala, pueden descuidar los objetivos de rendimiento una vez que la implementación se escala en torno a los grados reales de uso.

Un caso de ejemplar apropiado de esto se origina en una importante compañía de chips azules que recientemente externalizó el desarrollo de una plataforma de alta tecnología de futuro. Aunque el desarrollo estaba atrás, esto se considera aceptable. La máquina pasó gradualmente a través de componentes funcionales de una prueba de aceptación individual y finalmente parecía que se podría establecer una fecha de implementación. Pero el proveedor comenzó las pruebas de carga y las pruebas de escalabilidad. Siguió una cantidad extendida y costosa de cambios arquitectónicos y cambios en los requisitos de la máquina. El proveedor luchó heroicamente para suministrar un sistema satisfactorio, hasta que finalmente el proyecto fue de nitilla.

Este no es un caso aislado. El folklore abunda con cuentos similares. Desde sistemas de despacho de ambulancia hasta sitios web para la presentación electrónica de declaraciones de impuestos, los sistemas fallan porque escalan y experimentan demandas máximas. Todos estos proyectos parecen nunca haber identificado y ordenado los principales riesgos que enfrentaron. Esta puede ser una etapa fundamental de las pruebas basadas en riesgos, y se aplica igualmente a las pruebas de escalabilidad o las pruebas de carga, ya que lo hace a las pruebas de funcionalidad o las pruebas de continuidad del negocio. Sin evaluación de riesgos, no reconocieron que la escala era entre los mayores riesgos, mucho más para que entregue toda la funcionalidad

Las tendencias recientes hacia la arquitectura orientada al servicio (SOA) intentan abordar el problema de la escalabilidad, pero además introducen nuevos problemas. La incorporación de servicios provistos externamente en su solución actual implica que su capacidad para escalar ahora depende de que este sistema externo funcione bajo carga. Asegurar que esta sea una tarea exigente y, lamentablemente, las pruebas de tensión y las pruebas de estrés aquí a menudo se pasan por alto.

Una mejor práctica sería comenzar el desarrollo de un sistema de software a gran escala utilizando su rendimiento claramente en el corazón, particularmente pruebas de escalabilidad, pruebas de volumen y pruebas de carga. Para generar este enfoque de prueba de rendimiento:

  • Investigue y cuantifica los volúmenes de información y los volúmenes de transacciones que implica el mercado Mark. Algunas de estas figuras podrían ser reveladores y ayudar a los usuarios empresariales comerciales a darse cuenta de toda la escala de la máquina. Esto solo puede resultar en la reevaluación de la prioridad de varias características.
  • Determine cómo las características podrían presentarse a los usuarios y la máquina estructurada para facilitar el escala de la máquina. Por lo general, no intente tener exactamente la misma funcionalidad que tendrá para una solución de escritorio de usuario individual que ofrezca una alternativa escalable adecuada.
  • Reconocer que un área intrínseca del proceso de desarrollo es la prueba de carga a escala representativa en cada lanzamiento de software incremental. Eso es una prueba continua, concentrándose en el mayor riesgo para el proyecto: la oportunidad de operar a escala completa.
  • Asegúrese de que la prueba de carga sea adecuada tanto en alcance como en rigor. La prueba de carga no se trata solo de medir los tiempos de respuesta con una prueba de rendimiento. El programa de pruebas de deformación debe incluir otros estilos de pruebas de carga, incluidas pruebas de estrés, pruebas de confiabilidad y pruebas de resistencia.
  • No olvides que ocurrirán fallas. Los sistemas a gran escala generalmente incluyen grupos de servidores con comportamiento de falla. Las pruebas de falla, la prueba de falla y las pruebas de recuperación completadas en los sistemas de escala representativa que operan bajo carga deben incluirse.
  • No olvide que podría ocurrir una falla catastrófica. Para problemas a gran escala, las pruebas de desastres y las pruebas de recuperación de desastres deben completarse a escala y cargas representativas. Estas actividades pueden verse como las capas técnicas de las pruebas de continuidad del negocio.
  • Reconocer servicios externos si los está utilizando. Lo que su ubicación está adoptando un enfoque SOA y, por lo tanto, están influenciados por los servicios externos, debe asegurarse de que el tiempo de rendimiento y respuesta en estos servicios se mantenga aceptable a medida que aumente el cuerpo y sus propias demandas aumenten. Una buena arquitectura del sistema incluye una respuesta elegante y una operación de retroceso si el comportamiento del servicio externo se deteriora o falla.