Anda di halaman 1dari 12

Grupo SI

Anlisis Componentes
Plataforma WEB
Propietarios: Grupo SI
Autor Anlisis: Sergio Diaz
Anlisis Plataforma web Grupo SI

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

1 Introduccin
El presente documento tiene como objetivo presentar el anlisis de la estructura general la
cual pretende mostrar la funcin de la aplicacin web de Grupo SI, para el anlisis del sistema
que se presentara a continuacin se realizaron las siguientes tareas.

Anlisis base de datos (Postgres)


Anlisis del cdigo fuente (Ruby On Rails)
Anlisis del contenedor donde corren los aplicativos (Docker)
Integracin continua (Jenkins)

1.2 Alcance
En el alcance del proyecto se tuvo como objetivo poder comprender el comportamiento de la
aplicacin web.

Duplicar el sitio web y poner a correr simultneamente la aplicacin web para poder
brindarle el producto a diferentes usuarios en la cual se realiz una prueba para que
cada usuario tenga su propia plataforma web.
Ingresar a la base de datos donde se almacena la informacin del sistema y poder
modificar su informacin desde la base de datos que corre en el sistema.
Configuracin de la integracin continua entre Jenkins y los contenedores de datos
(dockers) ya que esta parte es muy importante para entender su operacin. Ya que es
capaz de habilitar o inhabilitar la plataforma web entre sus caractersticas ms
importantes es enlazar el contenedor donde corre la base de datos.

2. Diagrama estructura plataforma WEB


En el siguiente diagrama se podr comprender la relacin entre los componentes que hacen
que la aplicacin web funcione correctamente.

Entre los cuales estn:

El server alojado en la nube el cual est alojado www.OceanDigital.com, en dicho servicio


corre la siguientes configuraciones: server corre bajo el sistema operativo Linux , en el cual se
configuro la tecnologa docker, la tecnologa docker tiene como objetivo empaquetar cada
aplicativo y que pueda ser portable y poder alojar dentro de cada contenedor un aplicativo
diferente, en nuestro server corren tres contenedores uno para base de datos, otro en el cual
corre Jenkins y un contenedor donde se ejecuta el cdigo fuente del aplicativo.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

2.1 Enlaces entre los contenedores Docker

Como se mencionaba en el punto anterior para su funcionamiento en la nube se utiliza


contenedores, esto es gracias a la tecnologa que nos brinda docker, para la comunicacin
entre los 3 container que corren en el servidor se utiliza una herramienta que nos brinda
docker, la herramienta que se utiliza para realizar los enlaces y que estos se pueden comunicar
entre s , se llama compose esta herramienta nos ayuda a correr multi-containers y as es como
se logra la comunicacin entre los multi-dockers.

2.2 diagrama funcionalidad compose entre los contenedores

WEB

Jenkins Ruby on
Rails

BD

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

2.3 Diagrama general App WEB


En el siguiente diagrama se podr observar la relacin entre cada tecnologa o herramienta la
cual nos brinda el funcionamiento correcto de la aplicacin clima laboral.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

3 Base de Datos
La aplicacin web tiene conexin hacia una base de datos relacionada a la aplicacin la cual
realiza una conexin hacia POSTGRESSQL donde el usuario puede consultar o guardar datos.
La base de datos corre en un contenedor con el nombre Postgres. En el contenedor corre la
base de datos GIS_PRODUCTION, la cual contiene una coleccin de tablas donde se
resguardan los datos de la aplicacin, la base de datos tiene un total de 25 tablas.

En el contenedor de la base de datos estn corriendo 3 bases de datos cuya base principal es la
que conecta la aplicacin web es a la base de datos de gis_production. Las otras dos tablas son
por default que las incluye el motor de PostgresSql.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

3.1 Entidad Relacin base de datos GIS_PRODUCTION PostgresSql

En la siguiente imagen se podr observar la entidad relacin de las tablas las cuales se alojan
en la base de datos gis_production las cuales hacen uso la aplicacin que corre bajo Rails.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

4. bitbucket

Grupo Si cuenta con un repositorio de datos en bitbucket en la cual hace uso para tener
alojado el repositorio de datos (Cdigo fuente) de la aplicacin Web,
La cuenta de bitbucket tiene una conexin hacia el servidor donde corre el container donde se
ejecuta Rails, los pasos que se siguen en la conexin y la rplica del repositorio donde se
ejecuta el container con la app desarrollada en Ruby on Rails es la siguiente:

1. Obtiene el cdigo fuente desde el repositorio de bitbucket


2. Compila la imagen con un script alojado en $DOCKERHOME/bin/docker
colocando la nueva versin obtenida del repositorio
3. Detiene la imgenes de la aplicacin y base de datos que se estn ejecutando
(gsieco, postgres)
4. Escribe al nuevo archivo docker-compose.yml la configuracin de las nuevas
versiones recin compiladas
5. Inicia la imagen en base a la configuracin de docker-comp0se.yml.

Los pasos mencionados anteriormente son los que se ejecutan cada vez que se necesita
realizar un cambio en la lgica de la app.
Todo cambio que se desea realizar el cdigo fuente tiene que estar en el repositorio de datos
bitbucker.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

5. Jenkins
La aplicacin Web est conectada con la tecnologa Jenkins (Software de mejora continua) la
cual tiene el control en el servidor de pausar o levantar los servicios que corren en el servidor,
Jenkins puede hacer uso de la base de datos gis_production la cual se menciona en el
apartado 3 del documento.

Cada vez que se pausa, levanta el servicio o se construye una nueva App en el servidor por
medio de Jenkins se realiza los siguientes pasos. Tomando en cuenta que utiliza las siguientes
herramientas y tecnologas DOCKER, COMPOSE, POSTGRESSQL.

1. Pausa o levante el servicio (Segn sea el caso)


2. Compila el cdigo fuente del proyecto que se encuentra en bitbucker realiza la
conexin hacia la cuenta y obtiene el cdigo y coloca la nueva versin en el
container.
3. Construye la imagen de docker y levanta el container donde se ejecutara la
app.
4. Realiza un compose para enlazar el container de docker.
5. Hace conexin al container donde corre la Base de Datos y crea la imagen
partiendo desde la imagen postgres:9.4 (writeFile encoding: 'UTF8', file:
'/opt/eco/demo/docker-compose.yml', text: """db:).

6. Todos los pasos anteriores fueron satisfactorios el sitio puede ser accedido
desde internet, y si fueran insatisfactorios Jenkins dar un aviso en cul de los
pasos fallo y no se podr acceder va internet.

La mejor forma de administrar el servidor si no se tienen conocimientos en consola de Linux es


conectarse directamente a Jenkins tal aplicacin corre en el puerto 8080 de la ip o dominio
asignado a la aplicacin web por ejemplo demo.gsieco.com/8080.

A continuacin se mostrar los script con los cuales se ejecuta los pasos anteriormente
mencionados.

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

5.1 Script el cual ejecuta cada vez que se crea una nueva app

5.2. Ejemplo del archivo docker-compose.yml

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

6. Conclusiones

Con la informacin anteriormente brindada es posible seguir con el desarrollo de la


plataforma web ya sea que se deba agregar mdulos o darle mantenimiento a la plataforma.
Ante cualquier requerimiento para desarrollar mdulos y agregarlos a plataforma web es
necesario analizar si se apega a la plataforma o si es necesario hacer un desarrollo por
separado y realizar una unificacin al terminar el desarrollo.

Por otro punto es posible de agregar y crear diferentes sitios web basados en el sitio de
http://demo.gsieco.com mantener en lnea o botar las plataformas, limpiar las bases de datos.

6.1 Sugerencias

En el anlisis que se realiz a la aplicacin web, se logr observar que es necesario crear un
container, en el cual correr una app la cual permite visualizar y tener un mejor control sobre
Docker esta aplicacin convierte docker en interfaz grfica (GUI), la funcionalidad que nos
brinda son. Nos permite ver los contenedores que corren en el servidor los puertos con los
cuales escuchan, nos permite eliminar y crear imgenes todo lo mencionado se puede realizar
por medio desde una aplicacin web y cualquier usuario podr controlar docker sin
conocimientos de Linux y sin conocimientos especficos de docker tambin nos mostrara
grficos de uso del server.
Esto servira para mantener un mejor control sobre el servidor ya que en este momento para
controlar docker hay que ingresar al server por medio de consola y utilizando SSH de Linux.

Para poder observar la funcionalidad de lo mencionado pueden ingresar al siguiente link.

https://www.docker.com/products/docker-kitematic
https://github.com/kevana/ui-for-docker

Propietarios: Grupo Si Anlisis: Sergio Diaz


Anlisis Plataforma web Grupo SI

7. Partes interesadas

Nombre Rol

Lic. Miguel Guillen Grupo SI

Licda. Mara Pilar Sierra Grupo SI

Christian

Sergio Diaz Analista Programador

Propietarios: Grupo Si Anlisis: Sergio Diaz

Anda mungkin juga menyukai