Proyecto de prácticas para la asignatura Cloud Computing del Máster en Ingeniería Informática.
Módulo para la gestión de contabilidad de una empresa.
Tras la realización de un ERP que posibilitaba la gestión de las tareas de documentación de una PYME, ha llegado el momento de ampliar su funcionalidad con la inserción de un módulo de contabilidad. Este módulo se ubica dentro de un proyecto mayor destinado a un futuro TFM, en el cual se reconstruirá el backend de dicho ERP evolucionando hacia una arquitectura basada en microservicios.
Este módulo nos permitirá tener una primera versión de un inventario de productos, culminando en la gestión del balance económico final de la empresa.
En el desarrollo de contabilidad de una empresa hay gran cantidad de variables que controlar, desde la compra de inventario básico a una fábrica, su posterior venta con los beneficios obtenidos pasando por el gasto diario que se genera en la empresa y un largo etcetera.
Con la realización de este módulo llegaremos a establecer una primera versión que controle el anterior problema. Para ello nos centraremos en desarrollar un sistema que nos permita introducir los datos cliente junto con la información de los items de la factura y su precio, generando el documento final correspondiente.
Utilizaremos una arquitectura basada en microservicios.
Como microservicios a desarrollar encontramos los siguientes:
Podemos ver el proyecto desplegado pinchando aquí. Si queremos obtener más información sobre el despligue, pruebas y diferentes rutas del proyecto: Despliegue: https://itemsv1.herokuapp.com/
MV: 13.82.132.92
Para el provisionamiento de la aplicación hemos optado por Ansible. Nos hemos decantado por esta herramienta por la sencillez para crear y entender los playbook mediante el lenguaje YAML. Además, la gestión de la configuración de diferentes máquinas, y su integración con Azure o Amazon es clave para el desarrollo de nuestra aplicación. Como sistemas operativos que usan nuestras máquinas usamos los siguientes:
Para el aprovisionamiento usando Ansible y documentación detallada, podemos consultar todos los detalles aquí.
MV2: 51.140.14.158
Para la realización de la automatización de nuestro proyecto en un sistema Cloud se ha creado un script. Este hace uso del cliente de líneas de órdenes de Azure, sistema Cloud elegido, y nos proporciona una máquina virtual totalmente lista para provisionar con Ansible y disponer de nuestro proyecto completamente funcional.
Todo el proceso seguido para su realización lo podemos encontrar aquí.
Además, como avance del proyecto se ha creado un sistema de logs. Podemos encontrar toda la información aquí.
Despliegue Vagrant: 52.151.71.89
Para la realización de la orquestación de las máquinas virtuales se ha hecho uso de la herramienta Vagrant, dicha herramienta hace uso de Ansible para las tareas de provisión. Esto nos permite tener nuestro proyecto completamente disponible y funcional en tan solo cuestión de minutos. Además, como avance de proyecto, se ha comenzado a usar la base de datos mongodb de manera local.
Todo el proceso seguido para su realización lo podemos encontrar aquí.
Contenedor: http://51.140.115.45/
DockerHub: https://hub.docker.com/r/luiisgallego/items
La documentación completa del proceso seguido en el despliegue del contenedor mediante Docker la podemos encontrar aquí.
Este proyecto se encuentra bajo la licencia GNU General Public License v3.0
Se puede consultar la información completa del proyecto aquí.