JBoss AS Cluster - Curso JBoss JB366 Día 4
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

JBoss AS Cluster - Curso JBoss JB366 Día 4

  • 545 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
545
On Slideshare
545
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
38
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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. <br /> 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. <br /> 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. <br /> 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. <br />
  • Shared Nothing, Loosely Coupled Architecture. Elegance through Simplicity <br /> JVM relegated to run Business Logic /process J2EE Artifacts (no session replication across VM&apos;s ). Simplifies LB <br /> Replication in Separate External tier HADB (not JVM)‏ <br /> Competitors: <br /> Discourage persistence to Database, non-performant (synchronous writes to disk) <br /> Session Replication between JVM is not a scalable reliable mechanism to exchange and store and mission critical information <br /> Failure prone, replication errors impact business logic <br /> No additional licensing (CPU fees) to process HADB on separate tier from J2EE Application Server tier <br />
  • 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. <br /> 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. <br /> 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. <br /> 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. <br /> 4: Once node 0 is resynchronized, it rejoins the other nodes, and we are back to our orginal configuration. <br /> 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. <br />
  • 1: Now lets consider node 0 has suffered a power outage. <br /> 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. <br /> 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. <br /> 4: Once the repair is complete the spare node becomes active. <br /> 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. <br /> Again this process requires no human intervention and the database is available at all times. <br />

Transcript

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