En este hito se va a describir el despliegue de la infraestructura virtual realizado para la aplicación en el cual se han usado todas las tecnologías que se han ido tratando en los puntos anteriores.
La aplicación está dividida en varios microservicios para los cuales se han usado maquinas virtuales distintas adaptadas a cada uno de ellos.
En primer lugar tenemos el servicio de "Categorias","Gestión de contenidos de noticias" y "Gestión de estadísticas".
Para "Gestion de contenidos de noticias" y para "Categorias" se va a usar mLab puesto que se van a usar bases de datos de MongoDB por lo que hay que instalar la libreria de mlab.
Mientras que para la "Gestión de estadísticas" se va a usar una base de datos de MongoDB y la libreria ploty para generar los gráficos.
Finalmente para el Bot se ha usado papertrail, por lo que las librerias necesarias para el uso del sistema de log, vienen instaladas por defecto en python, por lo que no es necesario instalarlas.

Se ha usado una maquina Ubuntu 16.04 de AWS como se muestra a continuación:

Inicialmente creamos nuestra cuenta en mLab para usarla como servicio externo puesto que va a servir para almacenar nuestra base de datos de MongoDB.
Los pasos a seguir son muy simples, tras logearse como usuario solo hay que selección la creación, elegir el Cloud Provider que en mi caso va a ser Amazon Web Services (AWS), elegir la región y finalmente insertar el nombre que queremos para la base de datos en mi caso "lecrinbot".
Las acciones realizadas se muestran en las siguientes capturas:

En esta captura podemos comprobar que nuestra base de datos ha sido creada correctamente.

Se ha de mencionar que para conectar la base de datos del microservicio, se ha de copiar el enlace que se nos facilita de conexión en el código del microservicio usando mongoengine de MongoDB.
Por lo que finalmente creamos nuestro fichero Dockerfile el cual contendrá lo siguiente:
FROM frolvlad/alpine-python3
MAINTAINER Maria Victoria Santiago Alcala <[email protected]>
RUN pip install --upgrade pip
RUN pip install PyMongo
RUN pip install pyTelegramBotAPI
RUN pip install mongoengine
Se han creado tres contenedores, uno para el bot otro para las "Categorias"y la"Gestión de contenidos de noticias" que al tener las mismas tecnologias se va a hacer igual y otro para la "Gestion de estadísticas.
Finalmente tendremos nuestro repositorio en DockerHub:

Pare llevar a cabo el provisionamiento se ha usado Ansible y puesto que las máquinas virtuales que se van a usar van a tener distintas tecnologías se van a crear varios playbook.yml
A continuación se muestra un pequeño frangmento de uno de los playbook:

Tras haber realizado el provisionamiento con Ansible, damos paso a usar Vagrant con este playbook.yml con el fin de provisionar las máquinar virtuales cada una con el suyo.
Se ha de mencionar que dichos playbook va a ser el que nos instale Docker con todos sus paquetes.

Y cada uno de los playbooks aqui y el Vagrantfile.
Finalente ya solo tenemos que hacer en la consola vagrant up --provider=aws para desplegar todas las máquinas.






Content type
Image
Digest
Size
169.3 MB
Last updated
over 9 years ago
docker pull stiago/lecrinbot-bot:bot