Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
JBoss
Professional Open Source

JBoss AS
Servicios Web con Axis

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

...
Índice
• ESCALABILIDAD. Diseñando arquitecturas
masivamente escalables.
• ALTA DISPONIBILIDAD. Diseñando una
arquitectura ...
Índice
• IDENTIDAD y SEGURIDAD. Integración del
servidor de Aplicaciones con sistemas LDAP
y SSO
• MERCADO Servidores J2EE...
Contexto
• En la gestión de los proyectos WEB no sólo
es importante la arquitectura de desarrollo
del proyecto, sino que l...
Objetivos
• Entender las posibilidades de arquitectura
de operación de los servidores de
Aplicaciones J2EE
• Planificar ad...
ap
lic
ac
ió
n

Servidores de Aplicaciones J2EE
•Concurrency

Presentation
Business Logic
Data access
(optional)

D
es
...
Servidores de Aplicaciones
Application
Comerciales
Development

Management

Performance
Platform
Edition
Application
Runti...
Funcionalidades extendidas de los
Servidores de Aplicaciones
Comerciales RMI / IIOP
Timers
HTTP(S)
JMS

management

messag...
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áme...
Balanceo de carga

3 DNS GLB

San Diego

Server
Local DNS Server
192.10.1.50

• Balanceo de carga basado en DNS
New York

...
Balanceo de Carga
GLB
Client 1

San Francisco Local LB
Server

Set-Cookie
: Site
Francisco; =San-

• Balanceo de carga bas...
StickyR11
round-robin load balancing
Client 1

R12

Cookie :
instance=server1

Load Balancer

R11
R12

Servlet (HTTP
Sessi...
Diseño de los plugins de
servidor Web
• Persistencia del servidor basada en Cookies
• Cookie Pasiva:
.jsp
o rl d
w
ello
T ...
Diseño de los plugins de servidor
Web basada en Cookies
• Persistencia del servidor
• Cookie Activa
─ El servidor Web o ba...
Diseño de los plugins de servidor
Web
• Protocolos de gestión de servidores de
aplicaciones en los balanceadores

─ Regist...
Arquitectura con Balanceador
HW y Servidores WEB
Firewall
Load
Balancer

Web
Server
Plug-in

App Server
SE

César Pajares ...
Escalabilidad en una topología de 112 CPUs con altaCPU's
AS
HADB
in
disponibilidad a nivel de sesión Scalability Cluster
I...
¿Que Factores escalabilidad?
influye en la de Escalabilidad

• El diseño de la aplicación
• Requisitos de Alta disponibili...
Factores disponibilidad y nodos
Requisitos de Altade Escalabilidad del
Cluster
• Número de nodos de un cluster
– Cuanto má...
Factores de Escalabilidad
Consejos sobre nodos del Cluster
• Tamaño del cluster
– A menor número de nodos la escalabilidad...
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 – ...
Factores de Escalabilidad
Consejos de Alta Disponibilidad
• Determinar el nivel requerido de tolerancia
a fallos
– Cuanto ...
Matriz con tipo de persistencia, frecuencia, y
ámbito

Persistence-type
memory
file
ha
ha
ha
ha
ha
ha

Persistencefrequenc...
Escalabilidad
El problema y Alta Disponibilidad en J2EE™
• Soporte de clustering de Servidores
– Balanceo de carga entre i...
Escalabilidad
La solución y Alta Disponibilidad en J2EE™
• Los fabricantes proporcionan guías de
configuración y arquitect...
Balanceo de carga de peticiones
Características
HTTP

• En general implementado en los plugin de los
servidores WEB
• Algo...
•
•

loadbalancer.xml

<loadbalancer name="loadbalancer1">
<cluster name="cluster1">
• <instance name="instance1" enabled=...
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

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

server2...
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

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

server2...
URLs idempotentes
Loop
Servlet

server1
LBP
Loop
Servlet

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

server2...
URLs idempotentes
loadbalancer.xml
<cluster name="cluster1">
<instance name="instance1" enabled="true"
disable-timeout-in-...
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
determina...
Alta dispnobilidad de servicio
Firewall
Load
Balancer

Web
Server
Plug-in

App Server
SE

Web
Server
Plug-in

Web
Server
P...
Alta Disponibilidad de Sesión

• Aplicaciones de
Misión Crítica

Firewall
Load
Balancer

Web
Server
Plug-in

App Server
EE...
Failover de la sesión HTTP
Servlet (HTTP
Session)

Server 1
Load Balancer

Servlet (HTTP
Session)

Http
Session
Persistenc...
Failover de la sesión HTTP
Servlet (HTTP
Session)

Server 1
Load Balancer

Http
Session Session
Persistence Store (or

rep...
Replicación en memoria
Failover de la sesión
Client

Req1

Req 2 Load- Req1
Cookie :
balancer Req2
primary=server1
seconda...
Failover de la sesiones
Usando un repositorio desesión HTTP
Req1

Req1

LoadClient Req2 balancer Req2
Procesa la petición ...
Estrategias para el Failover de la
Frecuencia desesión HTTP
la persistencia
• Configuración específica de cada fabricante
...
Estrategias para el Failover de la
sesión
Ámbito de la persistencia HTTP
• Configuración específica de cada fabricante
• S...
Balanceo de carga y Failover
Técnicas invocaciones a EJB™
• InitialContextFactory específico del vendedor
– Se distribuyen...
Balanceo de carga y Failover
invocaciones a EJB™

Optimizaciones para evitar congestion en la red

• Afinidad de Servidor
...
Failover de Stateless Session
Beans
Usar cualquier otra instancia del cluster
• Secuencia de eventos
– El Cliente detecta ...
Failover de Stateful Session
Se requiere Checkpointing
Beans

• Las actividades del Client son las mismas que
en el caso d...
EJB™ Stateful Session Bean Failover
ShoppingCart
Bean1

O
CartClient R
B

Server 1

Session
Store
(or replication)

Shoppi...
EJB™ Stateful Session Bean Failover
ShoppingCart
Bean1

O
CartClient R
B

Server 1

Session
Store
(or replication)

Shoppi...
Arquitectura Altamente
Firewall
Disponible
Load Balancer
Load Balancer

Web
Server
Plug-in

Web
Server
Plug-in

Load
Balan...
¿Que es tiempo que el sistema
El porcentaje delAlta Disponibilidad?
entrega una respuesta correcta dentro de un
determinad...
Fiabilidad
Conceptos

y Alta Disponibilidad

• MTTF—Número /Frecuencia de Fallos
• MTTR—Duración de los fallos (Time to
Re...
¿Garantizan los servidores de
aplicaciones la alta
disponibilidad?

• Los fabricantes se esfuerzan en lograr que
esto sea ...
¿Tiene algun coste activar la alta
disponibilidad?

• La alta disponibilidad de sesión implica una
replicación de esta inf...
Error 1: Las aplicaciones no se
tienen que ocupar de la Alta
Disponibilidad sino los productos
de Servidor

• Las sesiones...
Error 2. Todas las peticiones son
idempotentes
• “La idempotencia es la cualidad de algo que
tiene el mismo efecto si se u...
Error 2. Todas las peticiones son
idempotentes

• Las peticiones no idempotentes pueden
afectar a la integridad de los dat...
Error 2. Todas las peticiones son
idempotentes
• Peticiones HTTP
– Algunos balanceadores soportan failover
transparente so...
Error 2. Todas las peticiones son
idempotentes
• Mensajes JMS(entrada de MDB’s)
– Usar la transacción manejada por el cont...
Idempotencia—Es seguro
reintentar?
3
Reintentar?
Browser

1

2

Load
Balancer

5

Possible Failure
Points

Servlet (HTTP
S...
Error 3. Usar las sesiones HTTP o
EJBs como una Base de Datos
• Guardar demasiados datos en las sesiones
– En una sola ins...
Error 4. Los upgrades y parches
no afectan a la Alta
Consejo: Probar con Rolling Upgrades y
Disponibilidad
Quiescence
• Qu...
Instance Quiescing
1

2

LB

R1S1

R1S2

R1 S3

Instance1

Instance2

Disable
Instance1

LB

R1S4

R1 S5

Instance1

Insta...
Application Quiescing
Load
Balancer

Old version
of app

Disabled
cluster

S1

S1

S2

S3

Load
Balancer

S2

S3

S4

C1

...
Alta Disponibilidad de Sesión

• Aplicaciones de
Misión Crítica

Firewall
Load
Balancer

Web
Server
Plug-in

App Server
EE...
Persistencia a velocidades de
memoria con alta disponibilidad de
5 nueves
Instance
Instance
11

2. Fast
synchronous
memory...
HADB – AlmacénReplicated
de sesiones
DRU 1

Distributed

Session Data

DRU 2

1

N3

N5

2
3

Potential
spare
node

4

N7
...
Arquitectura de datos y acceso
Synchronous Replication:

Data Distribution:

Updates are synchronized
across both copies o...
Fallos SW - Autoreparación

1: Process failure on node

2: Continue using data on mirror node

NODE
0
0
1

NODE
0
1

NODE
...
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

...
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 Manag...
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

loa...
Arquitectura de Administración

asadmin>

Domain
Admin
Server

NA

Applications

NA
Instance1

Resources
JMX

Configuratio...
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...
Servidor de Administración
Firewall

asadmin CLI
asadmin CLI

http(s)

Administration Server
Instance
Admin Servlet

http(...
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 2...
Próxima SlideShare
Cargando en…5
×

JBoss AS Cluster - Curso JBoss JB366 Día 4

JBoss AS Cluster - Curso JBoss JB366 Día 4
Servicios Web con Axis

  • Inicia sesión para ver los comentarios

JBoss AS Cluster - Curso JBoss JB366 Día 4

  1. 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. 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. 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. 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. 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. 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
  7. 7. 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
  8. 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. 9. Escalabilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 33. Alta Disponibilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 70. Operación continua César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  71. 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. 72. Gestionabilidad César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  73. 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. 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. 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. 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. 77. Viewing Monitoring Data - GUI César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  78. 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

×