Arquitectura de la solución - NATHA1096/titans GitHub Wiki

Modelo de despliegue

La finalidad de esta arquitectura es permitir a los usuarios definir, almacenar y ejecutar scripts de pruebas, así como también consultar el reporte de las pruebas realizadas. Las pruebas están categorizadas y dependiendo del tipo de pruebas se selecciona la herramienta sobre la cual se va a ejecutar.

La infraestructura va a estar desplegada en AWS. En una instancia EC2 se va instalar la aplicación web que contiene la interfaz gráfica por medio de la cual se cargan los scripts, se generan nuevos o se listan los que previamente haya definido el usuario, también permite la consulta de los reportes resultantes de una prueba. El back tambien se va desplegar en una instancia EC2, y en las otras instancias EC2 van a estar los Workers.

La aplicación web tendrá una conexión al Back en donde enviará las estretagias solicitadas. Dichos mensajes seran guardados en una base de datos relacional PostgreSQL, luego el Dispatcher va consultando estas peticiones guardadas en la BDD y se encarga de distribuirlas a la colas de la estrategia de pruebas correspondiente. Una vez las solicitudes estan en la cola a la que pertenecen, son enviadas al worker, el cual realizará la preparación del ambiente para la posterior ejecución del script de la prueba. Cada worker que opera tiene asignada un tipo de prueba y una herramienta en la cual se especializa para ejecutar las pruebas. Una vez se ha realizado el proceso de ejecución, el worker devolverá la información del resultado de ejecución, y será almacenado en S3 para al final ser consumido por el módulo de consultar resultados.

La aplicación web va ser realizada en Angular (Solicitudes/Resultados), mientras que el backend será desarrollado en NodeJS (Crear Solicitud y Consultar Resultados)

User Usuario que va elegir las aplicaciones a probar y el tipo de pruebas que se van a realizar sobre las mismas
Web app Instancia EC2 desplegada en AWS donde va estar la aplicacion web que interactua con el usuario, ahí se puede escoger la aplicación y que tipo de pruebas se van a realizar
Back Instancia EC2 desplegada en AWS donde va estar el backend de la aplicación
SQS Va existir una por cada worker(tipo de prueba y herramienta). Se encarga de recibir las peticiones provenientes del dispatcher y organizarlas en colas
Dispatcher Se encarga de recibir las ordenes de los procesos a ejecutar provenientes de la BDD PostgreSQL y enviarla a la cola correspondiente
Workers Instancias EC2 desplegadas en AWS que se encargan de ejecutar el proceso de pruebas del frameWork especifico que se requiere probar
RDS PostgreSQL RDS Es una base de datos relacional de Amazon que se va conectar con un motor PostgreSQL que permite guardar las los tipos de pruebas a realizar
S3 Sistema de almacenamiento que se utilizara para guardar los scripts de cada tipo de prueba a ejecutar y los reportes de los resultados generados por los procesos de pruebas
Aplicaciones a probar Habitica Web, MyExpenses, Habitica Móvil


Modelo de componentes

Modelo de datos

⚠️ **GitHub.com Fallback** ⚠️