Únete a la Comunidad de Directivos de Tecnología, Ciberseguridad e Innovación Byte TI

Encontrarás un espacio diseñado para líderes como tú.

Arquitectura de Aplicaciones Empresariales en la Nube. Revisión o revolución.

Las áreas de desarrollo y arquitectura de aplicaciones de las empresas se ven enfrentadas a nuevas tendencias marcadas por la evolución de los modelos de despliegue de las aplicaciones, vinculados a nuevas necesidades y esquemas de consumo de esas aplicaciones: a los más asimilados de acceso web universal, movilidad, virtualización, se suman más recientemente las propiedades características de un modelo de consumo en la Nube, como son escalabilidad horizontal masiva (múltiples nodos en paralelo ejecutando la misma aplicación), elasticidad para ajustar el dimensionado del entorno a la demanda en cada momento,  asignación dinámica de recursos compartidos, o ese concepto de tan difícil traducción como la ‘multitenancy’ (capacidad de proporcionar sobre el mismo entorno de ejecución servicios a diferentes unidades o clientes de forma independiente, aislada y posiblemente personalizada).

Estos conceptos crean problemas ya que las arquitecturas de aplicaciones empresariales tradicionales no están concebidas con estos conceptos en mente y puede resultar especialmente retador aplicarlo. Por ejemplo, si nuestra arquitectura empresarial se basa en una escalabilidad vertical de nuestra capa de repositorio de datos (nuestra base de datos) pasar a una escalabilidad horizontal y una coherencia distribuida de cache en memoria puede ser extremadamente complejo. Nos encontramos en principio con dos alternativas ligeramente diferentes: diseñar y desplegar soluciones en plataformas Cloud como servicio (PaaS, Platform as a Service, un modelo de consumo de servicios de plataforma de aplicación, con una arquitectura ya diseñada para desplegar aplicaciones que se ajusten a sus características) o diseñar y desplegar soluciones con características Cloud (algunas o todas de las indicadas anteriormente) pero no necesariamente a través de un proveedor de PaaS como Microsoft Azure, Force.com o más recientemente VmWare CloudFoundry, entre otros.


Ventajas e Inconvenientes

La adopción de una propuesta comercial de PaaS como las indicadas anteriormente tiene la ventaja de proporcionar un modelo ya predefinido basado en direccionar los aspectos de arquitectura mencionados, proporcionando un modelo estándar para todas las aplicaciones que despleguemos en ese entorno (estándar en el sentido de común de forma horizontal para todas ellas), pero proporciona una dependencia en el modelo y por tanto, de forma indirecta, una dependencia en el proveedor del servicio que es difícil de minimizar (el caso menos evidente de éstos es el de VmWare CloudFoundry al ser concebido con un modelo opensource y abierto que posibilitaría al menos de forma teórica el despliegue de una arquitectura equivalente en otro proveedor de servicios o en nuestra propia nube privada).

En general, el camino hacia una arquitectura de aplicaciones cloud debería pasar en primer lugar por diseñar una solida capa de infraestructura virtual y dinámica en la que desplegar las aplicaciones que no requieren una re-arquitectura de su diseño, de forma que aún utilizando una arquitectura tradicional, se puedan beneficiar de los principios de flexibilidad, escalabilidad y compartición dinámica de recursos que proporciona un CPD virtual, con el mínimo coste de reingeniería. Para aquellas aplicaciones que por sus características sí requieran una arquitectura actualizada a principios Cloud, será necesario decidir si adoptamos una arquitectura de plataforma de mercado o diseñamos esa arquitectura a partir de componentes orientados a ‘cloud’ (desplegados sobre el mismo CPD virtual que hemos diseñado para nuestras aplicaciones de arquitectura convencional).


Experiencia práctica

Un ejemplo significativo de componentes orientados a ‘cloud’ en el ámbito de arquitectura de aplicaciones, es la suite de componentes VmWare vFabric. Basado en los principios más modernos de la arquitectura de aplicaciones en el mundo Java, lideradas por la Spring Foundation, vFabric proporciona un conjunto de piezas de  solución o ‘building-blocks’ para la construcción de aplicaciones orientadas a servicios ‘cloud’.

EMC Consulting, en un proyecto estratégico con uno de sus principales clientes del mundo del brokerage financiero se enfrentó a una situación como la descrita anteriormente. El cliente disponía de una solución central de su actividad de negocio basado en modelos tradicionales de gestión de colas  para gestionar las transacciones comerciales, típicas en los entornos mainframe y todavía muy habitual en el sector de banca en nuestros días. Esa solución adolecía de las capacidades dinámicas de escalabilidad y flexibilidad que el cliente requería y, sobre todo, suponía unos costes enormes de gestión y mantenimiento.

En este escenario, se acordó con el cliente que la mejor opción era realizar una re-arquitectura completa de la solución con componentes de vFabric: Spring framework como base de la solución que permitiera un modelo de adaptadores, definiendo el flujo y transformación de la información de forma dinámica, GemFire como cache en memoria que permitiera una escalabilidad horizontal con coherencia transaccional y RabbitMQ como núcleo de mensajería. De esta forma se proporcionaba una solución con principios cloud y 100% virtualizable para desplegar en la infraestructura virtual existente con dos capacidades primarias que justificaban el coste de transición, con un retorno de inversión de meses: gracias a su modelo de adaptadores el alta de un nuevo cliente pasaba de días a horas, con el consiguiente beneficio de negocio; su modelo de escalabilidad masiva horizontal sobre componentes estándar de hardware y software suponía un cambio completo de estructura de costes y un ahorro sustancial tanto de adquisición como de mantenimiento de la solución con respecto a la solución heredada.


Conclusiones

La adopción de una infraestructura virtual a todos los niveles (almacenamiento, red y computación) es un camino lógico para dotar en primera instancia de las capacidades y principios básicos de modelos cloud a la mayoría de las aplicaciones empresariales. En los casos en los que por las características de la aplicación se requiere una actuación a nivel de arquitectura de la aplicación, existe en el mercado soluciones robustas sobre las que construir los principios de arquitectura que necesitamos para que nuestra aplicación sea ‘orientada a cloud’ y consultores  especialistas en esas tecnologías que nos pueden ayudar en esa transición.

Deja un comentario

Scroll al inicio