El término "cloudbursting" fue acuñado por Jeff
Barr, evangelista de Amazon Web Services, para describir el uso del cloud computing a fin de sortear
solicitudes de desbordamiento
como los que ocurren en temporadas de máxima actividad en sitios detallistas en
línea.
En vez de invertir en hardware, software y
personal adicionales para escalar y manejar el sinnúmero de piezas de infraestructura
necesarias para incrementar la capacidad para aplicaciones Web, el enfoque cloudbursting permite aprovechar la nube
para incrementar la capacidad sobre una base on-demand.
El enfoque cloudbursting contempla dos problemas básicos:
* Primero.- las compañías requieren
periódicamente de capacidad adicional, pero el retorno de la inversión en
infraestructura para el manejo de cargas máximas es excesivamente largo porque
la capacidad extra sólo se utiliza en ocasiones.
* Segundo.- las compañías dudan en trasladar
toda la infraestructura a un proveedor de computación en nube por razones de
seguridad y estabilidad. Aunque el enfoque cloudbursting
no elimina dicha exposición, si hay un problema con la nube no se desencadena
el desastre que ocurriría si la nube se encargara de todo; asimismo, permite a
las organizaciones tratar efectivamente la nube como un centro de datos
secundario, manteniendo y controlando su infraestructura y sus aplicaciones al
tiempo en que aprovechan la capacidad de las nubes de expandirse y contraerse
de forma dinámica, lo que hace financieramente viable utilizar recursos
adicionales de manera periódica sin una inversión cuantiosa.
¿Cuál es la recompensa?
Los requisitos reales de la red y de la
infraestructura de entrega de aplicaciones son bastante directos y están
basados en métodos existentes bien entendidos para la implementación del
balance de carga global; esto hace que el enfoque cloudbursting parezca más bien simple, aunque problemas con las
aplicaciones (como la replicación y la duplicación de datos) hacen que todo el
proceso sea más difícil para algunas aplicaciones, si no es que imposible.
A pesar de que las bases de datos se pueden
replicar en tiempo real a través de Internet, esto sólo es viable si se tiene
un enlace de alta velocidad y baja latencia entre el centro de datos y el
proveedor de la nube, lo cual significa que la mayoría de las organizaciones no
podrá aprovechar la replicación en tiempo real o la "configuración espejo" para
atender problemas de replicación y duplicación de datos.
Un escenario más probable es que se
necesitará mantener la versión de los datos en la nube lo más actualizados que
sea posible y replicarlos con regularidad. Cuando ya no se necesite la
instancia de la aplicación en la nube la información deberá combinarse con la
base de datos local a través de la importación o reproducción de registros de
transacciones. Algunos desarrolladores han resuelto este problema implantando
aplicaciones de replicación propias que desencadenan actividad en la base de
datos y utilizan servicios web para replicar los datos de vuelta al centro de
datos local. Estas soluciones no son perfectas y presentan el riesgo de
incurrir en intervención manual para borrar los datos cuando éstos se
reintroducen.
La integración con otras aplicaciones está
plagada también de dificultades. Una regla general es que, cuanto más integrada
es una aplicación, menos probable es que sea candidata para cloudbursting; las más adecuadas son
aquéllas con muy poca integración con otras aplicaciones y cuyos datos no
provienen de transacciones.
¿Cómo funciona?
Siempre que tenga una aplicación que se
adapte a los requisitos el enfoque cloudbursting
funciona como un sistema de balanceo de la carga global, distribuyendo
solicitudes a través de múltiples instalaciones de centros de datos. El sistema
de balance de la carga tiene la tarea de monitorear el centro de datos local y
determinar cuándo se aproxima a su uso máximo; entonces, debe turnar
solicitudes a un centro de datos secundario que es, en este caso, un proveedor
de computación en nube.
La instancia de la aplicación web en la
nube se pone en línea y comienza a atender a los visitantes. La forma en que la
nube realiza esta tarea depende ampliamente del modelo de implementación que
utilice el proveedor; pero suponemos para los fines de esta exposición que la
aplicación está implementada y disponible en el sitio del proveedor de la nube.
El sistema de balanceo de carga continúa
monitoreando el centro de datos local y redirige solicitudes en tanto que el
volumen sea lo suficientemente elevado para llevar a la aplicación local por
arriba de su capacidad. Cuando el tráfico disminuye el sistema de balanceo de
carga deja de remitir visitantes a la nube; la aplicación en ésta entra en
inactividad y eventualmente se pone fuera de línea.
¿Cómo lo hacen?
Aunque esto suena muy simple, existen
varias piezas de la infraestructura que necesitan estar en su sitio para poder
implementar con éxito una estrategia de cloudbursting:
1) Debe tener la aplicación
implementada y disponible dentro de la nube. Quizá sea posible implementar
aplicaciones on-demand con el
proveedor de computación en nube, pero es probable que la mayoría de los
proveedores requiera que la aplicación haya sido implementada antes de que se
necesite.
2) Debe tener un sistema de balanceo de
tráfico global (Global Traffic Manager)
capaz de decidir cuándo dirigir solicitudes a uno o más sitios alternos.
3) Debe tener una forma de
determinar cuándo se acerca a su máxima capacidad su infraestructura de aplicaciones.
Un controlador de entrega de aplicaciones (Application
Delivery Controller) es el mecanismo más eficiente para llegar a esta
determinación.
En la máxima capacidad o cerca de ésta,
para su organización podría ser una métrica como el tiempo de respuesta de la
aplicación, conexiones concurrentes o carga agregada en el servidor, o bien,
pudiera ser una combinación de factores. Básicamente usted determina el umbral
en el que desea que sus visitantes y clientes accedan a la nube y no la
instancia local de su aplicación.
Esta información es necesaria para
configurar correctamente su controlador de entrega de aplicaciones de modo que
se pueda comunicar con el sistema de balanceo de tráfico global de manera
oportuna y comenzar a redirigir el tráfico antes de que la transaccionalidad se
torne crítica.
Cloudbursting es un nuevo giro en una arquitectura bastante
conocida. La diferencia entre cloudbursting
y el balanceo global de tráfico tradicional a través de múltiples centros de
datos está en el uso de la nube y en los ahorros que logran las organizaciones
que aprovechan el enfoque de cloudbursting
en vez de construir su propia infraestructura.
Cloudbursting puede ser también un método eficiente de ayudar a
la escalada de sitios de rápido crecimiento en los que la tasa de aumento del
tráfico supera la capacidad de la organización de TI para obtener, preparar e
implementar una infraestructura; se puede extender también como un plan de
recuperación de desastres para reducir los costos asociados con la construcción
y el mantenimiento de un centro de datos secundario inactivo.