Preparación para IBM PureApplication System, Parte 2: ¿Está lista su aplicación para ser virtualizada?

La Parte 2 de esta serie de artículos analiza cómo puede decidir qué opción de implementación es la que mejor se adapta a su aplicación en particular.

Kyle Brown, Distinguished Engineer, IBM  

Kyle BrownKyle Brown es un Distinguished Engineer de IBM Software Services for WebSphere y se especializa en tecnologías SOA y emergentes. Kyle brinda servicios de consultoría, educación y entrenamiento en SOA, temas orientados a objetos y tecnologías J2EE para los clientes de Fortune 500. Es coautor de Java Programming with IBM WebSphere y Persistence in the Enterprise. Además, es un orador frecuente en conferencias sobre temas como SOA, Enterprise Java, diseño orientado a objetos y patrones de diseño.


Nivel de autor profesional en developerWorks

31-07-2012

Introducción

En el artículo anterior, Parte 1: Visión general sobre la incorporación de migraciones, pudo ver cómo IBM® PureApplication® System soporta aplicaciones virtuales y sistemas virtuales. En breve, la diferencia entre los dos es un intercambio entre los niveles de control en comparación con el nivel de automatización. En este artículo, analizaremos cómo puede decidir qué opción de implementación es la que mejor se adapta a su aplicación en particular.


Ventajas y limitaciones de las aplicaciones virtuales

Una aplicación virtual es una manera de implementar una aplicación JEE junto con un conjunto de decisiones relacionadas con políticas que determinan de qué manera la aplicación debe escalar y utilizar los recursos de Java™ Virtual Machine (JVM). Cuando se implementa una aplicación como una aplicación virtual, también se aprovecha un conjunto de servicios compartidos e integrados que manejan los detalles de cuestiones como el equilibrio de carga y la administración de HttpSession.

Sin embargo, esos beneficios automatizados tienen un precio. La topología de su aplicación (por ejemplo, cuántos servidores de aplicaciones se ejecutan al mismo tiempo, qué servidor maneja qué tipo de solicitudes y demás) es administrada de manera activa por PureApplication System. Esto significa, por ejemplo, que no puede dividir su aplicación en una capa web que ejecuta servlets, y una capa EJB que ejecuta EJB remotos. Para muchas aplicaciones, esto no es un problema, pero para las aplicaciones más antiguas que dependen de un empaquetamiento de múltiples capas o que dependen de recursos de una topología de aplicación específica, esto si puede ser un problema. Otra parte de ese precio es que solo se soportan determinados modelos de programación. Para aquellas aplicaciones que requieren más flexibilidad, PureApplication System también soporta sistemas virtuales.


Ventajas y limitaciones de los sistemas virtuales

Un sistema virtual es un mecanismo que crea una plantilla o un patrón de una topología completa desarrollada a partir de imágenes virtuales. Puede utilizar las imágenes Hypervisor Edition provistas por IBM para desarrollar sus sistemas virtuales, o puede desarrollar su propio punto de partida desde una imagen RHEL base a través de la herramienta IBM Tivoli® ICON.

Otra posibilidad es el recurso "Capture and Extend" de PureApplication System, que le permite comenzar con una imagen virtual y agregar softwares adicionales a esa imagen antes de volver a empaquetarla para otro uso. Otra consideración clave en el desarrollo de sistemas virtuales es que puede agregar su propio scripting en el sistema virtual. Si desea implementar una aplicación en un patrón de topología que ha creado, deberá redactar esa implementación para que ocurra como parte del proceso de instanciación de implementar una instancia de sistema virtual en el hardware de PureApplication System.


Cómo seleccionar el enfoque adecuado

En la mayoría de los casos, la integración de una aplicación a PureApplication System no es en realidad un proceso complejo. Sin embargo, una clave para aprovechar al máximo su proceso de migración es entender que es necesario seleccionar correctamente el enfoque adecuado para la integración de su aplicación. PureApplication System soporta varias maneras diferentes de implementar su aplicación. Seleccionar una manera que dé como resultado la menor cantidad de trabajo para obtener el mayor beneficio es la decisión más importante que puede tomar en el proceso de migración. Lo que hemos encontrado al integrar varias aplicaciones ISV existentes es que la manera más simple de abordar esto es sencillamente formulando una serie de preguntas:

  1. ¿Está desarrollando una aplicación nueva?

    La razón por la cual esta pregunta debe ser la primera es simple, usted quiere aprovechar el mecanismo de implementación más simple y sencillo. Como ha visto anteriormente, el modelo de implementación más simple que ofrece PureApplication System es la aplicación virtual. Si está desarrollando una aplicación nueva y tiene la oportunidad de influenciar en las opciones de diseño y tecnología de la aplicación, seleccione aquellos enfoques que hacen que una aplicación sea compatible con una aplicación virtual.

    Sin embargo, en la mayoría de los casos, las aplicaciones con las que trata día a día no son aplicaciones en entorno virgen. Por el contrario, usted trata con aplicaciones existentes que ya fueron desarrolladas y que ya están siendo ejecutadas en un entorno existente. Luego, tiene que tener en cuenta la siguiente pregunta.

  2. ¿Esto es una aplicación web?

    Esa es una pregunta aparentemente simple. Lo que en realidad queremos decir es, "¿Esta aplicación solo toma solicitudes en HTTP o HTTP entrantes? Esta definición incorpora varios patrones diferentes en el desarrollo de aplicaciones. Esto puede significar alguna de las siguientes cosas:

    • Una aplicación que proporciona servicios RESTful a una interfaz de usuario escrita con tecnologías Javascript y AJAX.
    • Un proveedor de servicios web que implementa servicios SOAP para clientes externos en Internet.
    • Una aplicación web clásica desarrollada con servlets y JSP.

    De todos modos, esta definición no incluye algunos tipos de aplicaciones, por ejemplo, una aplicación cliente-servidor de Java que utiliza un cliente pesado de Java que se conecta a través de RMI o RMI/IIOP a los EJB en un backend no se define como una aplicación web con esta definición. Esa consideración también nos lleva a la siguiente pregunta.

  3. ¿Utiliza EJB remotos?

    Los EJB han sido una parte muy útil del modelo de programación de JEE casi desde su surgimiento. Sin embargo, el beneficio de los EJB remotos se equilibra gracias a un intercambio en la complejidad de la topología de su aplicación. Los servidores de su aplicación deben manejar el tráfico HTTP que entra en sus servlets, JSP y servicios web, y además el tráfico RMI/IIOP que entra desde los clientes de EJB. Habitualmente, esto se logra con el desarrollo de dos capas de servidores de aplicaciones; uno dedicado a manejar el tráfico HTTP, y el otro dedicado a manejar el tráfico RMI. Como parte del proceso de simplificación que utiliza aplicaciones virtuales, usted había tenido que dejar de lado algunas de estas opciones topológicas. Por lo tanto, como ya lo analizamos anteriormente, si necesita EJB remotos, siga utilizando sistemas virtuales donde estas opciones de topología estén disponibles para su uso.

  4. ¿Su aplicación está empaquetada de una manera estándar?

    Otra vez, esta es una pregunta aparentemente simple. Al decir "de una manera estándar", queremos preguntar si está empaquetada como un archivo EAR, WAR, como un archivo ZIP o un EBA (archivo Enterprise Bundle Archive de OSGi). Como ve, a pesar de que el estándar de JEE ha sido empaquetar aplicaciones como archivos EAR o WAR, y que el estándar de OSGi ha introducido archivos EBA, muchas aplicaciones todavía no están empaquetadas de esa manera; por el contrario, se envían como estructuras de directorio "seccionadas". A pesar de que esa manera puede funciona para servidores simples como Tomcat, hacer las cosas de una manera que no sigue los estándares hace que le resulte más complicado pasar a servidores JEE nuevos, como los que soportan aplicaciones virtuales. Por tal motivo, si su respuesta es no, vuelva a empaquetar su aplicación en uno de estos formatos estándares. Del mismo modo, existen muchas otras estrategias de empaquetamiento en WebSphere® Application Server que probablemente quiera utilizar, por ejemplo, bibliotecas compartidas asociadas con el servidor. Nuevamente, para simplificar el modelo, esto no se utiliza en aplicaciones virtuales. Si no puede evitar el uso de estos enfoques, entonces considere utilizar sistemas virtuales en su lugar.

  5. ¿Su aplicación está utilizando modelos de programación JEE estándares?

    Según una antigua frase "Una de las grandes cosas sobre los estándares es que nos brindan muchas opciones". Desafortunadamente, eso es verdad cuando hablamos de modelos de programación. Se introducen nuevas API con rapidez, y el proceso de la comunidad Java está lleno de los restos de JSR que nunca se aprobaron o que nunca obtuvieron la aceptación necesaria para convertirse de manera oficial en parte del estándar de JEE. Nuevamente, el problema es que con las aplicaciones virtuales, lo que quiere es que las cosas sean simples. Por tal motivo, debe restringir el conjunto de API que son soportadas a un conjunto manejable. De este modo, si su aplicación utiliza solo API estándares de EE5, J2EE1.4, 1.3 o 1.2, OSGI, JPA, JAX-RPC, JAX-WS y JAX-RS, no debería tener problemas.

    Por otro lado, si está escribiendo a un nivel de JEE más nuevo que ese (como JEE 6), o está utilizando alguna API poco clara desde lo más profundo de JCP, entonces, es probable que su aplicación no funcione como una aplicación virtual. Al dejar esto en claro, el enfoque de IBM es ofrecer soporte para API más nuevas a través de Feature Packs. Por lo tanto, si tiene en mente un nuevo nivel de API, es posible que tenga que considerar desarrollar un sistema virtual a través de WebSphere Application Server V8 e incorporar el Feature Pack (y el soporte para esa API) cuando esté disponible.

  6. ¿Esta aplicación actualmente se ejecuta en WebSphere Application Server Versión 7 o Versión 8?

    Esta es una pregunta suave pero importante. Existen varias respuestas diferentes que debe tener en cuenta. Incluso si su respuesta a esta pregunta es "sí", pero encuadra en una de las categorías anteriores que trataban sobre el modelo de programación, empaquetamiento o sobre el uso de EJB remotos, entonces, su decisión ya fue tomada por usted, su aplicación no puede ser una aplicación virtual. Sin embargo, si su respuesta es "no", es posible que todavía pueda ejecutarla como una aplicación virtual. Si su aplicación cumple con las preguntas de modelo de programación y de empaquetamiento anteriores, entonces todo está en orden. Sin embargo, si su aplicación se está ejecutando en una versión mucho más antigua de WebSphere Application Server o en otro servidor de aplicaciones, entonces es posible que primero tenga que hacer un esfuerzo de migración antes de poder pasar a una aplicación virtual o a un sistema virtual.

  7. ¿Su aplicación requiere algún producto de la familia de WebSphere como WebSphere Portal Server o WebSphere Process Server?

    Como hemos descrito anteriormente, el enfoque de la aplicación virtual es uno de los objetivos en el desarrollo de aplicaciones web. Si su tipo de aplicación (o "carga de trabajo", si desea utilizar esa terminología) no es una aplicación web, entonces, el enfoque de la aplicación virtual actual no es el adecuado para usted. Tenga en cuenta que este es un argumento exclusivamente de un momento específico. Con el tiempo, se agregarán los nuevos tipos de carga de trabajo a IBM Workload Deployer y a PureApplication System. Por lo tanto, en algún momento, incluso si usted tiene una aplicación de administración de procesos de negocios, puede aprovechar los niveles más altos de la automatización que actualmente ofrecen las aplicaciones virtuales para las aplicaciones web. Sin embargo, por el momento, si usted requiere alguno de estos productos, debe desarrollar un sistema virtual que incorpore los productos IBM Hypervisor Edition que se envían como parte del catálogo en línea de PureApplication System o IBM Workload Deployer.

  8. ¿Su aplicación está lista para aprovechar la administración de sesión con WebSphere Extreme Scale?

    Al igual que con muchas de las preguntas anteriores, hay mucho que desglosar en este argumento. Esencialmente, en primera instancia, debe considerar su uso de la API de HttpSession. Muchas aplicaciones están escritas de manera completa sin estado y no utilizan en absoluto la API de HttpSession. Esas aplicaciones se adaptan perfectamente a las aplicaciones virtuales. Por otro lado, si actualmente utiliza HttpSession en su aplicación, entonces, tiene que ponerse a pensar cómo lo utiliza.

    En primer lugar, ¿todos los contenidos de su HttpSession están declarados como java.io.Serializable? Si no lo están, entonces usted está en problemas. El modelo que siguen las políticas de ajuste de escala para las aplicaciones virtuales se basa en que las instancias del servidor de la aplicación se pueden crear y destruir de manera dinámica según sea necesario, con el fin de manejar la cantidad de carga que la aplicación ocupa en cualquier momento. Si usted asume que su servidor tiene una vida útil prolongada y que su memoria es un repositorio "seguro" para la información de sesión, se sorprenderá de mala manera si intenta implementar una aplicación virtual.

    Del mismo modo, si sus sesiones son muy grandes (cientos de megabytes), entonces, le puede sorprender el tiempo que demora la carga de una sesión en la red desde la grilla de WebSphere Extreme Scale. Por otro lado, si sus sesiones son pequeñas y completamente serializables, y cumplen con las mejores prácticas de HttpSession, entonces, usted puede utilizar aplicaciones virtuales.

  9. ¿Su aplicación utiliza un producto de seguridad externo o utiliza API especiales de seguridad, como interceptores de autenticación de confianza (TAI) o plugins JAAS?

    Lo último que debe considerar son los requisitos de seguridad de su aplicación. Si su aplicación no cuenta con requisitos de seguridad o si simplemente utiliza la seguridad de WebSphere, y si también usa uno de los registros de usuario soportado (TDS, Microsoft® Active Directory), entonces, usted puede implementar su sistema como una aplicación virtual. Por otro lado, si utiliza un producto de seguridad separado, como Tivoli Authentication Manager, o uno de sus productos competidores, o cualquiera de los recursos especiales de WebSphere Security como JAAS o TAIs, entonces, necesita planificar el desarrollo de un sistema virtual.


Cómo seleccionar el enfoque correcto en el momento correcto

Es importante considerar que las aplicaciones tienen ciclos de vida y es posible que un solo modelo de implementación no dure toda la vida de la aplicación. Por ejemplo, se recomienda que implemente una aplicación en sus entornos de desarrollo y prueba como una aplicación virtual, con el fin de contar con el modelo más simple y para asegurarse de que capture correctamente los parámetros de configuración (como la política JVM) en dichos entornos. No obstante, es posible que desee implementarla como un sistema virtual en producción para configurar el entorno más optimizado para esa aplicación. De la misma manera, usted puede tener una aplicación existente que tiene que ser implementada como un sistema virtual en este momento, pero en versiones posteriores de la aplicación, puede trabajar para cambiar su código, de manera que sea compatible para una implementación como aplicación virtual.


Cómo planificar el futuro

Lo mejor que puede hacer al determinar si su aplicación está lista para aplicaciones virtuales es simplemente tomarse el tiempo para planificar el proceso. Afortunadamente, IBM lo ayudará con este proceso. El proceso PureExperience tiene varios pasos que se explayan sobre las preguntas que hemos formulado al realizar más preguntas en cada una de estas áreas. En este proceso de preguntas y respuestas, un profesional técnico para cliente de IBM lo puede ayudar a comprender qué modelo de implementación se adapta mejor a su aplicación particular. De la misma manera, los IBM Software Services for WebSphere lo ayudarán con los servicios de migración de la aplicación y otras ofertas para que pueda adoptar PureApplication System. Comuníquese con su representante de ventas de IBM para obtener más ayuda y poder comenzar.


Conclusión

En la Parte 2 de esta serie de artículos, se ha discutido qué opción se adapta mejor a su aplicación particular al prepararse para IBM PureApplication System. Aprendió a distinguir entre los enfoques del sistema virtual y la aplicación virtual. Además, se proporcionó una serie de preguntas para ayudarlo a decidir qué enfoque es mejor para usted.

Recursos

Aprender

Obtener los productos y tecnologías

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=WebSphere, Cloud computing
ArticleID=827955
ArticleTitle=Preparación para IBM PureApplication System, Parte 2: ¿Está lista su aplicación para ser virtualizada?
publish-date=07312012