luiisgallego / MII_CC_1819

Repositorio para la asignatura Cloud Computing del Máster en Ingeniería Informática.
https://luiisgallego.github.io/MII_CC_1819/
GNU General Public License v3.0
0 stars 2 forks source link

MII_CC_1819

Build status

Proyecto de prácticas para la asignatura Cloud Computing del Máster en Ingeniería Informática.

Autor: Luis Gallego Quero

Proyecto a desarrollar

Módulo para la gestión de contabilidad de una empresa.

Listado de Apartados

Descripción

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.

Descripción del problema

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.

Tecnologías del proyecto

Arquitectura

Utilizaremos una arquitectura basada en microservicios.

Microservicios

Como microservicios a desarrollar encontramos los siguientes:

Back-end

Despligue

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/

Provision

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í.

Automatización de la creación de máquinas virtuales desde línea de órdenes

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í.

Orquestación de máquinas virtuales

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í.

Contenedores Docker

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í.

Licencia

Este proyecto se encuentra bajo la licencia GNU General Public License v3.0

Más información

Se puede consultar la información completa del proyecto aquí.