/ProyectoCC

Proyecto de la asignatura de Cloud Computing

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Status Language DBMS License Travis

Proyecto de la asignatura de Cloud Computing

Calendario

Descripción

Hoy en día nos vemos comprometidos a asistir a diversos acontecimientos importantes como reuniones o citas médicas en nuestra vida diaria, por ello se propone desarrollar un calendario simple que nos sirva de ayuda para recordar dichos acontecimientos, pudiendo así tenerlos presentes para que no se nos olviden y podamos organizarnos mejor.

Arquitectura

Se va a utilizar una arquitectura de microservicios ya que nos permite crear, testear y desplegar de forma independiente cada servicio, proporcionándonos mayor versatilidad y facilidad para integrar.

En este proyecto, se puede diferenciar principalmente estos microservicios:

  • Almacenamiento de los acontecimientos que se desean recordar, así como la fecha y la hora de comienzo de este.
  • Servicio de gestión de los acontecimientos previstos.
  • Servicio de LOG para monitorización de la aplicación.

Para la comunicación entre los distintos servicios se utilizará el broker RabbitMQ, que es un sistema de manejo de colas que permite que un servicio que quiere enviar un mensaje a otro pueda continuar su tarea sin tener que esperar a la entrega de dicho mensaje.

Lenguaje y microframework

Por último, cabe destacar que este proyecto se realizará empleando Node.js como lenguaje de programación principal, con ayuda de su microframework conocido como Express.

Despliegue

Despliegue: https://calprenob.herokuapp.com/

Para el despliegue del microservicio se ha utilizado Heroku. Pero antes de desplegar dicho microservicio debemos de verificar que el código es correcto, por lo que se utiliza Travis CI, un servicio distribuido de integración continua que se usa en GitHub para levantar y realizar pruebas sobre el software cada vez que se hace un push, siendo gratuito para proyectos de código abierto.

Para más información acerca del microservicio consulte este enlace y para la explicación más detallada del despliegue acceda aquí.

Aprovisionamiento

MV: 40.89.153.203

Para el aprovisionamiento se ha utilizado Ansible, desplegando el servicio en una máquina virtual creada en Azure siguiendo los pasos de este tutorial. Para más información sobre la configuración de la máquina virtual consulte este enlace.

Dicha máquina se ha aprovisionado con todas las dependencias necesarias para poder desplegar nuestra aplicación. Los pasos seguidos para realizar este se pueden consultar aquí.

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

MV2: 40.89.157.192

Se ha construido un script para automatizar la creación de una máquina virtual en Azure mediante las órdenes del CLI de este. Para más información sobre la elección de la máquina virtual a instalar, la creación del script y el despliegue de la aplicación, consulte este documento.

Orquestación de máquinas virtuales

Despliegue Vagrant: 52.143.160.195

Se ha creado y aprovisionados dos máquinas virtuales en Azure con la ayuda de Vagrant y Ansible, una de ellas contendrá nuestra aplicación y la otra servirá para almacenar la base de datos de esta. Para más información consulte este documento.

Licencia

Este software se desarrollará bajo la licencia GNU General Public License v3.0