La aplicación de monitoreo-apertura está compuesta por un servidor solitario basado en Ubuntu 16.04 LTS que cumple con los siguientes roles:
Este rol se implementa por medio de una aplicación Python3
utilizando el framework web Django
, instalándose todas las dependencias de la misma en un entorno virtual (virtualenv
). La aplicación python
es ejecutada mediante el servicio gunicorn
.
El servidor web de la solución se implementa mediante una instalación del servidor web de código abierto nginx
. La aplicación web se expone en el puerto 80 del servidor web.
Las tareas asincrónicas utilizan las mismas dependencias de la aplicación web Django
, pero se ejecuta como dos servicios distintos, basados en django-rq
:
rqworker
: Uno o más procesos enncargados de la ejecución de las tareas asincrónicas solicitadas por la aplicación web Django
.rqscheduler
: Este componente se encarga de disparar las tareas programadas periódicamente.Ambos servicios son utlizan el mismo entorno de ejecución, entorno virtual (virtualenv
) y la configuración de la aplicación Django
.
El rol de servidor de bases de datos es implementado mediante la configuración de dos motores de bases de datos: