Public | Automated Build

Last pushed: 2 years ago
Short Description
Módulo para la gestión de la información de la base de datos de la aplicación Gesco.
Full Description

Gesco-DatabaseManagement

Módulo para la gestión de información de la base de datos de la aplicación Gesco. Publicado bajo licencia GNU GENERAL PUBLIC LICENSE Version 2.

Este proyecto participa en el Certamen de Proyectos Libres de la Universidad de Granada 2015-2016 como parte del proyecto Gesco. Las bases del mismo se encuentran aquí.

Desarrollado por Germán Martínez Maldonado (@germaaan).

Una descripción extendida del proyecto se puede encontrar en este archivo.

Instalación

git clone https://github.com/Gescosolution/Gesco-UserManagement.git
cd Gesco-UserManagement
npm install -g gulp
npm install

Ejecución

Aplicación

  • Modo desarrollo
gulp dev
  • Modo producción
gulp server

Acceso

Despliegue en PaaS

La aplicación ha sido desplegada también en el PaaS Heroku, la información específica sobre el despliegue se puede encontrar en el archivo DEPLOY.md.

Despliegue en contenedores y otras infraestructuras virtualizadas

Además de en Heroku, la aplicación ha sido desplegada en Docker, Azure y Bluemix.

La ventaja de crear un contenedor para una aplicación, es que ese contenedor se convierte en un elemento autocontenido que nos permite desplegar la aplicación fácilmente sin tener que preocuparnos de instalar los recursos o realizar las configuraciones necesarias, todo lo que necesitamos está en el propio contenedor por lo que una vez que descarguemos el contenedor tendremos todo lo que necesitemos para ejecutar la aplicación.

El archivo de configuración de Docker lo podemos encontrar aquí; además, ha sido subido al repositorio de contenedores Docker, podemos encontrarlo en este enlace a Docker Hub.

Para usar este contenedor solo tenemos que descargarlo e iniciarlo.

docker pull germaaan/gesco-dbm
docker run -i -t -p 5000:5000 germaaan/gesco_dbm

Estando disponible si accedemos a la dirección de acceso a la interfaz de Docker para tener acceso a la red y el puerto 5000.

También se ha desplegado en la plataforma de IBM, Bluemix, una plataforma de desarrollo híbrido en la nube orientada al desarrollo DevOps, permitiéndonos un fácil despliegue de nuestra aplicación si esta está realizada en un lenguaje de programación que soporte, en cuyo caso solo tendremos que empujar los archivos de nuestra aplicación a una aplicación que creemos en la plataforma.

La aplicación está accesible desde la dirección http://gesco-dbm-cc.eu-gb.mybluemix.net/.

Por último, la aplicación también se encuentra disponible en Azure, la plataforma de Microsoft que nos permite crear máquinas virtuales y trabajar con ella como si un ordenar local y físico se tratara a diferencia de los PaaS que hemos venido usando. Para desplegar cómodamente la aplicación en esta infraestructura vamos a usar un script de provisionamiento, en concreto vamos a usar la aplicación Ansible para de forma automática instalar en la máquina todos los recursos que necesita nuestra aplicación. El archivo de configuración del provisionamiento se puede encontrar aquí.

El despliegue en Azure está disponible en la dirección http://gesco-dbm-cc.cloudapp.net/.

Otra ventaja de usar provisionamiento, es que si quisiéramos hacer una prueba local debido a que no disponemos de acceso a una máquina virtual en la nube, podríamos crear una máquina virtual con Vagrant y provisionarla con el playbook de Ansible, para ello solo tendríamos que crear el archivo de configuración de nuestra máquina Vagrant, el Vagrantfile.

Estado de la aplicación

El estado actual de la aplicación es el siguiente:

El acceso a cada una de esas direcciones hace una petición GET al servidor Express de nuestra aplicación, respondiendo este de la forma adecuada según la programación que le hayamos indicado. En la práctica totalidad de los casos esta respuesta consiste en que se hace una consulta de información a la base de datos y la información obtenida se representa en el navegador de distinta forma en función del servicio solicitado: tabla HTML, gráfico de barras o documento PDF.

Docker Pull Command
Owner
germaaan