Mostrando entradas con la etiqueta Elastic Load Balancer. Mostrar todas las entradas
Mostrando entradas con la etiqueta Elastic Load Balancer. Mostrar todas las entradas

martes, 21 de mayo de 2013


En otra entrada les comentaba sobre una plataforma para soluciones de integración e interoperabilidad que estoy diseñando/desarrollando sobre la base de la suite de WSO2.

Una de las subplataformas que componen la plataforma integral era la de Seguridad, que tiene como base al Identity Server de WSO2. Las otras se vinculan al BAM y al ESB y dedicaré futuras entradas a ellas.

Entre los elementos más importantes de esta plataforma es que brinda soporte a los RNF relacionados con la alta disponibilidad y la escalabilidad de las soluciones, algo sumamente importante desde el punto de vista de arquitectura, como pueden apreciar en esta otra entrada un poco más genérica y abarcadora.

En esta entrada quiero seguir con este tema de las plataformas y mostrarle como pueden ser usadas y desplegadas en diferentes entornos de hardware en función de los RNF que se quieran lograr.

Gracias a la tecnología empleada por WSO2 para el desarrollo de sus componentes y herramientas, OSGI, se pueden emplear varios esquemas de despliegue.

El primero es, luego de empaquetar todos los componentes necesarios en una única solución software, desplegar  la misma en un único servidor como pueden ver en la siguiente imagen.

Fig. 1. Esquema de despliegue en un solo servidor.

Si se desea mantener la idea inicial de tener 3 subplataformas (seguridad, monitoreo e integración) pues se puede emplear el siguiente esquema de despliegue.

Fig. 2. Esquema de despliegue en 3 servidores.

Ahora bien, si se nos han dado RNF relacionados con alta disponibilidad, escalabilidad y rendimiento entonces cada subplataforma debe ser clusterizada siguiente el siguiente esquema.

Fig.3. Esquema de despliegue de un clúster.

Como pueden ver este esquema sirve para el primer esquema de despliegue y también para el segundo. Solo hay que tener en cuenta que cada plataforma debe ser clusterizada usando el esquema mostrado arriba donde existe un nodo management y N nodos workers y un ELB o Elastic Load Balancer que se encarga de balancear la carga. Lo interesante es que un solo nodo ELB o un clúster del ELB se puede utilizar para todas las soluciones que se pongan detrás de él.

Cuando usar cada uno de estos esquema depende de los requerimientos del cliente. Está claro que el primero es para escenarios donde no existe el hardware adecuado para tener varios servidores físicos o virtualizados o donde se desea tener un todo en uno

El segundo potencia más el funcionamiento de cada subplataforma por separado y es cuando tenemos para usar 3 servidores en este tipo de soluciones.

Si el cliente nos pide una solución clusterizada  pues aplicamos el esquema 3 al esquema 1 o 2.

Los que vienen de plataformas privativas como ORACLE o TIBCO pues están acostumbrados a una sola pieza de software que lo tiene todo ya bien integrado, pero más que nada es una cuestión de gusto y de costumbre. Además de que se hace difícil integrar las más de 15 herramientas de WSO2 en una sola :-D

lunes, 13 de mayo de 2013

Introducción a la Plataforma de WSO2. II


En la entrada anterior explicaba brevemente que era WSO2 y las herramientas que tenía en su desarrollo. En esta entrada quiero seguir describiendo brevemente algunas de sus herramientas.


1.       WSO2 Developer Studio: esta herramienta es diferente de las demás porque es un plugin para el eclipse. Y la idea es que se puedan desarrollar usando este plugin un conjunto de componentes que también pueden ser desarrollados desde las herramientas. Entre las principales cosas que se pueden realizar se pueden incluir las siguientes:
·         Desarrollo de servicios de datos.
·         Desarrollo de servicios axis2.
·         Desarrollo de clientes para servicios web.
·         Diseño de procesos en BPEL.
·         Desarrollo de servicios proxy.
·         Desarrollo de servicios de reglas de negocio.
·         Desarrollo de componentes de interfaz de usuario para las herramientas.
·         Creación de componentes .car que permiten el despliegue del resto de los componentes desarrollados en las herramientas.
·         Conexión local a las herramientas así como su ejecución, y conexión remota a las herramientas permitiendo el despliegue de los componentes desarrollados.


2.       Governance Registry: esta herramienta sirve fundamentalmente para el almacenamiento de los meta datos de los servicios web, lo que permite que también se puedan gestionar estos servicios a partir de definir ciclos de vida de los mismos y controlar su desarrollo y versionado. Implementa  2 mecanismos de descubrimiento de los servicios UDDIv3 y WS-Discovery. Este último permite que los servicios desplegados o desarrollados en otras herramientas sean registrado automáticamente en el Governance Registry y además permite obtener los endpoint de los servicios desde lo clientes en tiempo de ejecución apoyando aún más la transparencia de ubicación que se logra con el ESB.


3.       Message Broker: la herramienta permite la creación de colas de mensajería basadas en el estándar JMS así como topics para la implementación de patrones de integración basados en mensajes. Esto potencia la comunicación asíncrona así como esquemas de arquitectura basados en el patrón de publicación/subscripción.


4.       Elastic Load Balance: en arquitecturas de alto rendimiento y alta disponibilidad siempre hace falta un balanceador de carga que enrute los mensajes hacia sus destinos finales, en este caso los diferentes nodos de uno o varios clústeres. Eso es lo que permite esta herramienta que se puede poner enfrente de uno o varios clústeres de las herramientas de la suite y permite el balanceo de carga entre ellos. Además tiene la característica de ser elástico, o sea que en función del nivel de carga puede configurarse para que agregue o elimine nodos de un clúster previa configuración de las condiciones que se deben cumplir.