SalmorejoTech 2024 - Spring Boot <3 Testcontainers
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
1. SERVIDORES DE AL TA
DISPONIBILIDAD EN
SOFTWARE LIBRE
Mag. Ing. Robert Edgar Puican Gutiérrez
2. INTRODUCCION
•Hoy en día tanto en el mundo empresarial,
como en el mundo académico, existen
ciertas aplicaciones que dada su naturaleza
deben proporcionar un servicio
ininterrumpido las 24 horas al día, 7 días a
la semana, los 365 días del año.
•Por ejemplo un servidor de páginas web.
2
3. INTRODUCCION
•En la actualidad con el surgimiento de
nuevas tecnologías y nuevas necesidades
de los usuarios de sistemas informáticos,
surge la necesidad de que se garantice y
asegure que los recursos y las aplicaciones
de importancia decisiva permanecerán
disponibles, así como que también la carga
de trabajo sea balanceada para garantizar
el alto rendimiento.
3
4. INTRODUCCION
•Por ende un clúster es un grupo de
sistemas independientes, conocidos como
nodos, que trabajan juntos como un sistema
único para garantizar la premisa.
•La organización en clústeres permite a los
usuarios y administradores tener acceso a
los nodos y administrarlos como un sistema
único en lugar de como equipos
independientes.
4
5. CLASIFICACION DE UN CLUSTER
•Los cluster dependiendo de su
aplicabilidad, pueden clasificarse de
diferentes maneras:
Alto Rendimiento (HP, High Performance).
Alta Disponibilidad (HA, High Availability).
Balanceo de Carga ( Load Balancing).
Alta Confiabilidad (HR, High Reliability).
6. Alto Rendimiento
•Suple las necesidades de súper computación
para resolver problemas de determinadas
aplicaciones que requieren un alto procesamiento.
•Esto se logra mediante la utilización de un grupo
de máquinas individuales las cuales son
interconectadas entre sí y de esta manera se
obtiene un sistema de gran rendimiento que actúa
como uno solo.
Utilidad principal:
Cálculos matemáticos.
Cifrado y Descifrado de códigos.
Simulación Militar, etc.
7. Alta Disponibilidad
•Cluster muy solicitado y de mucha importancia
para empresas que brindan servicios 24x7 dónde
su principal función es la de mejorar los servicios
que dichas empresas ofrecen a los clientes en las
redes a las que pertenecen, sean estas internas
(intranet) o externas (Internet).
•La característica principal de este cluster es que
ante la existencia de algún problema o fallo de
uno de los nodos, el resto asumen ese fallo y con
ello las tareas del nodo con problemas.
9. Balanceo de Carga
•Técnica muy utilizada para lograr que un conjunto
de servidores de red compartan la carga de
trabajo y con ello el tráfico de sus clientes.
•Este proceso de dividir la carga de trabajo entre
los servidores reales permite obtener un mejor
tiempo de acceso a las aplicaciones y con ellos
tener una mejor confiabilidad del sistema.
•Además como es un conjunto de servidores el
que atiende el trabajo, la falla de uno de ellos no
ocasiona una falla total del sistema ya que las
funciones de uno, las puede suplir el resto.
11. Alta Confiabilidad
•Cluster caracterizado por ofrecer una alta
confiabilidad al sistema.
•La idea es obtener respuestas eficientes del
sistema a pesar de tener una sobrecarga de las
capacidades de un servidor.
•Estos clusters se caracterizan por ejecutar un
mayor número de tareas en el menor tiempo
posible.
13. SERVIDOR DE SERVICIOS WEB
•En la actualidad, la gran mayoría de las
organizaciones exponen su lógica de
negocio a través de servicios web o
aplicaciones web. Por lo que es de vital
importancia para el correcto funcionamiento
del negocio que la gente pueda trabajar sin
errores "informáticos" o "tecnológicos".
•La realidad es que los sistemas fallan y hay
que evitar en la medida de lo posible que
estos fallos supongan una negación de
acceso a los servicios.
14. SERVIDOR DE SERVICIOS WEB
•Lo que buscamos es como configurar un
conjunto de servidores para que las
peticiones de los usuarios a los servicios se
distribuyan (a través de alguna política)
entre los servidores para conseguir:
Alta disponibilidad
—En caso de que un servidor se caiga otro servidor
activo preste servicio.
Balanceo de carga
—Cada servidor atenderá un porcentaje de las
peticiones de manera que el sistema en conjunto
soporte más usuarios.
15. ESQUEMA DE ARQUITECTURA
CLIENTES
INTERNET /
INTRANET
Podemos observar lo siguiente:
Las aplicaciones de los usuarios apuntan a la dirección de un
balanceador (el resto es transparente para ellos).
El balanceador (tráfico HTTP) está construido a través del servidor web
apache y el módulo mod_jk habilitado.
El balanceador distribuirá en base a alguna política especificada en la
configuración el tráfico entre los usuarios (clientes) y los servidores
Tomcat.
16. CLUSTER HORIZONTAL
•Instalar y configurar un cluster horizontal
(de mas de un servidor físico) con una
instancia de Tomcat corriendo en cada
uno de los servidores físicos, y utilizando
Apache para balancear la carga entre
ellos.
•El cluster tambien proporcionara un
mecanismo de failover (si una instancia
de Tomcat se cae, el Apache
redireccionara las solicitudes a otra de
las instancias).
18. CLUSTER VERTICAL
(VARIOS EN LA MISMA MAQUINA)
•Instalar y configurar un cluster vertical (de
un servidor físico) con más de una instancia
de Tomcat corriendo y utilizando Apache
para balancear la carga entre las instancias.
•El cluster también proporcionara un
mecanismo de failover (si una instancia de
Tomcat se cae, el Apache redireccionara
las solicitudes a otra de las instancias).
22. ALTA DISPONIBILIDAD CON
HEARTBEAT
• Imaginemos que hemos instalado un servidor web en el
servidor maestro, con lo que tendremos replicada la
información en el servidor secundario en tiempo real. Sin
embargo, necesitamos la intervención del administrador
para levantar el servicio tras caída del servidor primario:
cambiar el estado de secundario a primario, configurar la
red y levantar el servicio Web.
• Para conseguir alta disponibilidad necesitamos que el
propio sistema realice todos estos pasos de manera
automática, dando al usuario la sensación de que el
servicio no ha sufrido ninguna interrupción (el tiempo sin
servicio sería muy pequeño).
22
23. ALTA DISPONOBILIDAD CON
HEARTBEAT
• El software que se encarga de
proporcionar alta disponibilidad
al sistema, realizando todos los
pasos necesarios para ello, se
llama HeartBeat.
• Heartbeat crea una IP virtual que
será la que da el servicio (la IP a
la que nos conectaremos para
acceder al servicio web). Esa IP
sólo estará activa en el servidor
maestro. Una caída del servidor
maestro provoca que el
secundario tome el mando, coja
la IP virtual y levante el servicio.
24. HERTBEAT
• El punto crítico será conocer cuándo se corta el
servicio para poder activar el servidor secundario.
Heartbeat necesita una conexión por red entre ambos
servidores ( cable directo ).
• De hecho, Heartbeat se encuentra constantemente
escuchando los ‘latidos’ (un latido corresponde a un
ping) del otro servidor. Cuando el HeartBeat del
secundario deja de escuchar los latidos del servidor
primario, lo declara como inactivo, y automáticamente
realiza los pasos necesarios para tomar el mando y
continuar dando servicio.