Informe del tiempo: creación de una vitrina de aplicaciones reconstruibles

Un buen proyecto reutilizable de WebSphere CloudBurst Appliance que utiliza patrones

El experto en tecnologías emergentes de IBM® WebSphere® Dustin Amrhein utiliza WebSphere CloudBurst Appliance para clarificar el esfuerzo que conlleva la creación de un entorno de aplicación empresarial de vitrina que puede hospedar varias sesiones de los clientes y ser reconfigurado según la demanda para soportar muchas instancias diferentes de esas sesiones de los clientes.

Dustin Amrhein, Technical Evangelist, IBM

Author photoDustin Amrhein se unió a IBM como parte del equipo de desarrollo para WebSphere Application Server. Mientras ocupaba ese cargo, trabajó en el desarrollo de infraestructura para servicios web y modelos de programación para servicios web. Además, lideró el esfuerzo técnico del desarrollo de un marco de servicios RESTful para Java. En su rol actual, Dustin es Technical Evangelist de tecnologías emergentes en la cartera de WebSphere de IBM. Actualmente se concentra en tecnologías WebSphere que ofrecen capacidades de cloud computing, entre ellas WebSphere CloudBurst Appliance.



29-07-2011

Creo que mis compañeros tecnólogos conocen bien el sentimiento. Se trata de ese sentimiento que surge cuando los correos electrónicos, las reuniones, las llamadas en conferencia, y todo lo demás que forma parte de la compañía nos desgasta. Espero que sea algo con lo que no tenga que lidear muy a menudo, pero si usted es como yo, sólo existe una solución a su problema.

Entorno

El corazón y el alma de Dustin pueden encontrarse in his My developerWorks blog (aunque usted quiza pueda aprender algo de Dustin's MydW profile).

¡Debe descubrir el experto que hay en usted!

Es verdad. ¡Es hora de colgar el teléfono, cerrar el navegador en la reunión web, y utilizar el botón delete que se encuentra en su buzón de entrada de correo electrónico con mucha decisión! Es hora de hacer codificaciones, scripting, configuraciones, e integraciones! En otras palabras, es hora de ponerse quitarse los guantes y poner manos a la obra.

Aquí hay un problema sin resolver

No hace mucho tiempo atrás, necesitaba un respiro de lo mundano, y por suerte, tuve la oportunidad de desarrollar un buen proyecto con WebSphere CloudBurst Appliance.

En soporte a un trabajo que se realizará proximamente con varios clientes, un grupo de IBM vino a nuestro equipo a pedir ayuda. Necesitaban colaboración para la construcción de un entorno de aplicación empresarial de vitrina que pudieran utilizar para hospedar varias sesiones de los clientes. Además de la creación inicial de dicho entorno también necesitaban poder reconstruir el entorno según la demanda de modo que este pudiera soportar las diferentes instancias de las sesiones de los clientes.

Nuestro equipo, ansioso por ayudar, inmediatamente preguntó lo obvio: ¿Qué desea encontrar en el entorno de aplicación de su empresa? Por supuesto, la respuesta partía de una aplicación, específicamente una aplicación de servicios web Java™ .

Dado que ellos describieron el tipo de aplicación que querían y el tipo de experiencia de usuario que deseaban ofrecer, se hicieron evidentes varias necesidades, entre las que se encontraban las siguientes:

  • La aplicación necesitaba la habilidad para leer y escribir datos desde una base de datos back-end.
  • La aplicación dependía mucho del uso de las sesiones HTTP. Como tal, debíamos asegurarnos de que estas sesiones estuvieran altamente disponibles.
  • Debíamos exponer las interfaces SOAP y JSON para la aplicación.
  • La demanda por la aplicación sería inestable y experimentaría picos y valles.

Definición de la infraestructura

Nuestro equipo luego hizo dos cosas. Comenzamos a desarrollar la aplicación y luego a decidir sobre la infraestructura que necesitaríamos para soportar la aplicación. Aunque el desarrollo de la aplicación es intersante: tratar temas como JPA, JSON, jQuery, y por supuesto, los servicios web, deseamos concentrarnos en el soporte de la infraestructura para la aplicación.

Pronto comprendimos que para soportar las necesidades de la aplicación mencionadas por los clientes, necesitaríamos varios componentes diferentes para la infraestructura de la aplicación. Después de un par de encuentros de "discusión", decidimos que utilizaríamos la siguiente infraestructura para soportar la aplicación:

  • WebSphere Application Server: WebSphere Application Server suministró el contenedor del tiempo de ejecución para hospedar nuestro servicio web JEE y otros componentes de aplicación relacionados (como los archivos HTML).
  • DB2 Enterprise Edition: Utilizamos DB2 como el depósito de información back-end para nuestra aplicación de servicios web.
  • WebSphere Virtual Enterprise: Aunque hay algunas características que presentan pequeñas diferencias que uno puede explotar en WebSphere Virtual Enterprise, nosotros apalancamos clusters dinámicos y políticas de nivel de servicio de la aplicación. Desplegamos nuestra aplicación de servicios web en un cluster dinámico y esta, junto con las políticas de nivel de servicio, nos brindó la habilidad para contener la carga de trabajo desigual en nuestra aplicación.
  • WebSphere DataPower XC10: Utilizamos el dispositivo WebSphere DataPower XC10 como depósito para las sesiones HTTP. Utilizando un colectivo que contuviera solamente tales dispositivos, podríamos asegurar la disponibilidad de las sesiones HTTP. Además, dado que almacenamos las sesiones HTTP en el dispositivo, liberamos la memoria que de otro modo habrían utilizado en la JVM de la aplicación.
  • WebSphere DataPower XI50: Como todos los demás componentes mencionados aquí, el dispositivo WebSphere DataPower XI50 suministra todo un host de capacidades. En nuestro caso, utilizamos el proxy de servicios web y las capacidades de trasformación del dispositivo para habilitar una interfaz JSON en nuestra aplicación de servicio web.

Si está familiarizado con los entornos middleware empresariales, comprenderá que el despliegue de cada uno de estos componentes no es una tarea sencilla; sin embargo, además de simplemente instalar cada pieza de la infraestructura, necesitábamos integrarlas para lograr los objetivos trazados para la aplicación. Además, debimos establecer un medio para que otros recolectaran el trabajo que realizamos de modo que pudieran suministrar de manera sólida el entorno oportunamente y con un alto grado de confianza en que la configuración del entorno resultante fuera precisa.


Elección de la herramienta y el enfoque

Tomando en cuenta todo esto, llegamos a una solución que respondió a todas nuestras necesidades: WebSphere CloudBurst.

Es más, decidimos crear un patrón de WebSphere CloudBurst que permitiera a los usuarios desplegar el entorno de la aplicación destino en una nube privada.

Específicamente, creamos un patrón para encapsular la configuración de la aplicación y de la infraestructura de la aplicación que presentamos anteriormente. Cualquier usuario que necesitara configurar este entorno de aplicación podría simplemente ingresar a WebSphere CloudBurst Appliance, desplegar el patrón, y obtener un entorno listo en cuestión de segundos.

Los desplegadores no necesitaron saber cómo instalar, configurar, e integrar la aplicación y la infraestructura relacionada dado que el patrón encapsuló estas actividades. Además, el patrón aseguró la configuración correcta del entorno cada vez que un usuario lo desplegaba.


Y aquí está el resultado

Entonces, ¿Cómo se ve este patrón? Como se puede observar en la Figura 1, está formado por partes de WebSphere Application Server, WebSphere Virtual Enterprise, y DB2 Enterprise Edition.

Figura 1. El patrón de WebSphere CloudBurst
El patrón de WebSphere CloudBurst

Los componentes

Lo que ofrece cada componente:

  • WebSphere Application Server:el patrón incluye un administrador de despliegue y dos nodos personalizados. Los nodos personalizados hospedan las instancias de WebSphere Application Server y durante el despliegue, WebSphere CloudBurst automáticamente los federa en la celda administrada por el nodo administrador del despliegue.
  • WebSphere Virtual Enterprise: el patrón incluye una instancia On-Demand Router (ODR). La ODR habilita la administración del flujo de trabajo basado en la prioridad que permite aplicar de políticas de nivel de servicio a las aplicaciones.
  • DB2 Enterprise Edition: el patrón incluye una sola parte de DB2 Enterprise Edition que representa una instancia de un servidor de base de datos.

Es importante tener señalar que creamos una imagen personalizada usando el mecanismo extend-and-capture de WebSphere CloudBurst. Esta imagen personalizada contiene todos los bits presentes en WebSphere Application Server Hypervisor Edition (con la opción Intelligent Management Pack) incluida en el dispositivo y además, instalamos binarios de clientes de WebSphere eXtreme Scale. Utilizamos estos binarios durante la configuración del entorno de despliegue.

El scripting

Hablando de la configuración, suministramos todas las acciones necesarias para la configuración del tiempo de despliegue en nuestros patrones a través de paquetes de script incluidos en nuestro patrón. Como puede observar en la Figura 1, el patrón contiene muchos paquetes de scripts diferentes:

  • Add IBM HTTP Server node: este paquete de scripts crea una instancia de un IBM HTTP Server que se ejecuta en la misma máquina virtual que el nodo administrador del despliegue. WebSphere CloudBurst permite el uso de este paquete de scripts.
  • Profile augmentation-WXS: este paquete de scripts utiliza los binarios de WebSphere eXtreme Scale presentes en las máquinas virtuales de WebSphere Application Server (a través de nuestra imagen personalizada) para aumentar los perfiles para que lleguen a ser perfiles WebSphere eXtreme Scale. Los perfiles deben ser perfiles WebSphere eXtreme Scale para configurar nuestra aplicación para el uso de WebSphere DataPower XC10 como depósito de sesiones HTTP.
  • Create DB2 data source: este paquete de scripts configura una fuente de datos de WebSphere Application Server. La aplicación de servicios web utiliza esta fuente de datos para leer y escribir datos en la instancia del servidor de la base de datos DB2.
  • Create proxy: este paquete de scripts crea un proxy HTTP al revés de nuestra instancia IBM HTTP Server en el dispositivo WebSphere DataPower XI50. Esto nos permite superar las restricciones de scripting de dominio cruzado y enviar solicitudes AJAX desde nuestra aplicación que se ejecutarán dentro del dominio de WebSphere Application Server hasta un dispositivo de WebSphere DataPower XI50 en un dominio diferente.
  • Configure DataPower rewrite policy: este paquete de scripts actualiza un proxy de servicios web definido de WebSphere DataPower XI50 para señalar la ubicación de nuestra aplicación de servicios web recién desplegada.
  • Install DB2 client JARs: este paquete de scripts instala JARs del cliente de DB2 en los nodos de WebSphere Application Server necesarios.
  • Dynamic cluster configuration: este paquete de scripts crea el cluster dinámico de WebSphere Virtual Enterprise durante el despliegue. WebSphere CloudBurst ofrece este paquete de scripts cuando seleccionamos la opción Define dynamic clusters en Advanced options para el patrón.
  • XC10 configuration: este paquete de scripts configura nuestra aplicación de servicio web para que utilice WebSphere DataPower XC10 como depósito de sesiones HTTP.
  • Install application: este paquete de scripts instala la aplicación de servicios web en el cluster dinámico de WebSphere Virtual Enterprise.
  • Create DB2 database: este paquete de scripts crea la base de datos y la tabla necesarias para nuestra aplicación en la instancia del servidor de la base de datos DB2.

En conjunto, estos paquetes y partes de scripts se unen para definir un patrón que, al desplegarse, nos proporciona todo lo que necesitamos. Exponemos este patrón a múltiples usuarios diferentes, ellos pueden desplegarlo cuando sea necesario, y el resultado del despliegue es un sistema virtual que contiene su entorno de aplicación personalizado configurado, ejecutándose en una nube en las instalaciones del cliente. La Figura 2 muestra el sistema virtual y sus puntos de integración credos mediante el despliegue del patrón que aparece en la Figura 1.

Figura 2. El sistema virtual desplegado
El sistema virtual desplegado

¿Funcionó?

En resumen, el patrón ayudó a mi equipo a cumplir con cada uno de los objetivos nuestros y de los usuarios con los cuales estuvimos trabajando. Pudimos suministrar una unidad directamente desplegable (patrón) que permitió a diferentes usuarios, con distintos niveles de capacidad en middleware, suministrar un entorno de aplicación significativo y en funcionamiento.

Además, los clientes podían abastecer este entorno en cuestión de minutos (en promedio menos de 60) y podían recrear fielmente el entorno cuando fuera necesario. ¡El hecho de que estuvieron ejecutando este entorno en una nube fue simplemente una bonificación!

El siguiente paso

Para aprender más sobre el uso de WebSphere CloudBurst, puede hacer lo siguiente:

Para mi, esto prueba dos hechos importantes.

  • En primer lugar, un enfoque basado en patrones para la configuración y el despliegue de aplicaciones y de infraestructura de aplicaciones a una nube tiene un valor real y prometedor tanto para los administradores como para los usuarios de tales entornos.
  • En segundo lugar, y más específicamente en lo que se refiere a WebSphere CloudBurst, definitivamente prueba que usted puede utilizar el dispositivo para crear cualquier tipo de entorno que necesite basado en la nube, desde el más simple hasta el más complejo.

Si crea y depliega entornos de aplicación middleware con frecuencia, espero que considere seriamente el uso de WebSphere CloudBurst y el valor que su enfoque a estos entornos basado en patrones puede aportarle a usted y a su organización.

Recursos

Aprender

  • Aprenda más sobre el WebSphere CloudBurst Appliance.
  • En los cloud developer resources de developerWorks descubra y comparta el conocimiento y la experiencia de los desarrolladores de aplicaciones y servicios que crean sus proyectos para el despliegue en la nube.
  • En los WebSphere developer resources de developerWorks encontrará muchos recursos técnicos para la plataforma de WebSphere incluyendo algunos que hablan sobre WebSphere en la nube.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing, WebSphere, Information mgmt, tecnologia Java
ArticleID=622125
ArticleTitle=Informe del tiempo: creación de una vitrina de aplicaciones reconstruibles
publish-date=07292011