SlideShare una empresa de Scribd logo
JBoss
Professional Open Source

JBoss AS
Servicios Web con Axis

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Índice
• ESCALABILIDAD. Diseñando arquitecturas
masivamente escalables.
• ALTA DISPONIBILIDAD. Diseñando una
arquitectura 24x7.
• OPERACION CONTINUA. Estrategias de
despliegue de Aplicaciones.
• GESTIONABILIDAD. Integración con gestión
de Red. Gestion JMX
• ESTANDARES. J2EE 1.4. Roadmap J2EE 5.0.
19 Octubre 2009
César Pajares – ECM /CMS Manager
Novedades.
Curso JBoss JB366
cesarpajares@gmail.com
Índice
• IDENTIDAD y SEGURIDAD. Integración del
servidor de Aplicaciones con sistemas LDAP
y SSO
• MERCADO Servidores J2EE. Servidores
OpenSource vs Servidores comerciales

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Contexto
• En la gestión de los proyectos WEB no sólo
es importante la arquitectura de desarrollo
del proyecto, sino que la arquitectura de
sistemas y de operación de la plataforma es
fundamental a la hora de proporcionar la
calidad de servicio requerida por los
usuarios
• Una aplicación funcionalmente perfecta no
servira a su proposito si tiene un tiempo de
respuesta muy lento o tiene una
19 Octubre 2009
César Pajares – ECM /CMS Manager
Curso JBoss JB366
cesarpajares@gmail.com
disponibilidad baja.
Objetivos
• Entender las posibilidades de arquitectura
de operación de los servidores de
Aplicaciones J2EE
• Planificar adecuadamente el HW para
conseguir la máximas prestaciones para un
determinado presupuesto económico
• Establecer criterios de decisión para elegir
entre productos OpenSource, versiones
básicas o versiones Enterprise según las
necesidades
19 Octubre 2009
César Pajares – ECM /CMS Manager de cada proyecto
cesarpajares@gmail.com

Curso JBoss JB366
ap
lic
ac
ió
n

Servidores de Aplicaciones J2EE
•Concurrency

Presentation
Business Logic
Data access
(optional)

D
es
ar
ro
l

Pr
od
uc

to

•Consistency
•Security
•Availability
•Scalability
•Administration
•Integration
•Distribution

Components

lo

C
om
er
ci

al

Containers

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Servidores de Aplicaciones
Application
Comerciales
Development

Management

Performance
Platform
Edition
Application
Runtime

Standard
Edition

Monitoring

Enterprise
Edition
Load
Balancing

Pooling and
Caching
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Failover
19 Octubre 2009
Curso JBoss JB366
Funcionalidades extendidas de los
Servidores de Aplicaciones
Comerciales RMI / IIOP
Timers
HTTP(S)
JMS

management

message routing / load balancing

I3

I4

host A

I5

I6

host B

I7

I8

host C

state availability
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Escalabilidad

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
• Cómo¿Qué es escalabilidad?cuando
se comporta una arquitectura
únicamente aumenta la carga del sistema y
los demás parámetros se mantienen
constantes
• Idealmente la escalabilidad debe ser lineal,
es decir si la arquitectura soporta N
usuarios, y se doblan los recursos de la
arquitectura, entonces soporta 2xN usuarios.
• Escalabilidad vertical: Aumentando el
numero de CPUs, y memoria de los mismos
19 Octubre 2009
César Pajares – ECM /CMS Manager
servidores
Curso JBoss JB366
cesarpajares@gmail.com
Balanceo de carga

3 DNS GLB

San Diego

Server
Local DNS Server
192.10.1.50

• Balanceo de carga basado en DNS
New York

San Francisco

Server
Local DNS Server
10.10.1.50
New York

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Balanceo de Carga
GLB
Client 1

San Francisco Local LB
Server

Set-Cookie
: Site
Francisco; =San-

• Balanceo de carga basado en Cookies
Client 2

Server

New York Local LB
Set-Coo
kie: Site=
N

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

ew York;

Server

Server
19 Octubre 2009
Curso JBoss JB366
StickyR11
round-robin load balancing
Client 1

R12

Cookie :
instance=server1

Load Balancer

R11
R12

Servlet (HTTP
Session)

Server 1

R21
R21
Client2
Rij = jth request from client i
Cookie :
instance=server2

Servlet (HTTP
Session)

Server 2
Cluster

Permite que dirigir cada usuario a un mismo servidor durante el
ciclo de vida de la sesión en la información de sesión
 Implementación mediante cookies de sesión de navegador 2009
19 Octubre
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Diseño de los plugins de
servidor Web
• Persistencia del servidor basada en Cookies
• Cookie Pasiva:
.jsp
o rl d
w
ello
T /H

– Mantenimiento Server/LBpersistencia basado en la cookie
Web de la
GE
543 4
generada por el servidor de aplicaciones
5 4!4
47
GET /Helloworld.jsp
49 ! 1
14754
34528

GET /index.jsp

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Server1

Server 2

98402

Server 3

JSE
JS
ES

f1
D=s
O NI
SSI

SI
ON

GE
T
ID
=a
3

/ind

1K

Server 1

D

Server 2

ex.

z0
!98
4

js p

02

!45

43

4

Server 3

19 Octubre 2009
Curso JBoss JB366
Diseño de los plugins de servidor
Web basada en Cookies
• Persistencia del servidor
• Cookie Activa
─ El servidor Web o balanceador genera sus
propias cookies
JSESSIONID=sf1

d49;Server=Serve

r-1

Web Server/LB

GE T
/Hellowor
ld.jsp

Server-1
Server-2

e
=a31Kz0;Serv
JSESSIONID
3

r=Server-

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

SSIO
JSE

=s f 1
NI D

Server 1

;
D49

Server 2

Server-3

.jsp
dex
/in
GET

Server1

ell
T /H
GE

.jsp
o rl d
ow

Server 3

Server 2

GET /index
.jsp

JSES
SION
ID=a
3

1Kz0

;

19 Octubre 2009
Curso JBoss JB366

Server 3
Diseño de los plugins de servidor
Web
• Protocolos de gestión de servidores de
aplicaciones en los balanceadores

─ Registro Estático
─ Registro Dinámico
─ Protocolo IP Multicast
─ Notificaciones en arranque / parada
─ F5 proporciona un API SOAP para conseguirlo

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Arquitectura con Balanceador
HW y Servidores WEB
Firewall
Load
Balancer

Web
Server
Plug-in

App Server
SE

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Web
Server
Plug-in

Web
Server
Plug-in

App Server
App Server
SE
SE
cluster1

Firewall

App Server
SE

19 Octubre 2009
Curso JBoss JB366
Escalabilidad en una topología de 112 CPUs con altaCPU's
AS
HADB
in
disponibilidad a nivel de sesión Scalability Cluster
Instances Nodes
Web
Server
Plug-in

Round Robin LB
with HTTP Session Affinity

Business Logic
App Server
EE
2 Instances

App Server
EE
2 Instances

App Server
EE
2 Instances

App Server
EE
2 Instances

App Server
EE
2 Instances

2
4
8
12
14

4
8
16
24
28

App Server App Server
EE
EE
2 Instances 2 Instances

100%
95%
87%
75%
70%

16
32
64
96
112

V880 (1G RAM per CPU,
1.2GHz Ultra Sparc 3)
14 App. Server Instances
8 CPU's Per Server x 7
=56CPU's

HADB
4 N odes

HADB
4 N odes

HADB
4 N odes

HADB
4 N odes

HADB
4 N odes

HADB
4 N odes

HADB
4 N odes

V880 (1G RAM per CPU,
1.2GHz Ultra Sparc 3)
28 HADB Nodes

Session Replication: HTTP Session and Stateful Session Beans
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

8 CPU's Per Server x 7
=56CPU's

19 Octubre 2009
Curso JBoss JB366
¿Que Factores escalabilidad?
influye en la de Escalabilidad

• El diseño de la aplicación
• Requisitos de Alta disponibilidad y nodos del
Cluster
• Coste de la comunicación entre servidores y
nodes
• Mecanismos de comunicación con el
backend donde se almacenan los datos
(Base de Datos, Host, Sistemas ERP,
19 Octubre 2009
César PajaresSistemas CRM, etc)
– ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Factores disponibilidad y nodos
Requisitos de Altade Escalabilidad del
Cluster
• Número de nodos de un cluster
– Cuanto más nodos, mayor coste de comunicación
– La transferencia de datos puede inundar el
sistema

• La eficiencia de los balanceadores
– Detección de caidas de servidores de aplicaciones

• Los costes de replicación de datos se
incrementan con el número de nodos
– Se puede mitigar con estrategias de replicación
19 Octubre 2009

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Factores de Escalabilidad
Consejos sobre nodos del Cluster
• Tamaño del cluster
– A menor número de nodos la escalabilidad es
mayor

• Comunicación entre los nodos del cluster
– “Sesión replicada en todos los nodos”—funciona
bien para un número de nodos pequeño (2,3,4)
– “Principal/ Secundario”—cada nodo tiene una
réplica con la sesión almacenada de manera
pasiva
César Pajares – – “Nodos totalmente independientes que 19 Octubre 2009
ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Multi-Cluster
S1 WS 6
LBP

HTTP(S)

S1 AS 7
Instance S1 AS 7
Instance

S1 AS 7
Instance

HADB

Cluster A

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

S1 AS 7
Instance

S1 AS 7
Instance S1 AS 7
Instance

S1 AS 7
Instance

HADB

S1 AS 7
Instance

Cluster B

19 Octubre 2009
Curso JBoss JB366
Factores de Escalabilidad
Consejos de Alta Disponibilidad
• Determinar el nivel requerido de tolerancia
a fallos
– Cuanto menos datos tenga que replicar mejor
– Cuanto mayor sea la frecuencia de replicación
mejor

• Planificar el crecimiento en escalabilidad
– Elegir estrategias que permitan mayor
escalabilidad como almacén de sesiones
independiente en caso de previsión de
19 Octubre 2009
César Pajares – ECM /CMS Manager
Curso JBoss JB366
cesarpajares@gmail.com
crecimiento
Matriz con tipo de persistencia, frecuencia, y
ámbito

Persistence-type
memory
file
ha
ha
ha
ha
ha
ha

Persistencefrequency
stopserv*
time-based*
time-based
time-based
time-based
web-event
web-event
web-event

Persistencescope

session
modified-session
modified-attribute
session
modified-session
modified-attribute

Supported in
7.0PE
7.0PE
7.0EE
7.0EE
7.0EE
7.0EE
7.0EE
7.0EE

* :- These are not the supported values for this property

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Escalabilidad
El problema y Alta Disponibilidad en J2EE™
• Soporte de clustering de Servidores
– Balanceo de carga entre instancias
– Gestión del failover entre instancias

• Garantizar alta disponibilidad de datos
– Información de sesión de cliente (con
autenticación)
– Datos de negocio almacenados en base de datos
– Mensajes pendientes de procesamiento

• Garantizar alta disponibilidad de servicios
19 Octubre 2009
César Pajares – ECM /CMS Manager
Curso JBoss JB366
cesarpajares@gmail.com
J2EE
Escalabilidad
La solución y Alta Disponibilidad en J2EE™
• Los fabricantes proporcionan guías de
configuración y arquitecturas de alta
disponibilidad en las versiones Enterprise
• Ajustar la arquitectura de sistemas a los
requisitos de Escalabilidad y Alta
Disponibilidad
• Guías de diseño y codificación
– Mantener la sesión de usuario lo más pequeña
posible
19 Octubre 2009
César Pajares – ECM /CMS Manager
– Pensar inicialamente que la aplicación debe JB366
Curso JBoss
cesarpajares@gmail.com
Balanceo de carga de peticiones
Características
HTTP

• En general implementado en los plugin de los
servidores WEB
• Algoritmos de balanceo
– Round-robin
– Round-robin con pesos
– Basados en el tiempo de respuesta

• Asignación de clientes a instancias (stickiness)
• Monitorización de disponibilidad de
instancias
19 Octubre 2009
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
•
•

loadbalancer.xml

<loadbalancer name="loadbalancer1">
<cluster name="cluster1">
• <instance name="instance1" enabled="true"
listeners="http://instance1.domain.com">
</instance>
• <instance name="instance1" enabled="true"
listeners="http://instance2.domain.com">
</instance>
•
<web-module context-root="/webapps-simple"
enabled="true" />
•
<health-checker url="/" interval-in-seconds="10" />
•
</cluster>
•
<property name="reload-poll-interval-in-seconds"
value="5" />
•
<property name="response-timeout-in-seconds"
value="30" />
•
<property name= "https-routing" value="true" />
• </loadbalancer>
19 Octubre 2009
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

server2

19 Octubre 2009
Curso JBoss JB366
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

server2

19 Octubre 2009
Curso JBoss JB366
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

server2

19 Octubre 2009
Curso JBoss JB366
URLs idempotentes
loadbalancer.xml
<cluster name="cluster1">
<instance name="instance1" enabled="true"
disable-timeout-in-minutes="60" listeners="http://localhost:8080"/>
<instance name="instance2" enabled="true"
disable-timeout-in-minutes="60" listeners="http://localhost:8081"/>
<web-module context-root="infinite"
enabled="true" disable-timeout-in-minutes="60" >
<idempotent-url-pattern url-pattern="/*" no-of-retries="2" />
</web-module>

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Alta Disponibilidad

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
¿Que es Alta Disponibilidad?
El porcentaje del tiempo que el sistema
entrega una respuesta correcta dentro de un
determinado intervalo de tiempo.
A=

MTBF
MTBF + MTTR

MTBF

MTTR

MTBF == Mean Time Between Failure
MTTR == Maximum Time to Repair

• “5–Nueves” 99.999% ~5 Min. Caida / Año
> Incluyendo paradas planificadas y no planificadas
> Implica un alto de grado de tolerancia a fallos
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Alta dispnobilidad de servicio
Firewall
Load
Balancer

Web
Server
Plug-in

App Server
SE

Web
Server
Plug-in

Web
Server
Plug-in

App Server
App Server
SE
SE
cluster1

• Failover automático
– Detección de caidas de
servicio
– Asignación de nueva
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
instancia

Firewall

App Server
SE

> Muy eficiente en coste
> Para aplicaciones sin

sesión o cuya pérdida no
sea grave para el19 Octubre 2009
servicio

Curso JBoss JB366
Alta Disponibilidad de Sesión

• Aplicaciones de
Misión Crítica

Firewall
Load
Balancer

Web
Server
Plug-in

App Server
EE

Web
Server
Plug-in

App Server
EE

App Server
EE

Shared Nothing Architecture
HADB

cluster1
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Web
Server
Plug-in

App Server
EE

Firewall

– Servicio 24x7
– Sesión y
estado
siempre
recuperable
– Fallos
transparentes
al usuario
19 Octubre 2009
Curso JBoss JB366
Failover de la sesión HTTP
Servlet (HTTP
Session)

Server 1
Load Balancer

Servlet (HTTP
Session)

Http
Session
Persistenc
e

Session
Store (or
replicatio
n

Server 2
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Cluster

19 Octubre 2009
Curso JBoss JB366
Failover de la sesión HTTP
Servlet (HTTP
Session)

Server 1
Load Balancer

Http
Session Session
Persistence Store (or

replicatio
n
Servlet (HTTP
Session)

Server 2
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Cluster

19 Octubre 2009
Curso JBoss JB366
Replicación en memoria
Failover de la sesión
Client

Req1

Req 2 Load- Req1
Cookie :
balancer Req2
primary=server1
secondary=server2
Procesa la petición y
envía la respuesta
Server1 se cae entre la
petición Req1 y la
petición Req2

HTTP
Otras instancias
del cluster

Servlet (HTTP
Session)

Server
1(primary)

Replicación sesión
Servlet (HTTP
Session)

Server
2(secondary)

Cluster

Después del failover, el servidor2 pasa a ser el primario
Se crea un tercer servidor secundario, si el servidor 1 queda in

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Failover de la sesiones
Usando un repositorio desesión HTTP
Req1

Req1

LoadClient Req2 balancer Req2
Procesa la petición y
envía la respuesta
Server1 se cae entre
la petición Req1 y la
petición Req2

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Servlet (HTTP
Session)

Server 1
Servlet (HTTP
Session)

Sesión guardada
en el repositorio
Session
Repository
Sesión recuperada
del repositorio

Server 2
Cluster

19 Octubre 2009
Curso JBoss JB366
Estrategias para el Failover de la
Frecuencia desesión HTTP
la persistencia
• Configuración específica de cada fabricante
• Se puede configurar para persistir las
sesiones al final de la petición http, o bien
en background, cada cierto tiempo
• La estrategia basada en tiempo da una
mejor latencia pero con el riesgo potencial
de pérdida de la información del último
minuto
19
César Pajares – ECM /CMS Manager
• Algunos fabricantes proporcionan APIs Octubre 2009
para
Curso JBoss JB366
cesarpajares@gmail.com
Estrategias para el Failover de la
sesión
Ámbito de la persistencia HTTP
• Configuración específica de cada fabricante
• Sirve para reducir el volumen de datos a
persistir
• Por defecto siempre se escribe toda la
sesión en el almacen de persistencia
• Se pueden configurar otros ámbitos:
– Sesión modificada
– Atributo Modificado
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Balanceo de carga y Failover
Técnicas invocaciones a EJB™
• InitialContextFactory específico del vendedor
– Se distribuyen las siguientes llamadas a las
diferentes instancias del cluster con una política
round-robin:
• New InitialContext()
• InitialContext.lookup()

• IORs con información de cluster
– Los IOR incluyen información del servidor donde
se generan, y el cliente reintenta las peticiones
César Pajares – ECM /CMSotro nodo en caso de que uno de los19 Octubre 2009
con Manager
Curso JBoss JB366
cesarpajares@gmail.com
Balanceo de carga y Failover
invocaciones a EJB™

Optimizaciones para evitar congestion en la red

• Afinidad de Servidor
– Las llamadas a los EJB por parte del mismo
cliente siempre se hacen al mismo servidor,
minimizando el número de conexiones abiertas
simultaneamente

• Colocalización: Útil para Servlet llamando
EJB
– Los servlets llaman al EJB local, dentro de la 2009
19 Octubre
Curso JBoss JB366
misma JVM, en vez de balancear las peticiones.

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Failover de Stateless Session
Beans
Usar cualquier otra instancia del cluster
• Secuencia de eventos
– El Cliente detecta un fallo en la invocación
– El Cliente identifica un endpoint IIOP alternativo
– El Cliente reinvoca la petición
– Cualquier instancia del SLSB sirve para gestionar
la invocación ya que no existe información de
estado asociada.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Failover de Stateful Session
Se requiere Checkpointing
Beans

• Las actividades del Client son las mismas que
en el caso de SLSB excepto:
– La instancia asignada para ejecutar la llamada
debe reconstruir la información de estado, o
bien de repositorio o bien de otra instancia
replicada

• Problemas:
– Las invocaciones de SFSB pueden ser
transaccionales— el checkpointing se puede
hacer sólo al final de la transacción o del
19 Octubre 2009
César Pajares – ECM /CMS Manager
método si no la hubiera
Curso JBoss JB366
cesarpajares@gmail.com
EJB™ Stateful Session Bean Failover
ShoppingCart
Bean1

O
CartClient R
B

Server 1

Session
Store
(or replication)

ShoppingCart
Bean
Server 2

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Cluster

19 Octubre 2009
Curso JBoss JB366
EJB™ Stateful Session Bean Failover
ShoppingCart
Bean1

O
CartClient R
B

Server 1

Session
Store
(or replication)

ShoppingCart
Bean
Server 2

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Cluster

19 Octubre 2009
Curso JBoss JB366
Arquitectura Altamente
Firewall
Disponible
Load Balancer
Load Balancer

Web
Server
Plug-in

Web
Server
Plug-in

Load
Balancers
Web
Server

Web Servers

Plug-in

Firewall
App
Server
EE

App
Server
EE

App
Server
EE

App
Server
EE

Backing Store or Memory Replication

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

App
Server
EE

App Servers

Backing Store
or Memory
Replication
19 Octubre 2009
Curso JBoss JB366
¿Que es tiempo que el sistema
El porcentaje delAlta Disponibilidad?
entrega una respuesta correcta dentro de un
determinado intervalo de tiempo.
A=
MTBF

MTBF
MTBF + MTTR
MTTR

MTBF == Mean Time Between Failure
MTTR == Maximum Time to Repair

• “5–Nueves” 99.999% ~5 Min. Caida / Año
> Incluyendo paradas planificadas y no planificadas
> Implica un alto de grado de tolerancia a fallos
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Fiabilidad
Conceptos

y Alta Disponibilidad

• MTTF—Número /Frecuencia de Fallos
• MTTR—Duración de los fallos (Time to
Repair)
• Alta fiabilidad no implica Alta Disponibilidad
– 1 fallo —1hora para recuperarlo—Alta fiabilidad
pero Baja Disponibilidad
– 60 fallos —1 segundo para recuperarse de cada
fallo. Baja fiabilidad pero Alta Disponibilidad

• Incluso con un sistema poco fiable
19 Octubre 2009
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
(máquinas baratas) puedo tener Alta Curso JBoss JB366
¿Garantizan los servidores de
aplicaciones la alta
disponibilidad?

• Los fabricantes se esfuerzan en lograr que
esto sea verdad y en aislar a los
desarrolladores y operadores de
complejidad innecesaria.
• El objetivo de los servidores de aplicaciones
es que un cluster de servidores se comporte
como un único servidor escalable, un
servidor tolerante a fallos virtualizado
• La /CMS Manager
19 Octubre 2009
César Pajares – ECM disponibilidad no es gratuita
cesarpajares@gmail.com

Curso JBoss JB366
¿Tiene algun coste activar la alta
disponibilidad?

• La alta disponibilidad de sesión implica una
replicación de esta información en
diferentes nodos. Por tanto tiene los
siguientes costes:
– Memoria para guardar las sesiones replicadas
– Tráfico de red mientras se produce la
replicación
– Ciclos de CPU para gestionar la replicación

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Error 1: Las aplicaciones no se
tienen que ocupar de la Alta
Disponibilidad sino los productos
de Servidor

• Las sesiones HTTP y los EJB de estado debe
ser serializables

– Consejo: las aplicaciones deben hacer el menor
uso posible de los objetos de sesión

• Previsión de posibles excepciones:
– Los fallos que causen expeciones que no deban
ser motivo de failover deben ser tratados
específicamente para prevenir el posible 19 Octubre 2009
failover
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Error 2. Todas las peticiones son
idempotentes
• “La idempotencia es la cualidad de algo que
tiene el mismo efecto si se usa múltiples
veces que si sólo se usa una”
• Ejemplos de operaciones idempotentes
– “Fijar la temperatura de la habitación a 23º”
– Cualquier operación de lectura

• Muchas (la mayoría) no son idempotentes!!!
– “Incrementa la cuenta en 20”
César Pajares – ECM /CMS Manager
– “Pasa al estado siguiente”
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Error 2. Todas las peticiones son
idempotentes

• Las peticiones no idempotentes pueden
afectar a la integridad de los datos si se
repiten
• Failover implica reintentos en operaciones
de negocio
– Muchas (la mayoría) de las operaciones de
negocio no son idempotentes

• Cuidado con funcionalidad del tipo failover
19 Octubre 2009
César Pajares transparente
– ECM /CMS Manager
cesarpajares@gmail.com

Curso JBoss JB366
Error 2. Todas las peticiones son
idempotentes
• Peticiones HTTP
– Algunos balanceadores soportan failover
transparente sobre peticiones idempotentes
• Usar con precaución. Hacer un análisis previo.
• No poner en riesgo la integridad de los datos

• Peticiones RMI/IIOP
– Los buenos orb distinguen los estados de “no
completada”, “si completada” y “en duda” y el
César Pajares – ECM /CMS Manager
failover solo se debería hacer en el primer 19 Octubre 2009
caso
Curso JBoss JB366
cesarpajares@gmail.com
Error 2. Todas las peticiones son
idempotentes
• Mensajes JMS(entrada de MDB’s)
– Usar la transacción manejada por el contenedor
para onMessage()
– El envio de duplicados es posible, la aplicación lo
debería tener en cuenta (también en el origen)
– Ayudas para determinar el reenvio de mensajes:
• getJMSRedelivered()
– “Es probable aunque no se garantiza que el mensaje fue entregado
anteriormente pero su recepción no fue confirmada entonces

• getJMSCorrelationID()

César Pajares – ECM /CMS Manager
cesarpajares@gmail.comÚtil en situacioens
–

donde los mensajes son

19 Octubre 2009
Curso
correlados JBoss JB366
Idempotencia—Es seguro
reintentar?
3
Reintentar?
Browser

1

2

Load
Balancer

5

Possible Failure
Points

Servlet (HTTP
Session)

4
Commit or
Rollback Here

Server 1

Servlet (HTTP
Session)
Server 2

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

EIS

Cluster

Session
Store or
Replication
Http Session
Persistence
19 Octubre 2009
Curso JBoss JB366
Error 3. Usar las sesiones HTTP o
EJBs como una Base de Datos
• Guardar demasiados datos en las sesiones
– En una sola instancia—“sólo” un problema de
memoria
– En clusters, un impacto directo al rendimiento,
escalabilidad y alta disponibilidad

• No tienen transaccionalidad
– No se garantiza sincronización con el back-end
– En caso de failover se puede romper la
sincronización

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Error 4. Los upgrades y parches
no afectan a la Alta
Consejo: Probar con Rolling Upgrades y
Disponibilidad
Quiescence
• Que es quiescence
– Algunos balanceadores lo soportan a dos
niveles:
• Instance-level quiescence
• Application-level quiescence

• En entornos de producción probar primero
en entornos de certificación o pruebas
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Instance Quiescing
1

2

LB

R1S1

R1S2

R1 S3

Instance1

Instance2

Disable
Instance1

LB

R1S4

R1 S5

Instance1

Instance3

R2S1

Instance2

Instance3

Cluster

Cluster

After disable timeout

LEGEND

3

LB

RiSj – ith Request (R) in the jth HTTP
Session (S)

R3S1

Instance1

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Instance2

Cluster

Instance3

19 Octubre 2009
Curso JBoss JB366
Application Quiescing
Load
Balancer

Old version
of app

Disabled
cluster

S1

S1

S2

S3

Load
Balancer

S2

S3

S4

C1

C2

New version
of app

Load
Balancer

S2

S3

S4

C1

S1

Two versions
of the app are
being serviced

Load
Balancer

S4

Cluster
with upgraded
C1
apps
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

S1

C2

S2

S3

C1

S4

19 Octubre 2009
Curso JBoss JB366
Alta Disponibilidad de Sesión

• Aplicaciones de
Misión Crítica

Firewall
Load
Balancer

Web
Server
Plug-in

App Server
EE

Web
Server
Plug-in

App Server
EE

App Server
EE

Shared Nothing Architecture
HADB

cluster1
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Web
Server
Plug-in

App Server
EE

Firewall

– Servicio 24x7
– Sesión y
estado
siempre
recuperable
– Fallos
transparentes
al usuario
19 Octubre 2009
Curso JBoss JB366
Persistencia a velocidades de
memoria con alta disponibilidad de
5 nueves
Instance
Instance
11

2. Fast
synchronous
memory to
memory
replication across
nodes, JVM freed
quickly

S1

S0

Instance
Instance
22

1. Real time in-memory writes
from JVM heap to HADB
Memory Cache

HADB in-Memory Cache
Memory
Memory

NODE
0 S0

NODE
S0
1
S1

S1

HADB - Disk

3. Asynchronous writes to HADB

> Always-On - Automatic
> Self Repairing

S0

César Pajares – ECM /CMS Manager
S1
cesarpajares@gmail.com

S0
S1

> No intervention

19 Octubre 2009

> Massively Scalable
Curso JBoss JB366
HADB – AlmacénReplicated
de sesiones
DRU 1

Distributed

Session Data

DRU 2

1

N3

N5

2
3

Potential
spare
node

4

N7

1

1

2

N1

0

2

3

3

4

0

0

4

5

5

N2

N4

N6

N8

Site

5
César Pajares – ECM /CMS Manager
Mirrored
Fragments
cesarpajares@gmail.com

Copies

19 Octubre 2009
Curso JBoss JB366
Arquitectura de datos y acceso
Synchronous Replication:

Data Distribution:

Updates are synchronized
across both copies of the data

From the outside, the cluster
Is invisible, and Clustra looks
like a single-image database

Tables automatically distributed
across active nodes
Fragments
Table T

0
1
2
3
4
5

0

DRU 0

DRU 1

NODE
0
0

NODE 0
1

NODE 2
2

NODE 2
3

NODE 4
4

NODE 4
5

1

1
2
3
4
5

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Transparency:

3

5

NODE
6

JDBC

1

3

Load balancing:

5

Connections automatically
shared across all nodes

NODE
7
Site

19 Octubre 2009
Curso JBoss JB366
Fallos SW - Autoreparación

1: Process failure on node

2: Continue using data on mirror node

NODE
0
0
1

NODE
0
1

NODE
0
0

NODE
0
1

NODE
2
2

NODE
2
3

NODE
2
2

NODE
2
3

NODE
4

NODE
5

NODE
4

1

3

3

spare

spare

3: Automatic restart
& resynchronization
NODE
0
0

NODE
0
1

NODE
2
2

NODE
2
3

1

1

3

NODE
4

3

spare

NODE
5

spare

1

3

spare

1
3

NODE
5

spare

4: Back to Normal
NODE
0
0

NODE
0
1

NODE
2
2

NODE
2
3

1
3

NODE
4

spare

1
3

NODE
5

spare

Self-Repair – No Human Intervention

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Fallos HW- Autoreparación
1: Node Fails

2: Continue using data on mirror node

NODE
0
0
1

NODE
0
1

NODE
0
0

NODE
0
1

NODE
2
2

NODE
2
3

NODE
2
2

NODE
2
3

NODE
4

NODE
5

NODE
4

1

3

3

spare

spare

3: Repair to spare node
Node to be
replaced

NODE
0
1
1

NODE
2
2

NODE
2
3

NODE 0
4
1

NODE
5

3

3

spare

1

3

spare

1
3

NODE
5

spare

4: Repair complete
Node to be
replaced

NODE
0
1
1

NODE
2
2

NODE
2
3

NODE 0
4
1

NODE
5

3

3

spare

Self-Repair – No Human Intervention

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Operación continua

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Operación continua
 Mantenimiento HW

 Mantenimiento SW

8

9

Escalabiliad en caliente

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Gestionabilidad

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Arquitectura AppServer 8.1 SE/EE
Central Repository
(domains/domain1)
applications
domain.xml
docroot
logs
config
lib

loadbalancer.xml
Load Balancer

asadmin

Domain Admin
Server
GUI
server
server

Instance
Instance
1
1

Central
Repository

Repository Cache

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

HADB
http Session
State, stateful
EJB

Instance
Instance
2
cluster12

Repository Cache

Instance
Instance
33

Repository Cache

19 Octubre 2009
Curso JBoss JB366
Arquitectura de Administración

asadmin>

Domain
Admin
Server

NA

Applications

NA
Instance1

Resources
JMX

Configuration
Domain

MA

MA
HADB Node0

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Instance2, Instance3

HADB Node1
19 Octubre 2009
Curso JBoss JB366
App Server 8.1 EE
Dominios Administrativos
Admin Domain A

I-1
I-2
I-3

I-4
Admin Domain C

I-5
Admin Domain C

I-8

I-7
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Servidor de Administración
Firewall

asadmin CLI
asadmin CLI

http(s)

Administration Server
Instance
Admin Servlet

http(s)

Admin GUI
JATO

Sun JAVA Studio
http(s)

Debugging

Navegador (Firefox, IE)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

Applications &
Configuration

Sun JAVA Studio

write
read
Server
Server
Server
Server
Instance
Instance
Instances
Instances
Instance
Instance

rmi/iiop(s)
App Client
App Client
Container
Container

19 Octubre 2009
Curso JBoss JB366
Viewing Monitoring Data - GUI

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366
Jboss AS 5.1.0 Instalación
GET JBOSS 5!

Questions?

César Pajares – ECM /CMS Manager
cesarpajares@gmail.com

19 Octubre 2009
Curso JBoss JB366

Más contenido relacionado

La actualidad más candente

Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
Miguel Angel Nieto
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
Stalin Eduardo Tusa Vitar
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBoss
Paco Garat
 
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
Andrea Guaygua
 
Un ejemplo sencillo con ejb
Un ejemplo sencillo con ejbUn ejemplo sencillo con ejb
Un ejemplo sencillo con ejb
lalov777
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity Edition
Miguel Angel
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Caracteristicas quitadas o desusadas en Windows Server 2012 R2
Caracteristicas quitadas o desusadas en Windows Server 2012 R2Caracteristicas quitadas o desusadas en Windows Server 2012 R2
Caracteristicas quitadas o desusadas en Windows Server 2012 R2
RaGaZoMe
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
Iker Canarias
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
Iker Canarias
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
Fausto Amador Mairena
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR  MySQL EN LINUXCOMO INSTALAR  MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
Ing-D-SW-TorresKhano--ME
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7
New York
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Servidor web lamp
Servidor web lampServidor web lamp
Servidor web lamp
yaser6700
 
Manual de instalacion de PostGreSQL - Windows 7
Manual de instalacion de PostGreSQL - Windows 7Manual de instalacion de PostGreSQL - Windows 7
Manual de instalacion de PostGreSQL - Windows 7
Mario Alfonso
 
Tomcat
TomcatTomcat
.
..
Kohana
KohanaKohana

La actualidad más candente (20)

Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBoss
 
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
 
Un ejemplo sencillo con ejb
Un ejemplo sencillo con ejbUn ejemplo sencillo con ejb
Un ejemplo sencillo con ejb
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity Edition
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Caracteristicas quitadas o desusadas en Windows Server 2012 R2
Caracteristicas quitadas o desusadas en Windows Server 2012 R2Caracteristicas quitadas o desusadas en Windows Server 2012 R2
Caracteristicas quitadas o desusadas en Windows Server 2012 R2
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR  MySQL EN LINUXCOMO INSTALAR  MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Servidor web lamp
Servidor web lampServidor web lamp
Servidor web lamp
 
Manual de instalacion de PostGreSQL - Windows 7
Manual de instalacion de PostGreSQL - Windows 7Manual de instalacion de PostGreSQL - Windows 7
Manual de instalacion de PostGreSQL - Windows 7
 
Tomcat
TomcatTomcat
Tomcat
 
.
..
.
 
Kohana
KohanaKohana
Kohana
 

Similar a JBoss AS Cluster - Curso JBoss JB366 Día 4

Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
Eduardo Castro
 
Trabajo zabi xs.docx
Trabajo zabi xs.docxTrabajo zabi xs.docx
Trabajo zabi xs.docx
johanapreciosa
 
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBDTips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Juan Fabian
 
Diseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL AzureDiseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL Azure
Joseph Lopez
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
Eduardo Castro
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Micael Gallego
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL Server
SolidQ
 
SQL como un servicio en la nube
SQL como un servicio en la nubeSQL como un servicio en la nube
SQL como un servicio en la nube
SpanishPASSVC
 
Build and deploy
Build and deploy Build and deploy
Build and deploy
Enrique Almeida
 
Cedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesadaCedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesada
Ronald Francisco Vargas Quesada
 
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayTips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Juan Fabian
 
Smbd (2)
Smbd (2)Smbd (2)
Smbd (2)
alinacarrion
 
Smbd (2)
Smbd (2)Smbd (2)
Smbd (2)
guestfa8635ba
 
Smb Dfin
Smb DfinSmb Dfin
Smb Dfin
alinacarrion
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
SpanishPASSVC
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
Microsoft Argentina y Uruguay [Official Space]
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
Amazon Web Services LATAM
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
yanez1814
 
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineAplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Joseph Lopez
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
Amazon Web Services LATAM
 

Similar a JBoss AS Cluster - Curso JBoss JB366 Día 4 (20)

Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 
Trabajo zabi xs.docx
Trabajo zabi xs.docxTrabajo zabi xs.docx
Trabajo zabi xs.docx
 
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBDTips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
 
Diseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL AzureDiseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL Azure
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL Server
 
SQL como un servicio en la nube
SQL como un servicio en la nubeSQL como un servicio en la nube
SQL como un servicio en la nube
 
Build and deploy
Build and deploy Build and deploy
Build and deploy
 
Cedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesadaCedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesada
 
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayTips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
 
Smbd (2)
Smbd (2)Smbd (2)
Smbd (2)
 
Smbd (2)
Smbd (2)Smbd (2)
Smbd (2)
 
Smb Dfin
Smb DfinSmb Dfin
Smb Dfin
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineAplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 

JBoss AS Cluster - Curso JBoss JB366 Día 4

  • 1. JBoss Professional Open Source JBoss AS Servicios Web con Axis César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 2. Índice • ESCALABILIDAD. Diseñando arquitecturas masivamente escalables. • ALTA DISPONIBILIDAD. Diseñando una arquitectura 24x7. • OPERACION CONTINUA. Estrategias de despliegue de Aplicaciones. • GESTIONABILIDAD. Integración con gestión de Red. Gestion JMX • ESTANDARES. J2EE 1.4. Roadmap J2EE 5.0. 19 Octubre 2009 César Pajares – ECM /CMS Manager Novedades. Curso JBoss JB366 cesarpajares@gmail.com
  • 3. Índice • IDENTIDAD y SEGURIDAD. Integración del servidor de Aplicaciones con sistemas LDAP y SSO • MERCADO Servidores J2EE. Servidores OpenSource vs Servidores comerciales César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 4. Contexto • En la gestión de los proyectos WEB no sólo es importante la arquitectura de desarrollo del proyecto, sino que la arquitectura de sistemas y de operación de la plataforma es fundamental a la hora de proporcionar la calidad de servicio requerida por los usuarios • Una aplicación funcionalmente perfecta no servira a su proposito si tiene un tiempo de respuesta muy lento o tiene una 19 Octubre 2009 César Pajares – ECM /CMS Manager Curso JBoss JB366 cesarpajares@gmail.com disponibilidad baja.
  • 5. Objetivos • Entender las posibilidades de arquitectura de operación de los servidores de Aplicaciones J2EE • Planificar adecuadamente el HW para conseguir la máximas prestaciones para un determinado presupuesto económico • Establecer criterios de decisión para elegir entre productos OpenSource, versiones básicas o versiones Enterprise según las necesidades 19 Octubre 2009 César Pajares – ECM /CMS Manager de cada proyecto cesarpajares@gmail.com Curso JBoss JB366
  • 6. ap lic ac ió n Servidores de Aplicaciones J2EE •Concurrency Presentation Business Logic Data access (optional) D es ar ro l Pr od uc to •Consistency •Security •Availability •Scalability •Administration •Integration •Distribution Components lo C om er ci al Containers César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 8. Funcionalidades extendidas de los Servidores de Aplicaciones Comerciales RMI / IIOP Timers HTTP(S) JMS management message routing / load balancing I3 I4 host A I5 I6 host B I7 I8 host C state availability César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 9. Escalabilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 10. • Cómo¿Qué es escalabilidad?cuando se comporta una arquitectura únicamente aumenta la carga del sistema y los demás parámetros se mantienen constantes • Idealmente la escalabilidad debe ser lineal, es decir si la arquitectura soporta N usuarios, y se doblan los recursos de la arquitectura, entonces soporta 2xN usuarios. • Escalabilidad vertical: Aumentando el numero de CPUs, y memoria de los mismos 19 Octubre 2009 César Pajares – ECM /CMS Manager servidores Curso JBoss JB366 cesarpajares@gmail.com
  • 11. Balanceo de carga 3 DNS GLB San Diego Server Local DNS Server 192.10.1.50 • Balanceo de carga basado en DNS New York San Francisco Server Local DNS Server 10.10.1.50 New York César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 12. Balanceo de Carga GLB Client 1 San Francisco Local LB Server Set-Cookie : Site Francisco; =San- • Balanceo de carga basado en Cookies Client 2 Server New York Local LB Set-Coo kie: Site= N César Pajares – ECM /CMS Manager cesarpajares@gmail.com ew York; Server Server 19 Octubre 2009 Curso JBoss JB366
  • 13. StickyR11 round-robin load balancing Client 1 R12 Cookie : instance=server1 Load Balancer R11 R12 Servlet (HTTP Session) Server 1 R21 R21 Client2 Rij = jth request from client i Cookie : instance=server2 Servlet (HTTP Session) Server 2 Cluster Permite que dirigir cada usuario a un mismo servidor durante el ciclo de vida de la sesión en la información de sesión  Implementación mediante cookies de sesión de navegador 2009 19 Octubre César Pajares – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 14. Diseño de los plugins de servidor Web • Persistencia del servidor basada en Cookies • Cookie Pasiva: .jsp o rl d w ello T /H – Mantenimiento Server/LBpersistencia basado en la cookie Web de la GE 543 4 generada por el servidor de aplicaciones 5 4!4 47 GET /Helloworld.jsp 49 ! 1 14754 34528 GET /index.jsp César Pajares – ECM /CMS Manager cesarpajares@gmail.com Server1 Server 2 98402 Server 3 JSE JS ES f1 D=s O NI SSI SI ON GE T ID =a 3 /ind 1K Server 1 D Server 2 ex. z0 !98 4 js p 02 !45 43 4 Server 3 19 Octubre 2009 Curso JBoss JB366
  • 15. Diseño de los plugins de servidor Web basada en Cookies • Persistencia del servidor • Cookie Activa ─ El servidor Web o balanceador genera sus propias cookies JSESSIONID=sf1 d49;Server=Serve r-1 Web Server/LB GE T /Hellowor ld.jsp Server-1 Server-2 e =a31Kz0;Serv JSESSIONID 3 r=Server- César Pajares – ECM /CMS Manager cesarpajares@gmail.com SSIO JSE =s f 1 NI D Server 1 ; D49 Server 2 Server-3 .jsp dex /in GET Server1 ell T /H GE .jsp o rl d ow Server 3 Server 2 GET /index .jsp JSES SION ID=a 3 1Kz0 ; 19 Octubre 2009 Curso JBoss JB366 Server 3
  • 16. Diseño de los plugins de servidor Web • Protocolos de gestión de servidores de aplicaciones en los balanceadores ─ Registro Estático ─ Registro Dinámico ─ Protocolo IP Multicast ─ Notificaciones en arranque / parada ─ F5 proporciona un API SOAP para conseguirlo César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 17. Arquitectura con Balanceador HW y Servidores WEB Firewall Load Balancer Web Server Plug-in App Server SE César Pajares – ECM /CMS Manager cesarpajares@gmail.com Web Server Plug-in Web Server Plug-in App Server App Server SE SE cluster1 Firewall App Server SE 19 Octubre 2009 Curso JBoss JB366
  • 18. Escalabilidad en una topología de 112 CPUs con altaCPU's AS HADB in disponibilidad a nivel de sesión Scalability Cluster Instances Nodes Web Server Plug-in Round Robin LB with HTTP Session Affinity Business Logic App Server EE 2 Instances App Server EE 2 Instances App Server EE 2 Instances App Server EE 2 Instances App Server EE 2 Instances 2 4 8 12 14 4 8 16 24 28 App Server App Server EE EE 2 Instances 2 Instances 100% 95% 87% 75% 70% 16 32 64 96 112 V880 (1G RAM per CPU, 1.2GHz Ultra Sparc 3) 14 App. Server Instances 8 CPU's Per Server x 7 =56CPU's HADB 4 N odes HADB 4 N odes HADB 4 N odes HADB 4 N odes HADB 4 N odes HADB 4 N odes HADB 4 N odes V880 (1G RAM per CPU, 1.2GHz Ultra Sparc 3) 28 HADB Nodes Session Replication: HTTP Session and Stateful Session Beans César Pajares – ECM /CMS Manager cesarpajares@gmail.com 8 CPU's Per Server x 7 =56CPU's 19 Octubre 2009 Curso JBoss JB366
  • 19. ¿Que Factores escalabilidad? influye en la de Escalabilidad • El diseño de la aplicación • Requisitos de Alta disponibilidad y nodos del Cluster • Coste de la comunicación entre servidores y nodes • Mecanismos de comunicación con el backend donde se almacenan los datos (Base de Datos, Host, Sistemas ERP, 19 Octubre 2009 César PajaresSistemas CRM, etc) – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 20. Factores disponibilidad y nodos Requisitos de Altade Escalabilidad del Cluster • Número de nodos de un cluster – Cuanto más nodos, mayor coste de comunicación – La transferencia de datos puede inundar el sistema • La eficiencia de los balanceadores – Detección de caidas de servidores de aplicaciones • Los costes de replicación de datos se incrementan con el número de nodos – Se puede mitigar con estrategias de replicación 19 Octubre 2009 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 21. Factores de Escalabilidad Consejos sobre nodos del Cluster • Tamaño del cluster – A menor número de nodos la escalabilidad es mayor • Comunicación entre los nodos del cluster – “Sesión replicada en todos los nodos”—funciona bien para un número de nodos pequeño (2,3,4) – “Principal/ Secundario”—cada nodo tiene una réplica con la sesión almacenada de manera pasiva César Pajares – – “Nodos totalmente independientes que 19 Octubre 2009 ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 22. Multi-Cluster S1 WS 6 LBP HTTP(S) S1 AS 7 Instance S1 AS 7 Instance S1 AS 7 Instance HADB Cluster A César Pajares – ECM /CMS Manager cesarpajares@gmail.com S1 AS 7 Instance S1 AS 7 Instance S1 AS 7 Instance S1 AS 7 Instance HADB S1 AS 7 Instance Cluster B 19 Octubre 2009 Curso JBoss JB366
  • 23. Factores de Escalabilidad Consejos de Alta Disponibilidad • Determinar el nivel requerido de tolerancia a fallos – Cuanto menos datos tenga que replicar mejor – Cuanto mayor sea la frecuencia de replicación mejor • Planificar el crecimiento en escalabilidad – Elegir estrategias que permitan mayor escalabilidad como almacén de sesiones independiente en caso de previsión de 19 Octubre 2009 César Pajares – ECM /CMS Manager Curso JBoss JB366 cesarpajares@gmail.com crecimiento
  • 24. Matriz con tipo de persistencia, frecuencia, y ámbito Persistence-type memory file ha ha ha ha ha ha Persistencefrequency stopserv* time-based* time-based time-based time-based web-event web-event web-event Persistencescope session modified-session modified-attribute session modified-session modified-attribute Supported in 7.0PE 7.0PE 7.0EE 7.0EE 7.0EE 7.0EE 7.0EE 7.0EE * :- These are not the supported values for this property César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 25. Escalabilidad El problema y Alta Disponibilidad en J2EE™ • Soporte de clustering de Servidores – Balanceo de carga entre instancias – Gestión del failover entre instancias • Garantizar alta disponibilidad de datos – Información de sesión de cliente (con autenticación) – Datos de negocio almacenados en base de datos – Mensajes pendientes de procesamiento • Garantizar alta disponibilidad de servicios 19 Octubre 2009 César Pajares – ECM /CMS Manager Curso JBoss JB366 cesarpajares@gmail.com J2EE
  • 26. Escalabilidad La solución y Alta Disponibilidad en J2EE™ • Los fabricantes proporcionan guías de configuración y arquitecturas de alta disponibilidad en las versiones Enterprise • Ajustar la arquitectura de sistemas a los requisitos de Escalabilidad y Alta Disponibilidad • Guías de diseño y codificación – Mantener la sesión de usuario lo más pequeña posible 19 Octubre 2009 César Pajares – ECM /CMS Manager – Pensar inicialamente que la aplicación debe JB366 Curso JBoss cesarpajares@gmail.com
  • 27. Balanceo de carga de peticiones Características HTTP • En general implementado en los plugin de los servidores WEB • Algoritmos de balanceo – Round-robin – Round-robin con pesos – Basados en el tiempo de respuesta • Asignación de clientes a instancias (stickiness) • Monitorización de disponibilidad de instancias 19 Octubre 2009 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 28. • • loadbalancer.xml <loadbalancer name="loadbalancer1"> <cluster name="cluster1"> • <instance name="instance1" enabled="true" listeners="http://instance1.domain.com"> </instance> • <instance name="instance1" enabled="true" listeners="http://instance2.domain.com"> </instance> • <web-module context-root="/webapps-simple" enabled="true" /> • <health-checker url="/" interval-in-seconds="10" /> • </cluster> • <property name="reload-poll-interval-in-seconds" value="5" /> • <property name="response-timeout-in-seconds" value="30" /> • <property name= "https-routing" value="true" /> • </loadbalancer> 19 Octubre 2009 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 29. URLs idempotentes Loop Servlet server1 LBP Loop Servlet César Pajares – ECM /CMS Manager cesarpajares@gmail.com server2 19 Octubre 2009 Curso JBoss JB366
  • 30. URLs idempotentes Loop Servlet server1 LBP Loop Servlet César Pajares – ECM /CMS Manager cesarpajares@gmail.com server2 19 Octubre 2009 Curso JBoss JB366
  • 31. URLs idempotentes Loop Servlet server1 LBP Loop Servlet César Pajares – ECM /CMS Manager cesarpajares@gmail.com server2 19 Octubre 2009 Curso JBoss JB366
  • 32. URLs idempotentes loadbalancer.xml <cluster name="cluster1"> <instance name="instance1" enabled="true" disable-timeout-in-minutes="60" listeners="http://localhost:8080"/> <instance name="instance2" enabled="true" disable-timeout-in-minutes="60" listeners="http://localhost:8081"/> <web-module context-root="infinite" enabled="true" disable-timeout-in-minutes="60" > <idempotent-url-pattern url-pattern="/*" no-of-retries="2" /> </web-module> César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 33. Alta Disponibilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 34. ¿Que es Alta Disponibilidad? El porcentaje del tiempo que el sistema entrega una respuesta correcta dentro de un determinado intervalo de tiempo. A= MTBF MTBF + MTTR MTBF MTTR MTBF == Mean Time Between Failure MTTR == Maximum Time to Repair • “5–Nueves” 99.999% ~5 Min. Caida / Año > Incluyendo paradas planificadas y no planificadas > Implica un alto de grado de tolerancia a fallos César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 35. Alta dispnobilidad de servicio Firewall Load Balancer Web Server Plug-in App Server SE Web Server Plug-in Web Server Plug-in App Server App Server SE SE cluster1 • Failover automático – Detección de caidas de servicio – Asignación de nueva César Pajares – ECM /CMS Manager cesarpajares@gmail.com instancia Firewall App Server SE > Muy eficiente en coste > Para aplicaciones sin sesión o cuya pérdida no sea grave para el19 Octubre 2009 servicio Curso JBoss JB366
  • 36. Alta Disponibilidad de Sesión • Aplicaciones de Misión Crítica Firewall Load Balancer Web Server Plug-in App Server EE Web Server Plug-in App Server EE App Server EE Shared Nothing Architecture HADB cluster1 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Web Server Plug-in App Server EE Firewall – Servicio 24x7 – Sesión y estado siempre recuperable – Fallos transparentes al usuario 19 Octubre 2009 Curso JBoss JB366
  • 37. Failover de la sesión HTTP Servlet (HTTP Session) Server 1 Load Balancer Servlet (HTTP Session) Http Session Persistenc e Session Store (or replicatio n Server 2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Cluster 19 Octubre 2009 Curso JBoss JB366
  • 38. Failover de la sesión HTTP Servlet (HTTP Session) Server 1 Load Balancer Http Session Session Persistence Store (or replicatio n Servlet (HTTP Session) Server 2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Cluster 19 Octubre 2009 Curso JBoss JB366
  • 39. Replicación en memoria Failover de la sesión Client Req1 Req 2 Load- Req1 Cookie : balancer Req2 primary=server1 secondary=server2 Procesa la petición y envía la respuesta Server1 se cae entre la petición Req1 y la petición Req2 HTTP Otras instancias del cluster Servlet (HTTP Session) Server 1(primary) Replicación sesión Servlet (HTTP Session) Server 2(secondary) Cluster Después del failover, el servidor2 pasa a ser el primario Se crea un tercer servidor secundario, si el servidor 1 queda in César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 40. Failover de la sesiones Usando un repositorio desesión HTTP Req1 Req1 LoadClient Req2 balancer Req2 Procesa la petición y envía la respuesta Server1 se cae entre la petición Req1 y la petición Req2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Servlet (HTTP Session) Server 1 Servlet (HTTP Session) Sesión guardada en el repositorio Session Repository Sesión recuperada del repositorio Server 2 Cluster 19 Octubre 2009 Curso JBoss JB366
  • 41. Estrategias para el Failover de la Frecuencia desesión HTTP la persistencia • Configuración específica de cada fabricante • Se puede configurar para persistir las sesiones al final de la petición http, o bien en background, cada cierto tiempo • La estrategia basada en tiempo da una mejor latencia pero con el riesgo potencial de pérdida de la información del último minuto 19 César Pajares – ECM /CMS Manager • Algunos fabricantes proporcionan APIs Octubre 2009 para Curso JBoss JB366 cesarpajares@gmail.com
  • 42. Estrategias para el Failover de la sesión Ámbito de la persistencia HTTP • Configuración específica de cada fabricante • Sirve para reducir el volumen de datos a persistir • Por defecto siempre se escribe toda la sesión en el almacen de persistencia • Se pueden configurar otros ámbitos: – Sesión modificada – Atributo Modificado César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 43. Balanceo de carga y Failover Técnicas invocaciones a EJB™ • InitialContextFactory específico del vendedor – Se distribuyen las siguientes llamadas a las diferentes instancias del cluster con una política round-robin: • New InitialContext() • InitialContext.lookup() • IORs con información de cluster – Los IOR incluyen información del servidor donde se generan, y el cliente reintenta las peticiones César Pajares – ECM /CMSotro nodo en caso de que uno de los19 Octubre 2009 con Manager Curso JBoss JB366 cesarpajares@gmail.com
  • 44. Balanceo de carga y Failover invocaciones a EJB™ Optimizaciones para evitar congestion en la red • Afinidad de Servidor – Las llamadas a los EJB por parte del mismo cliente siempre se hacen al mismo servidor, minimizando el número de conexiones abiertas simultaneamente • Colocalización: Útil para Servlet llamando EJB – Los servlets llaman al EJB local, dentro de la 2009 19 Octubre Curso JBoss JB366 misma JVM, en vez de balancear las peticiones. César Pajares – ECM /CMS Manager cesarpajares@gmail.com
  • 45. Failover de Stateless Session Beans Usar cualquier otra instancia del cluster • Secuencia de eventos – El Cliente detecta un fallo en la invocación – El Cliente identifica un endpoint IIOP alternativo – El Cliente reinvoca la petición – Cualquier instancia del SLSB sirve para gestionar la invocación ya que no existe información de estado asociada. César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 46. Failover de Stateful Session Se requiere Checkpointing Beans • Las actividades del Client son las mismas que en el caso de SLSB excepto: – La instancia asignada para ejecutar la llamada debe reconstruir la información de estado, o bien de repositorio o bien de otra instancia replicada • Problemas: – Las invocaciones de SFSB pueden ser transaccionales— el checkpointing se puede hacer sólo al final de la transacción o del 19 Octubre 2009 César Pajares – ECM /CMS Manager método si no la hubiera Curso JBoss JB366 cesarpajares@gmail.com
  • 47. EJB™ Stateful Session Bean Failover ShoppingCart Bean1 O CartClient R B Server 1 Session Store (or replication) ShoppingCart Bean Server 2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Cluster 19 Octubre 2009 Curso JBoss JB366
  • 48. EJB™ Stateful Session Bean Failover ShoppingCart Bean1 O CartClient R B Server 1 Session Store (or replication) ShoppingCart Bean Server 2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Cluster 19 Octubre 2009 Curso JBoss JB366
  • 49. Arquitectura Altamente Firewall Disponible Load Balancer Load Balancer Web Server Plug-in Web Server Plug-in Load Balancers Web Server Web Servers Plug-in Firewall App Server EE App Server EE App Server EE App Server EE Backing Store or Memory Replication César Pajares – ECM /CMS Manager cesarpajares@gmail.com App Server EE App Servers Backing Store or Memory Replication 19 Octubre 2009 Curso JBoss JB366
  • 50. ¿Que es tiempo que el sistema El porcentaje delAlta Disponibilidad? entrega una respuesta correcta dentro de un determinado intervalo de tiempo. A= MTBF MTBF MTBF + MTTR MTTR MTBF == Mean Time Between Failure MTTR == Maximum Time to Repair • “5–Nueves” 99.999% ~5 Min. Caida / Año > Incluyendo paradas planificadas y no planificadas > Implica un alto de grado de tolerancia a fallos César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 51. Fiabilidad Conceptos y Alta Disponibilidad • MTTF—Número /Frecuencia de Fallos • MTTR—Duración de los fallos (Time to Repair) • Alta fiabilidad no implica Alta Disponibilidad – 1 fallo —1hora para recuperarlo—Alta fiabilidad pero Baja Disponibilidad – 60 fallos —1 segundo para recuperarse de cada fallo. Baja fiabilidad pero Alta Disponibilidad • Incluso con un sistema poco fiable 19 Octubre 2009 César Pajares – ECM /CMS Manager cesarpajares@gmail.com (máquinas baratas) puedo tener Alta Curso JBoss JB366
  • 52. ¿Garantizan los servidores de aplicaciones la alta disponibilidad? • Los fabricantes se esfuerzan en lograr que esto sea verdad y en aislar a los desarrolladores y operadores de complejidad innecesaria. • El objetivo de los servidores de aplicaciones es que un cluster de servidores se comporte como un único servidor escalable, un servidor tolerante a fallos virtualizado • La /CMS Manager 19 Octubre 2009 César Pajares – ECM disponibilidad no es gratuita cesarpajares@gmail.com Curso JBoss JB366
  • 53. ¿Tiene algun coste activar la alta disponibilidad? • La alta disponibilidad de sesión implica una replicación de esta información en diferentes nodos. Por tanto tiene los siguientes costes: – Memoria para guardar las sesiones replicadas – Tráfico de red mientras se produce la replicación – Ciclos de CPU para gestionar la replicación César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 54. Error 1: Las aplicaciones no se tienen que ocupar de la Alta Disponibilidad sino los productos de Servidor • Las sesiones HTTP y los EJB de estado debe ser serializables – Consejo: las aplicaciones deben hacer el menor uso posible de los objetos de sesión • Previsión de posibles excepciones: – Los fallos que causen expeciones que no deban ser motivo de failover deben ser tratados específicamente para prevenir el posible 19 Octubre 2009 failover César Pajares – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 55. Error 2. Todas las peticiones son idempotentes • “La idempotencia es la cualidad de algo que tiene el mismo efecto si se usa múltiples veces que si sólo se usa una” • Ejemplos de operaciones idempotentes – “Fijar la temperatura de la habitación a 23º” – Cualquier operación de lectura • Muchas (la mayoría) no son idempotentes!!! – “Incrementa la cuenta en 20” César Pajares – ECM /CMS Manager – “Pasa al estado siguiente” cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 56. Error 2. Todas las peticiones son idempotentes • Las peticiones no idempotentes pueden afectar a la integridad de los datos si se repiten • Failover implica reintentos en operaciones de negocio – Muchas (la mayoría) de las operaciones de negocio no son idempotentes • Cuidado con funcionalidad del tipo failover 19 Octubre 2009 César Pajares transparente – ECM /CMS Manager cesarpajares@gmail.com Curso JBoss JB366
  • 57. Error 2. Todas las peticiones son idempotentes • Peticiones HTTP – Algunos balanceadores soportan failover transparente sobre peticiones idempotentes • Usar con precaución. Hacer un análisis previo. • No poner en riesgo la integridad de los datos • Peticiones RMI/IIOP – Los buenos orb distinguen los estados de “no completada”, “si completada” y “en duda” y el César Pajares – ECM /CMS Manager failover solo se debería hacer en el primer 19 Octubre 2009 caso Curso JBoss JB366 cesarpajares@gmail.com
  • 58. Error 2. Todas las peticiones son idempotentes • Mensajes JMS(entrada de MDB’s) – Usar la transacción manejada por el contenedor para onMessage() – El envio de duplicados es posible, la aplicación lo debería tener en cuenta (también en el origen) – Ayudas para determinar el reenvio de mensajes: • getJMSRedelivered() – “Es probable aunque no se garantiza que el mensaje fue entregado anteriormente pero su recepción no fue confirmada entonces • getJMSCorrelationID() César Pajares – ECM /CMS Manager cesarpajares@gmail.comÚtil en situacioens – donde los mensajes son 19 Octubre 2009 Curso correlados JBoss JB366
  • 59. Idempotencia—Es seguro reintentar? 3 Reintentar? Browser 1 2 Load Balancer 5 Possible Failure Points Servlet (HTTP Session) 4 Commit or Rollback Here Server 1 Servlet (HTTP Session) Server 2 César Pajares – ECM /CMS Manager cesarpajares@gmail.com EIS Cluster Session Store or Replication Http Session Persistence 19 Octubre 2009 Curso JBoss JB366
  • 60. Error 3. Usar las sesiones HTTP o EJBs como una Base de Datos • Guardar demasiados datos en las sesiones – En una sola instancia—“sólo” un problema de memoria – En clusters, un impacto directo al rendimiento, escalabilidad y alta disponibilidad • No tienen transaccionalidad – No se garantiza sincronización con el back-end – En caso de failover se puede romper la sincronización César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 61. Error 4. Los upgrades y parches no afectan a la Alta Consejo: Probar con Rolling Upgrades y Disponibilidad Quiescence • Que es quiescence – Algunos balanceadores lo soportan a dos niveles: • Instance-level quiescence • Application-level quiescence • En entornos de producción probar primero en entornos de certificación o pruebas César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 62. Instance Quiescing 1 2 LB R1S1 R1S2 R1 S3 Instance1 Instance2 Disable Instance1 LB R1S4 R1 S5 Instance1 Instance3 R2S1 Instance2 Instance3 Cluster Cluster After disable timeout LEGEND 3 LB RiSj – ith Request (R) in the jth HTTP Session (S) R3S1 Instance1 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Instance2 Cluster Instance3 19 Octubre 2009 Curso JBoss JB366
  • 63. Application Quiescing Load Balancer Old version of app Disabled cluster S1 S1 S2 S3 Load Balancer S2 S3 S4 C1 C2 New version of app Load Balancer S2 S3 S4 C1 S1 Two versions of the app are being serviced Load Balancer S4 Cluster with upgraded C1 apps César Pajares – ECM /CMS Manager cesarpajares@gmail.com S1 C2 S2 S3 C1 S4 19 Octubre 2009 Curso JBoss JB366
  • 64. Alta Disponibilidad de Sesión • Aplicaciones de Misión Crítica Firewall Load Balancer Web Server Plug-in App Server EE Web Server Plug-in App Server EE App Server EE Shared Nothing Architecture HADB cluster1 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Web Server Plug-in App Server EE Firewall – Servicio 24x7 – Sesión y estado siempre recuperable – Fallos transparentes al usuario 19 Octubre 2009 Curso JBoss JB366
  • 65. Persistencia a velocidades de memoria con alta disponibilidad de 5 nueves Instance Instance 11 2. Fast synchronous memory to memory replication across nodes, JVM freed quickly S1 S0 Instance Instance 22 1. Real time in-memory writes from JVM heap to HADB Memory Cache HADB in-Memory Cache Memory Memory NODE 0 S0 NODE S0 1 S1 S1 HADB - Disk 3. Asynchronous writes to HADB > Always-On - Automatic > Self Repairing S0 César Pajares – ECM /CMS Manager S1 cesarpajares@gmail.com S0 S1 > No intervention 19 Octubre 2009 > Massively Scalable Curso JBoss JB366
  • 66. HADB – AlmacénReplicated de sesiones DRU 1 Distributed Session Data DRU 2 1 N3 N5 2 3 Potential spare node 4 N7 1 1 2 N1 0 2 3 3 4 0 0 4 5 5 N2 N4 N6 N8 Site 5 César Pajares – ECM /CMS Manager Mirrored Fragments cesarpajares@gmail.com Copies 19 Octubre 2009 Curso JBoss JB366
  • 67. Arquitectura de datos y acceso Synchronous Replication: Data Distribution: Updates are synchronized across both copies of the data From the outside, the cluster Is invisible, and Clustra looks like a single-image database Tables automatically distributed across active nodes Fragments Table T 0 1 2 3 4 5 0 DRU 0 DRU 1 NODE 0 0 NODE 0 1 NODE 2 2 NODE 2 3 NODE 4 4 NODE 4 5 1 1 2 3 4 5 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Transparency: 3 5 NODE 6 JDBC 1 3 Load balancing: 5 Connections automatically shared across all nodes NODE 7 Site 19 Octubre 2009 Curso JBoss JB366
  • 68. Fallos SW - Autoreparación 1: Process failure on node 2: Continue using data on mirror node NODE 0 0 1 NODE 0 1 NODE 0 0 NODE 0 1 NODE 2 2 NODE 2 3 NODE 2 2 NODE 2 3 NODE 4 NODE 5 NODE 4 1 3 3 spare spare 3: Automatic restart & resynchronization NODE 0 0 NODE 0 1 NODE 2 2 NODE 2 3 1 1 3 NODE 4 3 spare NODE 5 spare 1 3 spare 1 3 NODE 5 spare 4: Back to Normal NODE 0 0 NODE 0 1 NODE 2 2 NODE 2 3 1 3 NODE 4 spare 1 3 NODE 5 spare Self-Repair – No Human Intervention César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 69. Fallos HW- Autoreparación 1: Node Fails 2: Continue using data on mirror node NODE 0 0 1 NODE 0 1 NODE 0 0 NODE 0 1 NODE 2 2 NODE 2 3 NODE 2 2 NODE 2 3 NODE 4 NODE 5 NODE 4 1 3 3 spare spare 3: Repair to spare node Node to be replaced NODE 0 1 1 NODE 2 2 NODE 2 3 NODE 0 4 1 NODE 5 3 3 spare 1 3 spare 1 3 NODE 5 spare 4: Repair complete Node to be replaced NODE 0 1 1 NODE 2 2 NODE 2 3 NODE 0 4 1 NODE 5 3 3 spare Self-Repair – No Human Intervention César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 70. Operación continua César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 71. Operación continua  Mantenimiento HW  Mantenimiento SW 8 9 Escalabiliad en caliente César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 72. Gestionabilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 73. Arquitectura AppServer 8.1 SE/EE Central Repository (domains/domain1) applications domain.xml docroot logs config lib loadbalancer.xml Load Balancer asadmin Domain Admin Server GUI server server Instance Instance 1 1 Central Repository Repository Cache César Pajares – ECM /CMS Manager cesarpajares@gmail.com HADB http Session State, stateful EJB Instance Instance 2 cluster12 Repository Cache Instance Instance 33 Repository Cache 19 Octubre 2009 Curso JBoss JB366
  • 74. Arquitectura de Administración asadmin> Domain Admin Server NA Applications NA Instance1 Resources JMX Configuration Domain MA MA HADB Node0 César Pajares – ECM /CMS Manager cesarpajares@gmail.com Instance2, Instance3 HADB Node1 19 Octubre 2009 Curso JBoss JB366
  • 75. App Server 8.1 EE Dominios Administrativos Admin Domain A I-1 I-2 I-3 I-4 Admin Domain C I-5 Admin Domain C I-8 I-7 César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 76. Servidor de Administración Firewall asadmin CLI asadmin CLI http(s) Administration Server Instance Admin Servlet http(s) Admin GUI JATO Sun JAVA Studio http(s) Debugging Navegador (Firefox, IE) César Pajares – ECM /CMS Manager cesarpajares@gmail.com Applications & Configuration Sun JAVA Studio write read Server Server Server Server Instance Instance Instances Instances Instance Instance rmi/iiop(s) App Client App Client Container Container 19 Octubre 2009 Curso JBoss JB366
  • 77. Viewing Monitoring Data - GUI César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 78. Jboss AS 5.1.0 Instalación GET JBOSS 5! Questions? César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366

Notas del editor

  1. This is a technical diagram of the functionality that is included with the Sun ONE Application Server, Enterprise Edition. The two key features that provide high-availability for the application server environment is load-balancing at the front-end and fail-over on the back-end. There are three key components to Sun&apos;s new “Always On”, Continuous Availability solution. First … the “Always On” technology provides five 9’s availability for application session state. This means that through integrated load-balancing and a scalable underlying architecture, an end users’ experience is not interrupted if an application failure occurs. Second … the “Always On” technology is “Self Repairing”. This is instrumental in providing continuous availability for application session state. With its Self Repairing capabilities, user intervention is virtually eliminated when a failure occurs. The application server itself has the ability to determine the root cause of the failure and, in most cases, restore the failed system to its original condition. The third component of the Sun ONE App Server “Always On” technology is an integrated management view across the app server and the high availability subsystem. This ensures that the look and feel of the app server configuration and management is consistent across all components of the app server.
  2. Shared Nothing, Loosely Coupled Architecture. Elegance through Simplicity JVM relegated to run Business Logic /process J2EE Artifacts (no session replication across VM&apos;s ). Simplifies LB Replication in Separate External tier HADB (not JVM)‏ Competitors: Discourage persistence to Database, non-performant (synchronous writes to disk) Session Replication between JVM is not a scalable reliable mechanism to exchange and store and mission critical information Failure prone, replication errors impact business logic No additional licensing (CPU fees) to process HADB on separate tier from J2EE Application Server tier
  3. Failures fall into two categories: soft failure, where the failure is due to a process or software failure, and hard failures, where a machine crashes or you loose power. 1: Here we have a situation were node 0 has suffered a “soft failure”, for example a database process has failed. Any transactions using data on node 0 will be aborted, the applications will need to retry them. Also all clients connections to node 0 will be disconnected. 2: Node 0 will not be able to exchange “I&apos;m alive” messages with its neighbors and will be determined as dead. At this time the hot-standby fragment on the mirror node will become available. 3:Automatically the database will restart the failed node. Log records of any transaction that came in while node 0 was down are shipped from the mirror node to node 0, and the data is resyhchronized. 4: Once node 0 is resynchronized, it rejoins the other nodes, and we are back to our orginal configuration. Note, no human intervention is required. From the detection of the failure, to restarting and resynching the nodes – it is all automatic to the database software. Also the database is still available while the self-repair takes place.
  4. 1: Now lets consider node 0 has suffered a power outage. 2: Once again failure will be detected due to the missing heart beat from node 0. Node 1 activiates the hot-standby fragment. Performance in fact goes up slightly during this time as only one copy is being made. 3: In this case node 0 will not restart. The nodes will give the failed node a time window in which to restart, once that window has elasped they will initiate a repair to a spare. All data and log records from node 1 will be copied down to the spare node in the DRU of the failed node, the fragments will then be rebuilt. Time taken to complete this procedure depend on the amount of data stored on the node, ie: 5 GB of data (plus another 5 for the copy) will take around 30 minutes to copy, depending on the speed of the interconnects. It is at this time that the database is most vulnerable to a “double failure”; a failure on node 1 would require the database to be stopped and restored from backup. Storing less data per node will bring this window of vulnerability down because the transfer times are faster. 4: Once the repair is complete the spare node becomes active. Note; while the repair in underway performance will drop because of the extra work being done. One important issue to always consider when deploying highly available systems is that you should always plan for considerable overhead in processing and storage capacity to handle such recovery operations. Again this process requires no human intervention and the database is available at all times.