Está en la página 1de 9

Diseño e Implementación de una Infraestructura Auto escalable y de Alta

Disponibilidad para asegurar la calidad de Aplicaciones Web. Caso de estudio:


Universidad Nacional Mayor de San Marcos

Geinner K Tucto-Huaripata, Luis A Alarcón-Loayza


Facultad de Ingeniería de Sistemas e Informática, Universidad Nacional Mayor de San Marcos, Lima, Perú
geinertucto@gmail.com, lalarconl10@gmail.com

Resumen: El desarrollo de aplicaciones web aumentó considerablemente en los últimos años debido a sus grandes ventajas
respecto a las aplicaciones desarrolladas para entornos de escritorio. Sin embargo hoy en día muchas de las aplicaciones se
ven afectadas ante la aleatoria concurrencia de usuarios que en situaciones especiales ocasionan picos de demanda y
sobrepasan la capacidad del hardware en donde se ejecutan, trayendo serias consecuencias como: largos tiempos de
respuesta y baja disponibilidad. Por ello el presente trabajo se enfoca en el diseño e implementación de una infraestructura
auto escalable para asegurar alta disponibilidad y alto rendimiento de las aplicaciones web de la UNMSM. Con esta finalidad
se realizó inicialmente una investigación de la literatura para conocer los avances en diferentes contextos del tema, luego se
analizaron las necesidades de las aplicaciones a ser soportadas por esta infraestructura. Con ello se procedió a definir y
seleccionar herramientas para diseñar, implementar y validar la infraestructura. Como resultado se logró una infraestructura
auto escalable cumpliendo los atributos de calidad planteados en la ISO 9126-1 y brindar alta disponibilidad y mejor calidad
de servicio a los usuarios de la UNMSM. Con esta solución hemos concluido que para que las aplicaciones web logren tener
alta performance mucho dependerá del buen diseño de la infraestructura que la soporta.

prevista y hoy en día se ven afectadas las aplicaciones, al no


ofrecer los niveles de servicio que demandan los usuarios.
1. Introducción
En la última década la UNMSM viene utilizando Considerando que las aplicaciones ya se encuentran
sistemas web debido a que estos ofrecen servicios en línea desarrolladas y funcionando en producción, el presente
con diferentes propósitos y poseen grandes ventajas con artículo resume una propuesta de solución que permita
respecto a las aplicaciones desarrolladas para entornos de implementar una infraestructura auto escalable para aumentar
escritorio, como portabilidad, accesibilidad, desarrollo el rendimiento y disponibilidad de las aplicaciones existentes
multiplataforma, etc. Estos sistemas son desplegados en y de los futuros sistemas que se implementen en la UNMSM.
servidores que permiten que los usuarios finales puedan El presente trabajo de investigación está organizado de
realizar sus actividades con normalidad; sin embargo en la siguiente manera: en la sección II se presenta la revisión de
algunos de estos la demanda de transacciones usuarias la literatura realizada. En la sección III se presenta el aporte
aumenta periódicamente, esto provoca que los sistemas que contiene la metodología, arquitectura y herramientas para
mencionados sufran de intermitencia, baja calidad de implementar la solución propuesta. La sección IV
servicio, baja disponibilidad, alto consumo de recursos, revisaremos las validaciones realizadas con la finalidad de
largos tiempos de respuesta, etc. Esto a su vez trae corroborar el cumplimiento de los objetivos propuestos del
consecuencias más relevantes como la baja confiabilidad de trabajo. Finalmente en la sección V presentaremos las
los usuarios finales y desprestigio del área informática de la conclusiones.
organización. Ante los sucesos mencionados anteriormente,
los administradores de estos sistemas evitan o simulan 2. Estado del Arte
arreglar la situación aumentando recursos de hardware en
exceso ante los picos de demanda y/o realizando un El objetivo principal en esta sección es la revision de
la literatura existente relativa a Metodologías, Arquitecturas
mantenimiento ante las caídas de estos servicios. Sin embargo
y Herramientas de software para el diseño e implementación
se trata de una manera muy costosa y de una tarea en la cual
de Infraestructuras auto escalables y de alta disponibilidad
se emplea mucho tiempo, para el área tecnológica, y peor aun
que resuelvan el problema. Se analizarán aquellas que se
cuando esto afecta a los usuarios ya que durante ese lapso de
tiempo los sistemas se encuentran no disponibles. Es de vital utilizaran como base para el desarrollo de la propuesta que se
importancia la alta disponibilidad de algunas aplicaciones que plantea.
son el core del negocio. Por ejemplo en la UNMSM, la
disponibilidad que debe tener el Sistema Único de Matrículas 2.1. Metodologías
(SUM) durante épocas de matrícula. En la literatura revisada cada autor utiliza una
metodología específica para definir e implementar su
En algunas aplicaciones web de la UNMSM los propuesta. En [1] Sanmiguel A. Gutiérrez, utiliza el modelo
requerimientos no funcionales (atributos de calidad o en cascada como metodología para desarrollar el sistema de
restricciones del producto) no han sido tomados en cuenta, alta disponibilidad, esta metodología ordena rigurosamente
es por ello que la infraestructura para alojarlas ha sido mal las etapas del proceso de desarrollo, de este modo cada etapa

1
debe esperar la culminación de la etapa anterior. Con esta Para elegir la metodología a utilizar en este trabajo, se realizó
metodología se ha logrado cumplir los objetivos expuestos en una evaluación comparativa de las metodologías
el estudio de viabilidad; sin embargo la planificación se ha mencionadas, como se indica en la siguiente cuadro (ver
visto truncada a último momento puesto que la fecha de Tabla I) decidiéndose utilizar la metodología Top Down en la
entrega real es posterior a la deseada, esto debido a la poca fase de desarrollo de la solución, también se decidió
flexibilidad que brinda dicha metodología. combinarla con técnicas experimentales y comparativas que
nos permitan validar nuestra solución.
Otra metodología típica para este tipo de temas es la
experimental usada en [2] por Alfredo Miguez, que es
Tabla 1 Evaluación de las Metodologías
complementada con metodologías comparativas y
estadísticas. El combinar estas metodologías le ayuda a Combinación
Alfredo Miguez probar y validar la solución que él propone. Factor de Top (análisis,
N° Cascada Cuantitativa
El método cuasi experimental es particularmente útil para Análisis Down comparativa,
estudiar problemas en los cuales no se puede tener control estadística)
Adaptable sobre
absoluto de las situaciones, pero se pretende lograr el mayor 1 cualquier 3 2 3 2
control posible. Algunas de las técnicas mediante las cuales proyecto
se puede recopilar información en un estudio cuasi 2 Flexibilidad 1 2 3 2
experimental son las pruebas estandarizadas, las entrevistas, Comunicación
3 2 3 2 3
las observaciones, entre otras. con el cliente.
Tiempo en el
Luis Felipe y Darin Jairo utilizan una metodología en 4 2 2 3 3
análisis y diseño
[3] que busca proponer una solución para pequeñas y 5
Tiempo en
2 2 3 2
medianas empresas basada en una arquitectura de alta construcción
disponibilidad y tolerancia a fallos; en esta investigación se 6 Monitoreo 2 0 3 0
basan fundamentalmente en el concepto de redundancia, con Facilidad de
7 3 2 3 1
seguimiento
la cual buscan duplicar sus elementos críticos y disponerlos
TOTAL 15 13 20 13
de manera redundante ya sean elementos de software o
*Elaboración Propia
hardware que cooperan entre sí. Para realizar el desarrollo
del trabajo los autores utilizan una metodología Top Down,
2.2. Arquitecturas
la cual guía el diseño de soluciones empresariales basadas en
redes confiables, seguras y administrables; la estructura de la Cali Nieto Fabián Vinicio en [5] determina que es
metodología se muestra en la Fig. 1. necesario implementar un clúster a nivel de servidor de
aplicaciones el cual contara con un balanceo de carga. El
balanceador de carga se encargara de distribuir las peticiones
HTTP y recibir respuestas directamente. Cuando el
balanceador de carga direcciona una petición desde un cliente
al nodo A, el servidor inicia una sesión y todas las futuras
peticiones asociadas con esta sesión deben ser direccionadas
al nodo A. La replicación de estado es manejada por el
servidor de aplicaciones JBoss.
Alfred Gutiérrez en [1] indica que el clúster debe tener un
sistema de comunicación, el software del clúster. Entre hosts
para su correcta monitorización, así como un método para
abstraer los servicios de un host concreto, cosa que permite
que se desplacen entre diversos nodos de manera transparente
para la aplicación y los usuarios. Para el presente trabajo la
configuración de los nodos en clúster está realizada de modo
activo/pasivo. En esta configuración todos los nodos del
clúster pueden ejecutar los mismos recursos simultáneamente
de modo que si uno falla y deja de estar disponible, sus
Fig, 1 Metodologia Top Down recursos siguen estando accesibles a través de los otros nodos
del clúster.
En [4] Mireles, Jhonangel y Maldonado, Javier en noviembre
del 2014, tiene por finalidad diseñar un clúster orientado a La arquitectura que plantea Lenin Alcántara en [6] está
servicios para aplicaciones web en la Universidad Nacional conformada por un nodo master o nodo maestro, conocido
Experimental del Táchira y Para lograr el objetivo se como server1, nodo Standby que actúa como suplente del
emplearon metodologías cuantitativas y se aplicaron una serie master y nodos de cómputo (esclavos), nodos esclavos cuya
de casos en un ambiente de prueba; así como también, se función principal es servir las páginas web del clúster. Al
analizaron ciertas métricas sobre el clúster formado por un finalizar esta implementación de un Clúster de Alta
grupo de nodos de base de datos y un grupo de nodos Disponibilidad con Equilibrado de Carga, se da por sentada la
frase que dice: “Mientras más, mejor”, lo cual creemos que es
servidores web, en una arquitectura orientada a la alta
bastante subjetivo y no necesariamente tiene que ser así.
disponibilidad. Los valores obtenidos demostraron que
existen métricas en las que la utilización del clúster se traduce La arquitectura que plantean en [7], para realizar la
en mejores resultados. solución de alta disponibilidad consta de dos servidores, en
cada uno de estos servidores físicos se encuentran 2 servidores
2
virtuales, uno para la base de datos y otro para las aplicaciones. millones de sitios web estaban usándolo en el año 2013,
Los dos servidores de bases de datos instalados conforman el además de ser un software robusto, con muchas
clúster de base de datos los cuales tienen una IP en común características y de libre disposición e implementación del
denominada IP virtual, a través de la cual los servidores web código fuente. Jhonangel y Javier vieron la necesidad de
se conectan a ellas. Los otros dos servidores web forman el utilizar un software que prestara servicios de Corta Fuegos
clúster de servidores web, que de igual modo tienen una IP (Firewall) y Puerta de enlace (Gateway). Para ello, se
virtual que permite que los clientes puedan acceder a los seleccionó una distribución basada en Linux, Firewall. El
servicios web. sistema operativo seleccionado fue Ubuntu y para el diseño
En [8] Acero Quilumbaquin descarta implementar un de la arquitectura del clúster se vio necesario la utilización de
clúster de tipo activo/pasivo y de failover compartido, ya que un componente de software cuya principal característica fuera
se desperdicia recursos en ambos casos. En cambio en clúster el balanceo de tráfico, por ellos se seleccionó HA Proxy en su
de tipo activo/activo, todos los nodos del clúster se encuentran versión 1.5.
trabajando y son capaces de ejecutar recursos y a la vez En [6], Lenin elije Ubuntu 12.04 LTS Server Edition
funcionar como respaldo en caso de que alguno falle. debido a que tiene gran flexibilidad de configuración. Un
Como lo dijimos desde el principio el aporte del presente aspecto interesante que se realiza Lenin es el uso de Scripts
trabajo de investigación es la revisión de las literaturas y según Bash en el proceso de instalación de los sistemas y
eso tomar lo mejor de cada literatura revisada y mejorar las aplicaciones, el uso de estos scripts hace que la instalación se
soluciones que se han venido dando hasta el momento, por ello haga de una manera desatendida y automática. En los
para la elección de la arquitectura de nuestra solución hemos servidores esclavos se ha instalado Apache. Esta
combinado las que se presentaron anteriormente y hemos infraestructura está bajo el software de virtualización Oracle
evaluado la mejor, con la finalidad de dar la mejor solución al VM Virtual Box. Para conseguir la configuración correcta de
problema planteado. En la fig. 3 se puede observar de manera Alta Disponibilidad con Equilibrado de Carga, instalamos los
general la arquitectura que tomaremos en nuestra solución, la paquetes corosync, pacemaker y ldirectord en ambos
cual básicamente utiliza virtualización de servidores y directores (Master y Standby).
balanceo de carga, el nodo principal y la réplica de este será Katherine Campos realiza una comparación en [6] para
del tipo activo-activo. poder escoger la solución más adecuada, por un lado compara
del escenario el servidor físico tiene Sistema Operativo
Windows Server 2012, luego se instaló Hyper-V como
virtualizador. En el otro escenario el servidor físico tiene
instalado el sistema operativo Fedora 20, luego se instaló el
hipervisor Xen Server, los servidores virtuales de ambos
servidores tienen Centos 6.5 como sistema operativo. La
elección luego de las pruebas que se realiza en la presente
investigación fue la segunda opción (Fedora, Xen server y
Centos 6.5). Para que exista comunicación entre los
servidores y teniendo en cuenta la compatibilidad, fue
necesario el uso de un software de monitoreo a través de la
técnica de heartbeat. Para la solución de alta disponibilidad el
Fig. 2 Arquitectura de la solucion autor decide realizar una evaluación de las tecnologías
conformadas por Pacemarker, Corosync y CMAN contra el
2.3 Herramientas tecnológicas complemento de alta disponibilidad de RedHat Clúster.
En las literaturas revisadas los autores han trabajado con Nuevamente vamos a escoger lo mejor de cada literatura
distintas herramientas para lograr la solución al problema que presentada, para esto se ha evaluado la plataforma de
plantean, la mayoría de estas herramientas son software los virtualización, sistema operativo, contenedor de aplicaciones,
cuales permiten y facilitan ciertas cosas como el balanceo de balanceo de carga y software de alta disponibilidad. Luego de
carga, virtualización, etc. Vamos a revisar lo más relevante nuestra evaluación las herramientas escogidas son las que
de lo encontrado. aparecen en la Fig. 3.
En [5] para lograr el balanceo de carga es implementado
utilizando la plataforma mod_jk el cual es un módulo de
Apache Tomcat, el servidor de aplicaciones es un Jboss el
cual corre sobre un Red Hat Enterprise que tiene incluido
Open JDK versión 6.
Alfredo Miguez en [2] realiza una evaluación de las
distintas distribuciones de Linux en la cual selecciona Centos
en su versión 5, ya que es de libre costo y se adapta a su
solución, la elección del proxy también es de suma
importancia para Miguez y se basa en que sea compatible con
el Centos elegido, Miguez plantea en su trabajo la utilización
de Heartbeat la cual es una herramienta que le permitirá Fig. 3 Herramientas seleccionadas
mejorar la alta disponibilidad.
En la referencia [4] el servidor web seleccionado fue
Apache HTTP en su versión 2.2 de la fundación de software
Apache, ya que es el más utilizado en Internet, con más de 10
3
2.4. Propuesta de la metodología y su personalización El tercer paso realizado es el análisis, que esta aplicado a
Como ya se mencionó anteriormente la metodología que la organización escogida. En este paso vamos a conocer a más
se utilizara en nuestra solución será Top Down, así que vamos detalle la organización con la que estamos trabajando, para
esto recolectaremos información de las actividades, servicios,
a personalizarla con la finalidad de adaptarla para nuestra
recursos, modalidad de trabajo, software que utiliza,
comodidad. En el presente trabajo se ha detallado y descrito
problemas que se presentan, etc. Luego de haber recolectado
las fases y actividades que serán parte de la metodología. Ver la información de manera general vamos a enfocarnos en
Fig. 4. realizar dos actividades importantes, las cuales son analizar su
servidor de aplicaciones y analizar las aplicaciones de la
organización.

Fig. 5. Diseño de investigacion

Fig. 4. Metodologia Top Down personalizada El cuarto paso es diseñar la arquitectura, tomando en
cuenta la información recolectada en el paso anterior. Para
3. Aporte realizar esta fase vamos a realizar las siguientes actividades:
En este apartado vamos a presentar el aporte propuesto en  Información relevante de las aplicaciones de la
el presente trabajo de investigación. Para mostrar el aporte organización
conseguido primero vamos a revisar el diseño de investigación
que hemos realizado, el cual consta de procesos y actividades  Evaluación del nivel de criticidad de las aplicaciones
que ayudaron a conseguir nuestro objetivo. Cabe resaltar que  Definir políticas para la distribución de aplicaciones
el presente trabajo ha sido desarrollado tomando como caso de en los nodos
estudio el área Sistema Integrado de Gestión Financiera
(SIGF), que es el área de TI encargada de brindar servicios  Distribución de aplicaciones y diseño de los nodos
financieros a toda la Universidad.
 Supuestos y dimensionamiento de los nodos
3.1. Diseño de Investigación En el quinto paso vamos a poner manos a la obra, para
La Fig. 5 muestra el diseño de investigación que se ha empezar con el desarrollo de nuestra solucion vamos a tomar
realizado en el presente trabajo. El primer paso de nuestra como referencia el diseño realizado en el paso anterior.
investigación es la revisión del estado del arte, en el cual Primero vamos con la creacion y configuracion de maquinas
básicamente se revisaron literaturas referentes al problema virtuales, cada maquina virtual se convertira en nuestros
planteado. Este paso es la base de nuestro trabajo ya que nos nodos, de la solucion. A estas maquinas virtuales vamos a
muestra las investigaciones y aportes que se han realizado tratarlas como un servidor independiente por ellos vamos a
recientemente en el ámbito de infraestructura y aplicaciones instalarle el sistema operativo y configurarlo correctamente
web. Para tener una visión más adecuada nuestra revisión la para su buen funcionamiento. luego vamos a instalar y
hemos dividido en revisión de metodología, arquitectura y configurar el contenedor de aplicaciones y finalmente vamos
herramientas tecnológicas, que serán los componentes de a instalar y configurar el balanceador de carga que es el core
nuestra solución. de nuestra solucion. Al finalizar este paso vamos a tener
nuestra infraestructura funcionando, lista para probarla y
El segundo paso realizado es la evaluación y selección de validarla.
los componentes de nuestra solución, en este paso hemos
tomado la información recogida del estado del arte, ya que En este paso la aplicación se encuentra funcionando en
habiendo hecho la revisión componente por componente, nos fase de pruebas, esto nos servirá para recolectar información
fue más fácil evaluar cuáles han sido los mejores aportes de del comportamiento de la solución. Vamos a tomar esta
las literaturas revisadas. Para realizar nuestra evaluación información para validar la solución implementada, dicha
hemos definido criterios y puntajes relacionados, el puntaje solución deberá cumplir las características de calidad de la
más alto será el componente con el que se trabajó nuestra ISO 9126, Fiabilidad, Eficiencia y Portabilidad, por ellos
solución. Una vez seleccionados los componentes se ha vamos a enfocarnos en esos puntos.
propuesto la solución a groso modo, esta solución será
adecuada a la organización a la que se aplique el presenta
trabajo, la adecuación es posible siguiendo los pasos
siguientes.

4
3.2. Aporte - General nodo redirigir la petición, como la última petición fue
El aporte del presente trabajo es una infraestructura auto direccionada al nodo 1, esta vez HA Proxy tendrá que re
escalable que resuelve el problema de la inestabilidad de direccionar al nodo 1-replica ya que es el que tiene menos
aplicaciones web en la UNMSM, esta infraestructura brindara carga en ese momento. Así sucesivamente será el
soporte tanto para las aplicaciones existentes como para las funcionamiento del balanceador de carga. Los nodos son
nuevas, proveerá al software tres características de calidad de capaces de escalar verticalmente sus recursos gracias a la
la ISO 9126 (fiabilidad, eficiencia y portabilidad). La Fig. 6 virtualización que utiliza solo los recursos necesarios en un
muestra el aporte que hemos realizado. determinado instante, también es posible escalar
horizontalmente ya que de agregar un nodo, simplemente
bastaría con agregar una línea a la configuración del
balanceador de carga y el nuevo nodo entraría en
funcionamiento aliviando aún más la carga de los nodos
correspondientes.
En casos de que uno de los nodos falle, el balanceador de
carga va a reconocer que uno de los nodos está fallando y
todas las peticiones serán re direccionadas al único nodo que
queda. En caso de que ambos nodos no estén disponibles
entonces el nodo de contingencia entrara en funcionamiento.
Todas las aplicaciones trabajan con una base de datos
centralizada.
Es importante la solución propuesta ya que de esta manera
se ha solucionado la inestabilidad de las aplicaciones web,
hemos brindado características de calidad de software a las
aplicaciones de la organización y además brinda Alta
disponibilidad, tolerancia a fallos, contingencia, fácil
administración, auto escalabilidad, fácil monitoreo, etc.
Consideramos que nuestra solución mejora los aportes de
las literaturas presentados en los últimos años, ya que gracias
a la revisión hemos podido extraer lo mejor de cada literatura
y armar una solución mucho más eficiente y eficaz, otro de
los puntos fuertes de la solución propuesta es la auto
escalabilidad de recursos de manera vertical y la escalabilidad
de manera horizontal. Otro punto por resaltar en el presente
Fig. 6. Mapa del Aporte
trabajo es el modelo de solución que se da a una determinada
organización, gracias a los pasos establecidos en nuestra
Nuestro aporte consiste en proveer una infraestructura
metodología personalizada, esta puede ser aplicada a
auto escalable que brinde performance y alta disponibilidad a
cualquier organización solamente siguiente a detalle nuestras
las aplicaciones que alojan, la solución está compuesta por los
fases y actividades descritas.
siguientes componentes, tenemos nodos (máquinas virtuales)
que pertenecen a un clúster, estos nodos están diseñados para
soportar aplicaciones de cierto nivel de criticidad (alto, medio 3.3. Aporte - Detalles
y bajo), para nuestra solución se han diseñado 3 nodos En esta sección vamos a detallar los componentes del
principales, los dos primeros nodos tienen replicas ya que el aporte presentado.
nivel de criticidad de las aplicaciones alojadas lo amerita. El primer componente de nuestra solución es los
Para el tercer nodo que aloja aplicaciones ligeras no se ha servidores físicos de producción, estos servidores físicos son
considerado replica ya que la carga es baja. Estos nodos la base de nuestra solución ya que son estos los que se
cuentan con un nodo adicional que entraría en virtualizan para poder crear las máquinas virtuales.
funcionamiento en casos de contingencia. Por otro lado la
solución cuenta con un nodo adicional el cual, está diseñado El servidor físico de contingencia es de vital importancia
para permitir la continuidad de las operaciones ante cualquier
especialmente como balanceador de carga y proxy, este nodo
fallo de los nodos principal y replica.
es el que recibe las peticiones y mediante las configuraciones
realizadas en HA Proxy (software de balanceo instalado) es Los nodos principales y replicas alojan a las aplicaciones
capaz de redirigir la petición a los nodos correspondientes. de la organización, estos nodos tienen instalado centos 7 como
Pongamos un ejemplo para la mejor comprensión, sistema operativo y sobre este, el servidor de aplicaciones
supongamos que un usuario desea entrar a una aplicación Apache Tomcat en su versión 7. Cada uno de estos nodos tiene
critica del nodo 1, al ingresar a la dirección correspondiente la seguridad, configuraciones y software necesarios para el
el Ha Proxy recoge la petición y en su configuración le dirá correcto funcionamiento, además tiene automatizadas las
que puede redirigirla al nodo 1 o al nodo 1-replica, el software tareas de levantamiento del servicio de tomcat, esto hace que
decidirá por uno de los dos y la re direccionará; desde ese ante cualquier inconveniente sea necesario reiniciar el
servidor el levantamiento del servicio de las aplicaciones sea
momento el usuario trabajara con una sesión solamente en ese
de manera automática, disminuyendo tiempo e intervención
nodo 1. Ahora supongamos que luego otro usuario desea
manual. La ventaja que tienen estos nodos al estar
entrar a la misma aplicación, igualmente ingresara a la virtualizados es que el consumo de recursos es de manera
dirección y el HA Proxy nuevamente tendrá que decidir a qué eficiente, es decir utiliza los recursos que necesita en ese
5
instante, si en horas pico el nodo necesita más recursos para Por ejemplo para el caso de la organización SIGF el
trabajar y no ver perjudicado el rendimiento de las sistema de planillas es requerido las primeras semanas de
aplicaciones, este nodo va a tomar los recursos del servidor cada mes por lo tanto debe estar altamente disponible para la
físico y cuando baje la cantidad de usuarios este disminuirá correcta continuidad de negocio y en caso de caídas o fallos
también el uso de recursos y los liberará, estos recursos en el sistema el sistema debe tener la capacidad de
liberados podrán ser utilizados para cualquier otra gestión del recuperabilidad y hacerlo en el menor tiempo posible. Para la
host físico. validación de esta característica, vamos a validar cada una de
Los nodos de contingencia son una copia de los nodos sus sub características, las cuales son la madurez,
principales y se encuentran inactivos, la finalidad de estos recuperabilidad y tolerancia a fallos.
nodos es entrar en funcionamiento cuando ninguno de los
nodos, principal y replica, se encuentren disponibles. Estos
4.1.1 Prueba 1 - Forzar la caída de uno de los nodos: La
nodos tienen las mismas características en cuanto a recursos
que el nodo principal, con la finalidad de dar continuidad a las prueba consiste en apagar uno de los nodos donde se alojan
operaciones y no causar problemas. las aplicaciones criticas y vamos a analizar el
comportameinto de la solucion. En la Fig. 7 se puede observar
El nodo balanceador de carga es el componente más que el nodo1 (con IP 188) no se encuentra disponible, sin
ligero y a la vez el más importante de la solución, este nodo embargo la réplica si lo está.
tiene instalado Centos 7 como sistema operativo y sobre él,
HA Proxy que es una solución gratuita, rápida y confiable que Ahora vamos a proceder a tratar de ingresar a alguna de
ofrece alta disponibilidad, balanceo de carga y proxy para TCP estas aplicaciones. Como podemos ver en la Fig. 8, las
y aplicaciones basadas en HTTP. Especialmente adecuado aplicaciones se encuentran funcionando correctamente, la
para los sitios web de muy alto tráfico y bastante visitados. Su caída de uno de los nodos es transparente para el usuario y no
modo de funcionamiento hace que su integración en afecta la continuidad del negocio.
arquitecturas existentes sea muy fácil y sin riesgo. El archivo
haproxy.conf de HA Proxy permite configurar el
comportamiento de nuestro balanceador. Adicionalmente se
puede configurar el HA Proxy para que pueda redirigir las
peticiones de los aplicativos de pruebas u otros.

4. Validación
En este apartado vamos a realizar las pruebas y validación
de nuestra solución. Para esto primero hemos monitoreado y
recolectado información necesaria que nos ayudó a realizar
una comparación del comportamiento de la situación anterior
de la organización y el nuevo comportamiento de la situación
actual, que ya utiliza nuestra solución implementada.
Fig. 8. Prueba de aplicación disponible
Para validar la solución el presente trabajo deberá cumplir
las tres características de calidad establecidas en la ISO 9126 4.1.2. Prueba 2 - Forzar la caída de uno de los servidores (Host
que son Fiabilidad, Eficiencia y Portabilidad. Físico): Para esta prueba vamos a apagar un servidor, en el
cual están creadas las máquinas virtuales (nodos). Y vamos a
4.1. Pruebas para la validación de Fiabilidad analizar el comportamiento de la solución. En la Fig. 9 se
Esta característica de la ISO 9126 se enfoca en el nivel puede ver que al apagar uno de los servidores, el nodo 1 y el
de prestación de servicio libre de fallo durante un periodo nodo 2 no se encuentran disponibles; sin embargo en la Fig.
establecido, es decir el sistema debe estar disponible y 10 se aprecia que las réplicas están disponibles y se puede
funcionando correctamente durante el periodo que es acceder a cualquiera de las aplicaciones. Esto ha sido posible
requerido. debido a que los nodos están ubicados en servidores físicos
distintos.

6
Fig. 7. Caida de un nodo principal
Fig.9. Nodos principales apagados

Fig. 10. Nodos replicas activos


Tabla 2 Comparación de caídas, anterior y actual
4.1.3. Prueba 3 - Comparación de caídas de la situación
anterior y la solución actual: Con la finalidad de validar la CANTIDAD DE CAIDAS
madurez de la solución vamos a comparar la cantidad de
caídas de servicio que se daban en la anterior situación con la PERIODO SITUACION ANTERIOR
SITUACION
cantidad de caídas de servicio que suceden ahora (con la ACTUAL
LUNES 9-10 AM
solución propuesta). Para esto vamos a tomar la información LUNES 3-4 PM
que se recolecto durante el análisis de la situación actual, es SEMANA 5 MARTES 10-11 AM
0 CAIDAS
ese punto se monitoreó dos semanas consecutivas el servidor 1 CAIDAS MIERCOLES 9-10
y nos encontramos con que, hubieron 9 caídas durante esas AM
VIERNES 10-11 AM
semanas. Ahora vamos a monitorear la solución propuesta y
LUNES 10-11 AM
ver los resultados. SEMANA 4 LUNES 3-4 PM
0 CAIDAS
2 CAIDAS JUEVES 10-11 AM
VIERNES 10-11 AM
Elaboración Propia

En la Tabla 2 se observa que durante las dos semanas de


monitoreo no se presentó ninguna caída en los servidores.
Con esta prueba se validó que el sistema tiene un alto grado
de madurez ya que esta sub característica se relaciona con la
frecuencia de fallos en el software, y con la solución
propuesta no se presentó ninguna.

7
4.1.4. Prueba 4 - Tiempo de recuperación de los sistemas: función bajo condiciones determinadas, como cantidad de
Para esta prueba vamos a simular la caída de los nodos usuarios por ejemplo.
principales y de sus réplicas y medimos el tiempo que tarda
el sistema en recuperarse, es decir volver a levantar los nodos 4.3.1 Prueba 5 - Comparación de tiempos de respuesta con
y recuperar el servicio de las aplicaciones. Vamos a apagar la solución antigua : Durante la fase de análisis obtuvimos
todos los dos nodos, para poder simular esta caída, luego información del tiempo de respuesta que tenía cada sistema,
vamos a encenderlos y desde ese momento hasta la vamos a comparar esa información con la información que se
disponibilidad de las aplicaciones, vamos a medir el intervalo recolectara del monitoreo de la solución propuesta. Vamos a
de tiempo. En la Tabla III se puede apreciar que se simularon elegir 3 aplicaciones críticas y serán las que comparemos para
5 caídas y se calculó el tiempo de la recuperación del servicio la respectiva validación.
para cada nodo, se observa claramente que la recuperación
tomó, en promedio 2 minutos con 25 segundos en promedio Tabla 4 Comparación de tiempo de respuesta
total de los nodos. Sin embargo en la situación anterior la
recuperación tardaba aproximadamente 20 minutos.
unidad de tiempo en milisegundos(ms)
aplicación
tiempo de respuesta tiempo de tiempo
Tabla 3 Tiempo de recuperación con la solución propuesta anterior respuesta actual disminuido
Promedio
Sistema
tiempo de recuperación (milisegundos) Total Logístico 10248,54 645 9603,54
nodo1 nodo2 Sistema
#prueba nodo1 Replica nodo2 Replica nodo3 Reporteador 9895,25 348 9547,25
Sistema
caída 1 128070 128085 128100 128115 128130
Contable 8854,15 286 8568,15
caída 2 125010 125023 125036 125049 125062 Elaboración propia
122575,6
caída 3 118470 117046 115622 114198 112774
En la tabla anterior se puede apreciar que los tiempos de
caída 4 122430 121130 119830 118530 117230 respuesta obtenidos con la solución propuesta, han
caída 5 124250 124270 124290 124310 124330
disminuido considerablemente y eso se verá reflejado en la
Tiempo satisfacción del usuario final.
Promedio 123646 123110,8 122575,6 122040,4 121505,2
Elaboración propia
4.3.2 Prueba 6 - comparación de uso de recursos con la
4.2. Validaciones de Fiabilidad solución anterior: Para esta prueba vamos a monitorear el
4.2.1 Validación 1: Con las dos primeras pruebas porcentaje de consumo de recursos de cada nodo y también el
realizadas se valida la característica de Fiabilidad ya que la consumo de recursos del host físico. Con la finalidad de
solución brinda la alta disponibilidad requerida por las validar que el consumo de recursos de los nodos sea menor al
aplicaciones del SIGF. En la solución antigua, cuando fallaba de la situación anterior y también validar que el servidor
el sistema, absolutamente todo se veía afectado, mientras que utilice solo los recursos necesarios requeridos en un instante
la solución propuesta se valida que es tolerante a fallos y de tiempo.
permite brindad un mejor servicio y continuidad de negocio
4.2.2 Validación 2: Con la tercera prueba se valida la Tabla 5 Comparación de consumo de recursos
característica de Fiabilidad ya que el sistema tiene un alto
grado de madurez y esta sub característica se relaciona con la Porcentaje de uso de Recursos
sistema % de uso de % de uso de % de uso de
frecuencia de fallos en el software, y con la solución CPU RAM Disco
propuesta no se presentó ninguna.
situación anterior 86,74% 84,50% 60,12%
4.2.3 Validación 3: Con la cuarta prueba se valida la
característica de Fiabilidad ya que el tiempo de recuperación solución
25% 33,50% 31%
propuesta(nodos)
ante fallos es un tiempo mínimo (2 minutos aproximados), en
comparación con la situación anterior que demoraba más de
15 minutos en levantar y aún más tiempo en caso de que En la tabla anterior se observa que el consumo de recursos
sucedan otros errores durante el levantamiento del servidor. de la solución propuesta está por debajo del 50%, ha
mejorado bastante con respecto a la situación anterior. Ahora
veamos cual es el consumo del host físico, si bien es cierto las
4.3. Pruebas para la validación de Eficiencia máquinas virtuales tienen separado en el host físico sus
recursos, la ventaja de la virtualización es que si los recursos
Esta característica de la ISO 9126 se enfoca en la no son necesitados en un determinado momento por una
relación que existe entre el nivel de desempeño del software máquina virtual, otra los puede usar.
y la cantidad de recursos necesitados. Para validar esa
característica vamos a recolectar información de los tiempos 4.4.1. Validación 4: Con la prueba número 5 se valida la
de respuesta que se alcanzan utilizando la solución de característica de eficiencia ya que la solución brinda un buen
infraestructura propuesta y verificar que la solución utilice los desempeño al software, se ha evidenciado que la solución
recursos adecuados cuando el software lleva a cabo su propuesta disminuye considerablemente los tiempos de
respuesta de las aplicaciones.
8
4.4.2. Validación 5: Con la prueba número 6 se valida 5. Conclusiones
también la característica de eficiencia, ya que la solución
trabaja con la cantidad de recursos necesitados en un instante La primera conclusión es referente al problema
solucionado en el presente trabajo. La inestabilidad de
de tiempo, liberando recursos que pueden servir para otro uso.
aplicaciones depende mucho de la infraestructura que la
soporta y con el presente trabajo se corrobora que una
4.5. Validaciones de Portabilidad infraestructura bien implementada puede brindar calidad de
servicio al software que aloja.
Esta característica de la ISO 9126 se enfoca en la En los últimos años implementar Clustering se ha
capacidad de un sistema para ser transferido y adaptado desde convertido en algo necesario.
una plataforma a otra. La solución anterior no era portable ya
que todo se encontraba amarrado a un host físico y pasar toda Las plataformas de virtualización permiten un ahorro de
los recursos de hardware que se usan dentro de una
la configuración a otro servidor era tedioso y riesgoso; sin
infraestructura tecnológica. También nos facilita la
embargo la solución propuesta cumple la característica de administración de nuestros servidores.
portabilidad ya que en caso de querer mover un nodo a otro
ambiente por cuestiones de mantenimiento y/u otros, lo único El balanceo de carga permite tener redundancia sin
que se tendría que hacer es coger los ficheros de dicha necesidad de migraciones de datos o interrupciones de
máquina virtual e importarlo en el otro servidor. La servicios, siendo transparente para el usuario final.
portabilidad se puede entender mejor en la Fig. 11. 6. Referencias

[1] Sanmiguel, A. G. (2012). Clúster de alta disponibilidad y balanceo de


carga sobre un servidor web. Sabadell.
[2] Miguez, R. A. (2012). Desarrollo de una infraestructura de redundancia
para servidores proxy GNU/LINUX en la intranet de la facultad de
ciencias. Riobamba - Ecuador.
[3] Wanumen Silva, L. F., & Mosquera Palacios, D. J. (2014). Sistema de
alta disponibilidad basado en plataforma de virtualización para
pequeñas y medianas empresas. Tecnura.
[4] Javier, M. J. (2014). Diseño de un clúster orientado a servicios para
aplicaciones web en la Universidad nacional experimental de Táchira.
Tachira.
[5] Nieto, F. V. (2011). Implementacion de un cluster a nivel de aplicacion
en la empresa casa Moeller Martinez C.A. utilizando una plataforma y
herramientas open source. Quito.
[6] Roa, L. A. (2014). 3.2.3 Instalación y configuración de un clúster de
alta disponibilidad con reparto de carga – servidor web y máquinas
Fig. 11 Portabilidad de maquinas virtuales virtuales. Valencia.
[7] Campos Bustos, K. E., & Vera Chávez, J. L. (2015). Diseño e
implementacion de una solucion de alta disponibilidad usando cluster
y virtualizacion de servidores web y de base de datos para las
apliccaiones de la FIEC.. Guayaquil - Ecuador.
[8] Armando, A. Q. (2016). 3.2.5 Diseño e implementación de un clúster
de alta disponibilidad para virtualizar los servidores de adquisición y
procesamiento de datos del instituto geofísico. Quito.

También podría gustarte