Nunca pensé que en una tranquila tarde de domingo, en la que vas al cine a ver el último estreno de la temporada, en los trailers iniciales, fuese a escuchar esta frase: “Nadie entiende la nube, es un maldito misterio” y, acto seguido, fuese a aparecer Cameron Diaz, armada con un bate de beisbol, golpeando un rack de comunicaciones para destruir la misteriosa nube… Me arrancó una sonrisa y me recordó a un buen amigo que hace ya algún tiempo me preguntó cómo era posible que los ceros y los unos se sostuvieran en las nubes…
Como ya comenté en un post anterior, la nube ha evolucionado y el ecosistema cloud, cada vez más amplio, ha habilitado nuevos modelos de prestación de servicios que, lejos de ser un misterio, dan respuesta a los cada vez más exigentes modelos de negocio. ¿Qué es lo que realmente nos interesa de la nube: conocer su arquitectura para poder batearla como en la película o, más bien, conocer sus capacidades para sacarle el máximo partido? Me inclino por la segunda opción y hoy quería hablaros de las facilidades de autoescalado, que dan respuesta a los modelos de negocio altamente cambiantes, en los que no se conoce a priori la demanda de recursos de computación que requiere la aplicación, ya que ésta se usa de forma variable según la hora, el día o la semana o, lo que es peor, se desconoce previamente el uso que tendrá la misma. Además, cuando se necesitan nuevos recursos de computación, éstos hacen falta inmediatamente, se convierte en un tema urgente. Y ya no es sólo el always on, que siempre mencionamos, sino que es: always on and more!
El autoescalado permite disponer de recursos cuando son reamente necesarios y empezar a pagar por los mismos en el momento exacto en el que la demanda explota y no antes.
Un ejemplo muy ilustrativo de lo que digo lo vemos en los medios de comunicación. ¿Cuándo una noticia deja de ser noticia? La respuesta es: “cuando otros la cuentan”. Si la noticia fuese tan importante como para desbordar las capacidades de los sistemas de información que soportan su difusión, éstos acabarían sobrecargados, no podrían transmitirla y sería necesario disponer de mecanismos que detectasen que se está llegando al límite de la capacidad disponible para poder aumentarla. Este momento es clave, y la dificultad reside en identificar correctamente que, en efecto, es justo entonces cuando es necesario disponer de más recursos para poder seguir retrasmitiendo la noticia.
Llegados a ese punto, empieza el reto de verdad. Me explico: identificar que se está al límite de la capacidad de procesamiento o memoria (CPU y RAM) en un entorno TI es relativamente sencillo, pero… ¿quién dice que no existe, por ejemplo, un proceso mal programado que ha entrado en bucle y está demandado mayor capacidad de proceso, cuando en verdad no la necesita? Si el entorno dispone de técnicas de autoescalado dispondría de mayor capacidad de cómputo, pero pagaría por un pico de demanda que en realidad no necesita, lo que daría al traste con el objetivo de optimización de costes versus la demanda real. ¿Cómo es posible entonces aprovecharse del autoescalado con la garantía de no pagar de más innecesariamente? ¿Cómo tener la seguridad de que si aumenta la curva de la demanda de las aplicaciones es una necesidad real? Para ello es necesario tener en cuenta algunas pautas:
- Diseñar los mecanismos de autoescalado orientados a procesos de negocio, basados en políticas que definan cómo se escala y en base a qué.
- Estudiar previamente el comportamiento de la aplicación para identificar el conjunto de métricas que definen el comportamiento de dicha aplicación.
- Clasificar usos de aplicación: no olvidemos que si una aplicación es muy dinámica y su uso es muy variable en el tiempo se pueden dar situaciones en que se entre en un bucle de provisión y desprovisión de nuevos recursos que provoquen un cargo asociado de forma cíclica.
- Relacionado con el punto anterior, es necesario identificar el lapso de tiempo que tiene que durar un evento disparador, para establecerlo como condición necesaria para que se desencadene el autoescalado.
- Delimitar el número de recursos máximos que se deben proveer en una situación de autoescalado, para alinearlo con el presupuesto TI existente.
Como resumen, el conocimiento del comportamiento de la aplicación se hace indispensable para parametrizar de forma óptima la funcionalidad de autoescalado y poder sacarle el máximo partido eficazmente.
Imagen: sergioalgar

Soluciones y Sectores
Te puede interesar
-
Nodo IoT: el corazón de los edificios inteligentes en una smart city
Una ciudad se compone de edificios de todo tipo (residenciales, comerciales, industriales, públicos…) y para que se considere una ...
-
Una industria conectada es una industria sostenible
La industria manufacturera representa el 11,3% del PIB español pero es responsable del 24% del consumo energético y el ...
-
Radiografía de la experiencia de empleado en España
Las nuevas formas de trabajo suponen un cambio fundamental en la cultura de las organizaciones y una valiosa herramienta ...