El propósito de este artículo es explicar el entorno de AWS y sus características, funcionalidades y también discutir las prácticas recomendadas al trabajar con AWS, específicamente las pruebas de carga y el escalado automático de AWS. También compararemos las pruebas de carga de AWS con el funcionamiento de LoadView y es mucho más fácil de usar que otras herramientas y soluciones en el mercado actual.

Pruebas de carga distribuida en AWS

Se explicarán las pruebas de carga distribuidas en AWS, que es una solución que simula miles de conexiones simultáneas a un único punto de enlace. Es una herramienta muy útil para cualquier persona que itera en el desarrollo y el rendimiento de sus aplicaciones.

¿Qué se está probando exactamente?

Imagina que eres un desarrollador y has construido la mejor aplicación del mundo (o tal vez es la mejor aplicación que jamás hayas creado). Como desarrollador, está seguro de que funciona bien ya que ha realizado pruebas funcionales y unitarias. Lo que necesita saber a continuación es, ¿esto va a funcionar en producción y va a funcionar a escala? La escalabilidad es increíblemente importante. Las aplicaciones de pruebas de carga se pueden considerar iguales que las pruebas funcionales, pero simplemente aplicando carga a las aplicaciones y observando lo que sucede. Hay una diferencia entre para probar para un usuario y probarlo para mil personas es diferente.

La solución crea un marco en el que puede probar las aplicaciones bajo carga mediante Elastic Container Services para crear contenedores que crean cientos de conexiones al punto final y puede activar cientos de esos contenedores. La página de destino de D se atribuye a Load Testing on AWS se muestra a continuación.

Pruebas de carga distribuida en AWS

Como se ve en la figura, hay un vínculo a una plantilla de CloudFormation que activará la solución en la cuenta del usuario con un par de clics, una guía de implementación detallada. La Guía de implementación de View es una guía detallada que proporciona instrucciones sobre las consideraciones arquitectónicas y los pasos de configuración para implementar pruebas de carga distribuida en AWS en la nube de Amazon Web Services (AWS). El código fuente está disponible en GitHub si el usuario desea tomarlo y personalizarlo para sus propias necesidades y requisitos. El diagrama de arquitectura representa la infraestructura general de la solución que comprende el front-end y el back-end.

AWS Front-End

Cuando se considera front-end: hay una consola web y una interfaz de usuario que el usuario puede usar para interactuar con la solución. También hay una API, que le permite crear pruebas, ver el estado de las pruebas, volver a ejecutar las operaciones de prueba y eliminar pruebas. La interfaz de usuario procede de la plantilla CloudFormation. Aquí es donde los usuarios realmente comienzan a configurar la prueba en sí.

AWS Back-End

el back-end consta de dos cosas: hay una canalización de Docker y luego el motor de prueba en sí. De donde proviene Docker Pipeline es la solución utiliza un software de código abierto llamado Taurus. Hay una imagen de Docker disponible en Docker Hub que un usuario puede usar. Eso permite al usuario generar cientos de conexiones simultáneas a un punto final. También es compatible con JMeter y Gatling, que son otras herramientas de prueba. Esta es la parte de prueba real de las imágenes y esta es la aplicación que va a realizar las pruebas y que viene en forma de una imagen de Docker. La canalización de back-end va a tomar ese paquete de imagen para nosotros y enviarlo a S3 en la cuenta del cliente. Y, a continuación, CodePipeline y CodeBuild se usan para crear esa imagen y registrarla con Elastic Container Services.

Las pruebas reales se están realizando en AWS Fargate. Es un servicio administrado que le permitirá ejecutar sus contenedores en Elastic Container Service sin tener que preocuparse por la red o la infraestructura subyacente. Es literalmente simplemente girar una tarea, ejecutar el número de contenedores que desea todo lo demás se ocupa de. Además, tenemos una función de Lambda que tomará las solicitudes de nuestra API y eso es lo que realmente está ejecutando las pruebas. Almacenará una plantilla de prueba en S3. Almacenará toda la información que estamos recopilando en Dynamo y, a continuación, utilizamos SQS para poner en cola esas tareas en AWS Fargate para que podamos empezar a girar nuestros contenedores.

Configuración de una prueba de AWS

A continuación, hay una presentación sobre el front-end sobre cómo configuramos una prueba.

Prueba de configuración de AWS

  1. El usuario pulsa el botón del botón“Crear prueba”
  2. El usuario da una Nombre, Descripción, Recuento de tareas (es el número de contenedores lo que desea ejecutar), Simultaneidad (es el número de cada contenedor. ¿Cuántas conexiones simultáneas se va a crear), Ramp Up (cuánto tiempo voy a llegar desde el principio para llegar a ese número de conexiones simultáneas), Hold For (¿cuánto tiempo voy a mantener esa prueba?)
  3. Escenario: punto de enlace HTTP bajo prueba (actualmente AWS admite un único punto final), HTTP Method (AWS admite operaciones GET, PUT, POST, DELETE), HTTP Headers, Body Payload (se pueden analizar encabezados y carga útil).

A continuación, se proporciona una captura de pantalla de una prueba que se está ejecutando actualmente:

Detalles de la prueba de carga de AWS

Se han proporcionado los detalles de la prueba. En este ejemplo específico, se han preguntado 20 contenedores, 20 contenedores en ejecución. Una vez que haya terminado en el back-end, cada uno de los contenedores ejecutará las pruebas, tomará los resultados y, a continuación, lo almacenará en forma de archivo XML en S3 de nuestra función de Lambda back-end. Una vez finalizados todos los contenedores, tomaremos esa información y la agregaremos, pasaremos toda esa información a Dynamo.

A continuación, hay tres capturas de pantalla de una página que representa los resultados de la prueba.

Prueba HTTP Detalles de la prueba de carga de AWS

Resultados de las pruebas de AWS

Historial de resultados de AWS

Si el usuario mira una prueba completada, se le presenta un resumen; resultados de pruebas que son tiempos de respuesta promedio, latencia, métricas de CloudWatch para que podamos ver cómo nos estamos desempeñando, una serie de otros puntos de datos, así como un historial de resultados.

Imagine que pudiera ejecutar esto una vez, hacer algunos ajustes finos en su punto final en su API y luego volver a ejecutar la prueba nuevamente para ver cómo eso mejora el tiempo de respuesta para que los desarrolladores puedan iterar y ver sus resultados a lo largo del tiempo de la Mejoras para la realización de su aplicación. Lo más importante es que están viendo rendimiento a escala.

Esto fue una inmersión profunda en las pruebas de carga distribuida en AWS. Esta solución elimina todas las complejidades de la generación de carga para probar las aplicaciones a escala.

Escalado automático de AWS

El escalado automático es un método utilizado en la computación en la nube, mediante el cual mediante un número de recursos computacionales en una granja de servidores, normalmente medidos en términos del número de servidores activos, se escala automáticamente en función de la carga en la granja. AWS Autoscaling ayuda a lograr la escalabilidad horizontal de su aplicación. Ayuda a lograr una alta disponibilidad, escalar y reducir la capacidad de EC2, mantener la capacidad deseada, aumentar/disminuir la capacidad sin problemas en función de la demanda, lo que conduce a optimizaciones de costos. Funciona con ELP y CloudWatch.

Creación de Elastic Load Balancer

La figura siguiente muestra la estructura general para ayudar a entender los conceptos básicos.

Elastic Load Balancer

Crear Elastic Load Balancer

Antes de poder crear y configurar la configuración de lanzamiento y la escalado automático, necesitamos crear nuestro Elastic Load Balancer (ELB) que AWS es un proveedor de servicios para distribuir el tráfico entrante uniformemente entre instancias EC2 en buen estado que están bajo su control. Healthy es la palabra clave aquí. El balanceador de carga elástica realiza comprobaciones de estado configurables periódicas y toma decisiones sobre dónde enviar el tráfico. La captura de pantalla siguiente es un encabezado al panel de EC2.

Panel de control de EC2

Aquí nuestro objetivo es ir a los servidores virtuales EC2 en la nube. Como se muestra a continuación, en Network & Security, seleccionamos Load Balancers.

DASHBOARD_NETWORK y seguridad DE EC2

Después de eso, el usuario pulsa el botón del botón Crear equilibrador de carga.

Crear equilibrador de carga

El usuario da un nombre. En este ejemplo específico, dejamos sin marcar Crear un equilibrador de carga interno. Esto dirigirá el nombre DNS a una dirección IP pública. Si está marcada, el nombre DNS será un punto a una IP privada en su lugar. Habilitar la configuración avanzada de VPC se comprobará que nos permitirá asignar subredes a ELB en un paso posterior. La configuración del agente de escucha nos permite asignar el tráfico ELB entrante a los puertos de instancias EC2. La asignación predeterminada del puerto 80 ayuda a nuestra aplicación.

Configurar comprobación de estado

El siguiente paso, que se muestra a continuación, es configurar la comprobación de estado.

Configurar comprobación de estado

Configurar comprobación de estado: Opciones

Aquí, nuestras opciones incluyen estándar HTTP, TCP, HTTPS y SSL. En nuestro ejemplo, nos seguiremos en HTTP y nos dirigiremos al archivo robots.txt. Si nuestro servidor web no puede atender hasta una solicitud estática, entonces podemos asumir de forma segura que algo está mal con la instancia y no se debe enviar más tráfico a ella hasta que se vuelva saludable. Con la configuración actual en detalles avanzados, se comprobará una instancia EC2 cada 30 segundos. Tiene 5 segundos para responder a la solicitud. Si no se responde en el tiempo asignado, la instancia podría estar en mal estado. Dos comprobaciones en mal estado consecutivas pondrán las instancias EC2 fuera del estado del servicio. Para volver a estar saludable. Debe pasar 10 comprobaciones de estado consecutivas antes de que comience a recibir tráfico. Estos umbrales son aceptables para nuestra aplicación.

Seleccionar subredes/zonas

Seleccione una de las opciones de subred que se muestran a continuación.

Seleccionar subredes

Agregaremos cada subred que creamos para nuestros servidores web. Es importante mencionar que solo podemos agregar una subred por zona de disponibilidad.

Asignación de grupos de seguridad

A continuación se muestra una captura de pantalla de cómo se ve la asignación de grupos de seguridad.

Asignar grupos de seguridad

Necesitamos seleccionar un grupo de seguridad para nuestro ELB, así que para este ejemplo, seleccionaremos el grupo de seguridad ELB preconfigurado.

Adición de instancias EC2

A continuación se muestra una captura de pantalla que muestra cómo agregar instancias EC2.

Agregar instancias a Load Balancer

En este paso, debemos asegurarnos de que se comprueba el equilibrio de carga Habilitar zona transversal. Sin él, nuestro diseño de alta disponibilidad es inútil. Habilitar drenaje de conexiones también debe comprobarse que determina cómo se controla el tráfico cuando una instancia no se registra o se ha declarado en mal estado.

Crear página de revisión de Load Balancer

La página Revisar se muestra a continuación. Desde aquí puede revisar sus selecciones y realizar cualquier cambio adicional, si es necesario.

Crear página de revisión de Load Balancer

Ahora, se crea el ELB. Una vez que haya terminado, estamos listos para crear nuestra configuración de lanzamiento una política de escalado automático. Crear la política de escalado automático también es fácil, por lo tanto, un usuario puede pasar por el proceso ellos mismos.

LoadView Versus the Competition: Why LoadView Stands Out

Esta sección proporciona comparaciones de alto nivel entre otras herramientas y soluciones de pruebas de carga populares y LoadView. No todas las herramientas de pruebas de carga se crean iguales. Aunque las herramientas de código abierto no suelen requerir costos iniciales e inversiones, lo que puede convertirlos en una opción fácil de usar, lo mejor es entender lo que hace que LoadView sea más fácil de usar que otras herramientas.

Apache JMeter

Apache JMeter, que es un software de código abierto, es para pruebas de carga de comportamiento funcional y medición del rendimiento de las aplicaciones web. A continuación, tomaremos un punto culminante de los pros y los contras de JMeter.

Ventajas de Apache JMeter

  • Independiente de la plataforma. JMeter se puede ejecutar en cualquier sistema operativo como Mac, Windows y Linux.
  • Código abierto. La herramienta es de código abierto, lo que significa que se puede utilizar de forma gratuita. Un desarrollador de software también puede realizar modificaciones y configurarlo según sus requisitos, lo que conduce a una gran flexibilidad. Un desarrollador puede personalizar JMeter, aplicar pruebas de automatización a JMeter.
  • Funcionalidad. Con JMeter, un usuario puede realizar cualquier tipo de prueba que desee: pruebas de carga, pruebas de esfuerzo, pruebas funcionales, pruebas distribuidas, etc.
  • Informes. JMeter proporciona numerosos informes y gráficos: gráfico, gráfico y vista de árbol. Además, se admiten formatos HTML, JSON y XML para informes.
  • Soporte para muchos protocolos. JMeter admite FTP, HTTP, LDAP, SOAP, JDBC y JMS.
  • Capacidad de generación de carga. El software tiene una capacidad de generación de carga ilimitada.
  • Ejecución. Es fácil de ejecutar. El usuario sólo tiene que instalar Java, descargar JMeter y cargar el archivo de script JMeter.
    Informe de análisis. Los resultados son fáciles de entender para los ingenieros y usuarios menos experimentados, y también permiten un análisis en profundidad para los evaluadores.

Desventajas de Apache JMeter

  • No ser amigable con el usuario. Tienes que escribir muchos scripts, por lo que no es tan fácil de usar como otras herramientas. Puede ser confuso. Para poder realizar pruebas, el usuario necesita escribir scripts que pueden ser duros, confusos, lleva al software a no ser fácil de usar.
  • Falta de soporte para aplicaciones de escritorio. JMeter es ideal para probar aplicaciones web, sin embargo, no es ideal para pruebas de aplicaciones de escritorio.
  • Consumo de memoria. JMeter es capaz de simular la carga pesada, visualizar el informe de prueba que absorbe mucha memoria, lleva la memoria bajo gran carga.
  • Sin compatibilidad con JavaScript. JMeter no es un navegador, por lo que sólo se comporta, o simula, un navegador real. No es compatible con AJAX y JavaScript, por lo que esto afecta a la eficiencia de la prueba. No puede medir correctamente el rendimiento del lado del cliente (para obtener más información sobre los pros y los contras de JMeter, consulte nuestra Guía definitiva de pruebas de rendimiento con JMeter)

LoadNinja

LoadNinja es la plataforma de pruebas de carga en la nube que le permite determinar de forma fiable el rendimiento de sus sitios web y aplicaciones web sin utilizar ningún script. LoadNinja ha sido construido y diseñado desde cero hasta los medios de comunicación, los desafíos a los que se enfrentan las herramientas convencionales de pruebas de carga basadas en protocolos. Discutiremos algunos de los aspectos más destacados y limitaciones de LoadNinja.

Ventajas de LoadNinja

  • Utiliza navegadores reales
  • Métricas basadas en navegador con funciones de análisis e informes.
  • Depurador VU. Permite a los desarrolladores buscar y aislar errores durante la prueba.
  • Vu Inspector. Proporciona a los usuarios información sobre cómo interactúan los usuarios virtuales con sus páginas web y aplicaciones mientras se ejecuta la prueba.
  • Herramienta de grabación. Similar a la Grabadora Web EveryStep, que trataremos con más detalle a continuación, permite el scripting de apuntar y hacer clic.

Desventajas de LoadNinja

  • Depende de AJAX. No funciona si JavaScript está deshabilitado o no es compatible.
  • Contenido dinámico. El contenido dinámico no se hará visible para la aplicación basada en AJAX.
  • Latencia. Los problemas de latencia pueden ser mayores, solo en función del comportamiento asincrónico de AJAX.
  • Costo. Puede ser caro, en comparación con otras herramientas en el mercado y características incluidas.

Loadrunner

Es una herramienta de prueba de software de Micro Focus. Se utiliza para probar aplicaciones, medir el comportamiento del sistema y el rendimiento bajo carga. Puede simular miles de usuarios simultáneamente utilizando software de aplicación. Echemos un vistazo rápido a lo que hace que LoadRunner sea popular y algunas de las desventajas de la solución.

Ventajas de LoadRunner

  • Funcionalidad de reproducción y registro (además de correlación automatizada).
  • Además de los protocolos propietarios, como Escritorio remoto, Citrix y Mainframes, se admiten diversos protocolos.
  • El software puede intentar realizar un análisis automatizado del cuello de botella.
  • Integración con infraestructuras como HP ALM, QTP.

El software puede monitorearse a sí mismo y la aplicación bajo prueba en términos de disponibilidad de recursos (RAM, CPU, etc.).

Desventajas de LoadRunner

  • LoadRunner es una costosa herramienta de pruebas de software. Recientemente ha lanzado versiones de prueba gratuitas, sin embargo, no se puede descargar simplemente para su uso.
  • LoadRunner tiene una capacidad de generación de carga limitada. El usuario no puede sobrecargar la herramienta LoadRunner con demasiados usuarios o subprocesos. (Si el usuario está buscando una herramienta de pruebas de rendimiento que realice pruebas pesadas y también demasiados usuarios y grupos de subprocesos, LoadRunner no sería la mejor opción).
  • La ejecución es compleja. Crea un subproceso para cada usuario.
  • En términos de Informe de análisis, la información en un formato sin formato que hp Analysis analiza para generar varios gráficos.

LoadView

El software es una herramienta de prueba de carga y estrés basada en la nube para páginas web, aplicaciones web, API e incluso medios de transmisión. Dado que LoadView está basado en la nube, los ingenieros y probadores pueden realizar pruebas de carga rápida y escalar en función de sus requisitos de carga. Un usuario puede producir tanto tráfico como se solicita. En este proceso, el usuario no necesita manejar infraestructura adicional, lo que es una gran ventaja sobre herramientas de código abierto como JMeter, que requiere que los usuarios ejecuten pruebas desde sus propios equipos, y no puede escalar al nivel que LoadView ofrece Además, el software genera una secuencia de solicitud HTTP GET/POST para probar servidores web y API web.

Ventajas de LoadView

  • No hay obligaciones de precios a largo plazo, viene con un modelo de precios de pago por uso, por lo que los clientes pueden cargar la prueba siempre que lo necesiten.
  • Se admiten escenarios de usuario de grabación para aplicaciones de Internet dinámicas y enriquecidas (RIAs), como Java, HTML5, Flash, Vue, Angular, React, PHP, Silverlight y Ruby (entre muchos otros). Si se puede representar en el explorador de un usuario, el Grabador Web EveryStep lo admite.
  • Los usuarios pueden utilizar servidores de numerosas ubicaciones geográficas globales para imitar la base de usuarios esperada.
  • Creación de scripts de prueba de carga sin tener que tocar una línea de código.
  • Pruebas de carga basadas en la nube en navegadores reales.
  • Compatibilidad de prueba en más de 40 dispositivos y navegadores de escritorio/móviles.
  • Más de 20 geolocalizaciones de inyectores de carga en todo el mundo.
  • Diagnostique cuellos de botella, asegure la escalabilidad y determine el rendimiento general.
  • Informes de rendimiento, métricas para la planificación de capacidad, paneles de rendimiento y mucho más.

Resumiendo esta sección, se muestra que LoadView es más fácil de usar, más eficiente que las otras herramientas restantes que cubrimos.

 

Ajuste: pruebas de carga de AWS: equilibrio de carga y prácticas recomendadas

En este artículo se explica cómo llevar a cabo pruebas de carga distribuida con AWS, lo que elimina toda la complejidad de generar carga para probar sus aplicaciones a escala. Las pruebas de carga de AWS se utilizan para ayudar a los usuarios a crear y reproducir miles de usuarios conectados para lograr el número de transacciones. También cubrimos la característica de escalado automático dentro de AWS, incluidas las definiciones de escalado automático, cómo crear balanceadores de carga elásticos para lanzar la configuración y la configuración del escalado automático. También echamos un vistazo a algunas de las otras herramientas de prueba de carga populares en el mercado y por qué LoadView es mucho más fácil de usar que otras herramientas.

Para una visión más profunda de LoadView en comparación con otras herramientas y soluciones de pruebas de carga en el mercado hoy en día, visite nuestra página alternativas para obtener comparaciones e información completas una al lado de la otra.

¡Comience con LoadView hoy mismo! Regístrese para la prueba gratuita y obtenga pruebas de carga gratuitas cuando comience.