View on GitHub

CC-proyecto

Repositorio del proyecto de Cloud Computing por Felipe Peiró Garrido

Documentacion del hito 6

En este hito se han realizado las siguientes tareas:

Instalación de Docker

Para la realización de un contenedor con Docker primero hay que hacer su instalación y, tras ello, definir la imagen de la que se va a partir, los archivos que se copiarán y los paquetes que se utilizarán. Para instalar Docker debemos ejecutar los siguientes comandos tal y como se explica en la página oficial:

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

Este comando añade a la lista de repositorios la última versión de Docker y después lo instala desde ahí. De esta manera Docker ya estará instalado en nuestra máquina.

Ahora toca crear el Dockerfile a utilizar. Este documento es el encargado de indicar la secuencia de comandos a realizar para la creación del contenedor. En este caso se van a definir dos, uno para el servicio y otro para la base de datos, los cuales pueden verse aquí. Estos harán uso de Ubuntu, distribución ya utilizada en los hitos anteriores. La configuración de la base de datos, al igual que en el hito anterior, se ha configurado para su acceso desde IPs externas.

Creación de los contenedores

Una vez creados los Dockerfiles es hora de crear sus respectivos contenedores. Para ello se ejecutarán los siguientes comandos desde la carpeta principal del proyecto, que es la que se copiará al contenedor:

$ docker build -t fpeiro/cc-proyecto:basedatos -f contenedores/Dockerfile-basedatos .
$ docker build -t fpeiro/cc-proyecto:servicio -f contenedores/Dockerfile-servicio .

El comando -t especifica el nombre que recibirá el contenedor creado y el comando -f la ruta donde se encuentra el Dockerfile asociado.

Una vez creados los contenedores la lista de imágenes quedará así:

Imágenes de Docker

Tras ello solo queda subir las imágenes haciendo uso del comando docker push NAME[:TAG], siendo NAME[:TAG] el nombre del contenedor a subir. Se nos pedirá identificarnos y tras ello quedará subido a nuestra cuenta de Docker Hub:

Proyecto en Docker Hub

Despliegue en Azure

Ahora se van a desplegar los contenedores en Azure haciendo uso de la interfaz de línea de comandos. Para ello se ejecutarán los siguientes comandos:

$ az group create --name $RES_GROUP --location $LOCATION
$ az container create --resource-group $RES_GROUP --name $DOCKER_NAME --image $IMAGE --dns-name-label $DNS_NAME --ports $OPEN_PORTS

Se ha diseñado un script para automatizar este proceso en nuestro proyecto, el cual puede verse aquí. Tras haberlo ejecutado el servicio estará listo en http://40.81.153.130/

Proyecto en Chrome

Funcionalidad

Se han implementado en este hito las siguientes funcionalidades:

Para cada una de las direcciones URL y funciones implementadas se han desarrollado los tests para comprobar su correcto funcionamiento.

Estructura de los alertas del sensor

Las usuarios poseen los siguientes campos en la base de datos:

Además, se han añadido a los sensores el campo “dueño” que identifica al usuario que puede hacer uso de estos.

Direcciones implementadas

Se han implementado las siguientes direcciones para la realización de las funcionalidades:

Además, ahora el usuario tendrá que identificarse para acceder al resto de direcciones.