Repositorio del proyecto de Cloud Computing por Felipe Peiró Garrido
99
Estación meteorológica local en Granada
El proyecto a desarrollar trata sobre un servicio por el cual se monitorizan sensores relativos a la climatología. Tiene como fin la realización de previsiones meteorológicas y el análisis del efecto invernadero en Granada, así como la medición de la calidad del aire en sensores repartidos por la capital. Cada día existen mayores normativas a cumplir para paliar el efecto invernadero, así como las referidas a la salud de los vecinos limitando la presencia de determinados gases en el aire. Este contará con las siguientes funcionalidades:
El proyecto consiste en la creación de distintos microservicios que se interconectan entre sí. Estos harán uso de una base de datos donde se almacenarán sensores de distintos tipos (velocidad del viento, temperatura,...) así como los valores que toman. Se utilizará además la API de Google destinada a la elaboración de gráficos mediante la cual realizar representaciones gráficas de los datos almacenados (del valor actual y de los últimos valores). Elaborando de esta manera distintos gráficos para cada uno de los tipos de sensores:

El proyecto constará además de aislamiento de datos, motivo por el cual cada uno de los sensores y gráficas solo podrán ser accedidos por el usuario que los ha creado, y por un sistema de alertas para indicar si un sensor ha tomado o no un valor inesperado.
La realización de este proyecto se elaborará con Node.js utilizando el microframework Express.js 4. Con ellos se desarrollarán microservicios que usará el cliente de manera dinámica. La elección de una arquitectura basada en microservicios se debe a la fácil escalabilidad y al bajo acoplamiento que ofrece. Estos realizarán las siguientes funcionalidades:
Para la comunicación con los clientes que se conecten al microservicio se realizan servicios REST, obteniendo de esta manera la información a través de comunicación HTTP.
Para la comunicación entre los microservicios se necesita, en cambio, un software de negociación de mensajes (broker). En este caso se hará uso de AMQP 0-9-1, la implementación de RabbitMQ en Node.js.
El microservicio ha sido puesto en marcha a través de Heroku. Para visitarlo puede hacer click en el siguiente enlace:
A través de Ansible se ha provisionado una máquina virtual para el servicio. Esta ha sido creada a través de Azure con la dirección IP: MV: 40.114.90.106 . Ahí será realizado el despliegue donde estará listo el servicio.
He probado y verificado que el proyecto de @xenahort funciona correctamente así como @gomezportillo ha probado el mío. Se puede encontrar más información de estas pruebas aquí.
Haciendo uso de la interfaz de línea de comandos de Azure se ha realizado un ejecutable shell (disponible en la carpeta automatizacion) que permite la creación automática de máquinas virtuales asi como su provisionamiento. La dirección IP de la máquina virtual utilizada es MV2: 168.62.37.56 . Para más información se puede consultar la sección al respecto.
Se ha hecho uso de Vagrant para la orquestación de máquinas virtuales. En la carpeta orquestacion se encuentran los archivos necesarios para llevarla a cabo. Se debe ejecutar el comando vagrant up --provider=azure el cual iniciará la serie de tareas que se encuentran en el Vagrantfile. La dirección IP de la máquina virtual donde se ha desplegado la orquestación es Despliegue Vagrant: 51.140.67.10 . La documentación correspondiente a la orquestación se encuentra aquí.
Para poder ejecutarlo se debe tener Node.js instalado y realizar los siguientes comandos en el Terminal de Linux o en el CMD de Windows.
$ git clone https://github.com/fpeiro/CC-proyecto.git
$ cd CC-proyecto
$ npm install
$ npm start
El microservicio empezará a correr en localhost:5000.
Este repositorio se encuentra bajo la GNU General Public License v3.0.
Content type
Image
Digest
Size
120.8 MB
Last updated
over 7 years ago
docker pull fpeiro/cc-proyecto:basedatos