El futuro de la arquitectura de aplicaciones de TI

Consecuencias del cloud computing

Muchos han sido y son los informes y estudios que analizan el impacto que podría tener el concepto cloud computing sobre las operaciones de TI. En este sentido, también han sido muchos los que advierten de que el aumento en el tamaño de los datos cambia drásticamente las expectativas sobre cómo manejar los data centers. En este artículo se intentará exponer cómo cloud computing afecta a las arquitecturas de aplicaciones de TI, examinando específicamente la otra cara de la moneda del crecimiento de datos: la carga de las aplicaciones. En pocas palabras, los supuestos que tradicionalmente se han utilizado para diseñar arquitecturas cada vez están más desfasados por culpa de la naturaleza cambiante de las aplicaciones. Las arquitecturas de aplicaciones van a cambiar -tanto como las operaciones de TI- en los próximos cinco años debido a la naturaleza de las aplicaciones para la nube.

Cloud computing, definiciones y soluciones
Todo ese gran volumen de datos implica que las aplicaciones de software van a tener que cambiar para gestionarlos. En este sentido, proyecciones de IDC indican que una empresa media experimentará un incremento de siete veces en la cantidad de datos no estructurados (piense en el torrente de clics de captura y almacenamiento de vídeo, etc., etc.), acompañados por el doble de datos estructurados (piense en la información de filas y columnas de una base de datos). Aúna sí, son muchos los que opinan que las proyecciones de IDC son modestas por el lado de los datos estructurados, por culpa de las forzosas asunciones que llevaron a su análisis. El destacable descenso del coste de TI que causó cloud computing inducirá a que se realicen cantidades de cálculos mucho mayores, que, a su vuelta, llevarán a topologías y arquitecturas de aplicaciones mucho mayores.

El uso empresarial de TI está cambiando
En el pasado, las TI se utilizaban para automatizar procesos empresariales repetitivos, cogiendo algo que ya existía e informatizándolo. El arquetipo para este tipo de transformaciones es ERP, la automatización de las órdenes, facturas y registro de inventarios. Esta aproximación a la informática de “pavimentar el camino andado” está cambiando. Hoy en día las empresas ofrecen nuevos servicios que ahora son posibles gracias a las TI, en otras palabras, crean nuevas ofertas que no podrían existir sin las capacidades de las TI.

La naturaleza nambiante de las aplicaciones
Hasta ahora, la mayor parte de los procesos informáticos han estado dirigidos por acciones humanas, alguien haciendo una compra, solicitando una página web, etcétera. En el futuro, un porcentaje cada vez mayor de los procesos informáticos se originarán por actividades no humanas desde dispositivos como los sensores. Por ejemplo, se ha avanzado mucho en el diseño de los contadores de electricidad inteligentes, en lugar de que la medida tenga que ser leída por una persona recorriendo a pie su vecindario, el contador se conectará sólo al data center de la compañía eléctrica y actualizará la información de facturación. Sin embargo, una de las características a las que más bombo se ha dado de estos contadores inteligentes es su capacidad de realizar lecturas en tiempo real de muchos usuarios. Estos datos sobre el consumo eléctrico (metadatos, si lo prefiere) tendrán un valor incalculable para las compañías eléctricas porque les ayudará a comprender los hábitos de uso y les proporcionará información inmediata sobre el precio. Teniendo cuenta que el número, tipo y naturaleza de las aplicaciones está cambiando, ¿qué implicaciones suponen estos cambios para el futuro de éstas. Se valoran cuatro tipos de implicaciones:
Aumento en la variabilidad de las cargas de las aplicaciones: El impulsor de los grandes cambios en la variabilidad en la carga de los recursos es la variabilidad en la carga de las aplicaciones. Para los hoteles, el momento tradicional de mayor actividad es por la mañana (salidas) y por la tarde/noche (entradas). En el futuro, la atención personalizada provocará grandes cargas de trabajo para las aplicaciones también en otros momentos. Esencialmente, la carga de las aplicaciones variará durante todo el día (24 horas) en lugar de concentrarse en el horario de oficina. Las aplicaciones necesitarán ser mucho más capaces de escalarse de forma dinámica.
Las interfaces de las aplicaciones cambiarán: En lugar de estar pensados para personas, los datos fluirán de unas aplicaciones a otras aplicaciones, sensores, transferencias de archivos, y, sin duda alguna, cosas que ni siquiera conocemos aún. Por tanto, habrá interfaces de servicio y de upload que unirán las interfaces terminales.
Las características de las aplicaciones cambiarán: La cada vez mayor importancia de la geolocalización en las aplicaciones hará necesaria la rápida capacidad de trasladar grupos de datos y contextos. La capacidad de poder añadir y quitar datos rápidamente será vital. Naturalmente, todo esto requiere un rendimiento muy alto.
La topología de las aplicaciones se hará más compleja: A medida que aumente el tamaño y la variabilidad, también deberán cambiar los diseños de las arquitecturas. Las aplicaciones complejas a menudo incorporan procesamientos asíncronos para tareas intensivas; a menudo se utilizan las colas de mensajes como parte de este sistema. En consecuencia, las arquitecturas de aplicaciones deben cambiar para incorporar nuevos componentes de software y diseños de aplicaciones.

Sugerencias para que una aplicación cloud soporte estos requerimientos
1. Revise los componentes de software que piensa usar en la aplicación. Muchos componentes de software se diseñaron para usarse en un entorno estático con configuración manual y actualizaciones ocasionales. Un patrón de diseño común a estos componentes es el uso de un archivo “conf” editable a mano para configurar el contexto del componente. Una vez que el archivo de configuración se ha completado, el componente se inicia (o reinicia), lee la información de configuración y comienza a funcionar. En un mundo basado en la nube, en el que el contexto cambia de forma constante a medida que se añaden o desaparecen nuevas conexiones y puntos integración, el modelo de “editar y reiniciar” es totalmente insostenible. Busque componentes que tengan interfaces on-line para actualizar el contexto y añadir o borrar conexiones de forma dinámica. Nada es peor que poner a funcionar una aplicación y después darse cuenta que parte de ella no es realmente capaz de soportar cambios dinámicos en la topología.

2. Piense en los balances de carga a lo largo de toda la aplicación. Muchas aplicaciones soportan balances de carga en la capa del servidor Web, pero asumen cifras constantes (y direcciones IP) en los componentes de otras capas. Con cargas muy variables, el resto de capas también necesitan escalarse y soportar balanceos de carga para asegurar un funcionamiento consistente. No diseñe una aplicación pensando que sólo residirán dos componentes de aplicación en determinadas capas. Tenga presente el dinamismo y el balanceo de carga en todas las capas.

3. Planifique la escalabilidad de la aplicación. Quizás lo estenrecalcando demasiadas veces, pero doble o tripleque sus asunciones en la arquitectura de aplicaciones y planificación de capacidad, qui

Viñeta publicada el 20 de febrero de 1870 en La Flaca n.º 35 Tendencias

ny2 ACTUALIDAD

ny2 Sociedad de la información

Día de la Movilidad y el BYOD Coffee Break