Debate y Conocimiento

Artículos

Artículos de la Sociedad de la Información

Tecnologías
09/05/2011
Nivel dificultad: Alto

Virtual Appliances: De cómo dejar de gestionar “hierros” para gestionar servicios

Fernando de la Iglesia Medina de Telefónica I+D

¿Cómo está afectando la virtualización de los recursos al sector de las Tecnologías de la Información y la Comunicación?

El objetivo de este artículo es presentar una nueva forma de gestionar el ciclo de vida de las aplicaciones o servicios nacida al calor de la virtualización de los recursos de IT.

La virtualización de los recursos de las Tecnologías de la Información (TI), y especialmente la virtualización de los recursos de computación, está siendo un gran revulsivo para el sector de las TIC. Como prueba definitiva de ello tenemos el enorme revuelo que se está formado en torno al modelo de Computación en la nube (Cloud computing en inglés), cuya base es, de una forma u otra, la virtualización. El impulso que ha tenido la computación en la nube tiene su base, en mi opinión, en la virtualización y las facilidades que ofrece para la gestión de los recursos virtualizados, la consolidación de los mismos y las ventajas económicas que ello conlleva (esto no quiere decir que la computación en la nube equivalga a virtualización).

¡Hey!, espera ¿qué es la virtualización?

Antes de continuar, y dado que como se puede ir adivinando, la cosa va sobre virtualización, detengámonos un momento a dar una pincelada sobre qué es eso.
Por virtualización se entiende cualquier tecnología que permita desacoplar o abstraer los recursos lógicos de la infraestructura física que los proporciona.

Debido a esto mismo, un punto clave es que el desacople implica multiplexación (en un mismo recurso físico podemos tener varios recursos lógicos), portabilidad (los mismos recursos lógicos podemos moverlos más o menos libremente entre distintos recursos físicos), movilidad, etc.

La virtualización se puede aplicar a distintos recursos TI: computación, red, almacenamiento. Y para el caso que nos ocupa (especialmente asociado a la computación, inicialmente), lo anterior implica que podemos tener unos entes llamados máquinas virtuales (VM) que tendremos desacoplados y abstraídos de las máquinas o computadoras físicas. Lo que nos permite, como decíamos antes, la multiplexación de máquinas virtuales en una máquina física, la portabilidad de máquinas virtuales entre distintas máquinas físicas, etc.

Continuemos

También basada en la virtualización está teniendo lugar otra revolución, quizá en cierta medida eclipsada por los relámpagos de las nubes, que es una nueva concepción en la gestión de las aplicaciones que conforman los servicios, sobre todo de su ciclo de vida.

Esta concepción, denominada virtual appliances [1], se basa en el hecho de poder empaquetar la aplicación en forma de máquinas virtuales, una o varias, de forma que el paquete incluya los discos virtuales de las máquinas virtuales (ficheros más o menos grandes que contienen los sistemas operativos y las aplicaciones ya instaladas) y un descriptor de la aplicación, que incluye las características de las máquinas virtuales, qué relación tienen entre ellas y otras informaciones.

En febrero de 2009 el foro de estandarización Distributed Management Task Force (DMTF) [2] liberó la versión 1.0.0 del estándar Open Virtualization Format (OVF) cuya versión actual es la 1.1.0 [3]. OVF define de una forma estandarizada, extensible e independiente de plataforma, el formato que las herramientas de desarrollo usarán para empaquetar las virtual appliances para su despliegue, y tiene las siguientes características:

•    Está optimizado para la distribución segura
•    Permite un despliegue e instalación simplificados de las virtual appliances
•    Da soporte a configuraciones mono máquina virtual (VM) y multi-máquina virtual
•    Es independiente de la plataforma y del fabricante
•    Es extensible
•    Permite la configuración del idioma local.

Este estándar está siendo implementado ya por varios fabricantes en sus herramientas de gestión de máquinas virtuales (como por ejemplo y sin ir más lejos, VMWare [4])
Haciendo uso de este estándar tenemos una forma de tratar de forma automatizada el despliegue y configuración de las aplicaciones como un todo. Pero es más, debido a que OVF está concebido para ser extensible, podemos usar esta propiedad para poder añadir aspectos de la gestión de las aplicaciones inicialmente no contemplados en el estándar, como por ejemplo la elasticidad de la aplicación para atender de forma automática al éxito de un servicio o una campaña publicitaria, etc.

Aspectos como estos los estamos investigando ya desde Telefónica I+D en proyectos como Reservoir  [5] del 7º Programa Marco de la UE o Nuba  [6] como proyecto de I+D+i Avanza del Ministerio de Industria de España.

En un artículo anterior [7] ya hablamos sobre este estándar y su relación con la computación en la nube.

Pero la revolución real que conlleva esta forma de gestionar las aplicaciones es que estas herramientas y estándares nos permiten concebir la gestión de las infraestructuras como una gestión de aplicaciones, es decir de los servicios que son conformados por ellas, no como una gestión de máquinas, cables, discos, etc. (los “hierros”). Porque para un proveedor de servicios ¿cuál es su objetivo? ¿Gestionar infraestructura o gestionar aplicaciones, servicios,... es decir el negocio? Si tenemos una herramienta que permite describir de forma autoconsistente tanto los componentes de un servicio como las características asociadas al servicio como los acuerdos de nivel de servicio (SLA), características de escalado, de elasticidad, políticas de costes, etc., nada nos impedirá elevar el nivel de abstracción de nuestra gestión para pasar de gestionar máquinas, redes, que serán autogestionados, a gestionar servicios, políticas de negocio,…

Esta filosofía de la gestión de aplicaciones es especialmente útil en un contexto como el de muchos proveedores de servicio donde una cantidad importante de los servicios que se ofrecen a los clientes finales están basados en aplicaciones creadas por terceros. Si un suministrador proporciona la aplicación ya empaquetada y preinstalada haciendo uso de estándares como OVF, será muy sencillo realizar el despliegue de la aplicación de forma automatizada.

La parte del camino por recorrer

Pero no todo en la gestión de las aplicaciones está resuelto mediante OVF. Hay aspectos que no cubre. Como hemos comentado anteriormente OVF está orientado al empaquetado, distribución y despliegue de las aplicaciones. Pero una vez desplegadas, estas aplicaciones tienen una vida: hay que curarlas de sus heridas (aplicar parches para corregir errores o problemas, tanto en los sistemas operativos, como en el software base, servidores de aplicaciones, bases de datos, como en las aplicaciones mismas), crecen (hay que desplegar nuevas versiones de cualquiera de los componentes nombrados anteriormente) y finalmente, tras un tiempo, que todos esperan que sea largo, mueren (son retiradas del servicio). Ninguno de estos aspectos importantes como puede verse, en el ciclo de vida de las aplicaciones está cubierto por OVF.

Bajo mi punto de vista sería necesario describir de alguna forma, no sé si dentro de OVF o en relación con algún otro estándar, estas cuestiones del ciclo de vida de las virtual appliances, donde se tenga en cuenta la especial naturaleza (virtualizada) de ellas.

A día de hoy, distintos fabricantes de herramientas para la creación de virtual appliances ofrecen soluciones para gestionar el ciclo de vida de parcheado y actualización, mediante agentes propietarios que se instalan en las máquinas virtuales durante su creación y que se encargan de conectarse (de forma periódica o bajo demanda) a algún servicio ofrecido vía internet por el fabricante de la virtual appliance. Pero como puede apreciarse inmediatamente esto ofrece ciertos problemas de seguridad o de posibilidad de hacerse para aplicaciones sin conexión a internet.

El anterior es un aspecto fundamental, pero tampoco están cubiertas a día de hoy otras cuestiones como las que comentábamos anteriormente (descripción de acuerdos de nivel de servicio (SLA), características de escalado, de elasticidad, políticas de costes…)

Por supuesto, aun quedan muchos aspectos que solventar y evolucionar, tanto en el estándar como en las herramientas que permiten realizar la gestión, pero los primeros pasos están dados.

Conclusiones

La virtualización nos ofrece la posibilidad no sólo de ser aprovechada como medio de consolidar infraestructuras o usar la computación en la nube, sino que también no ofrece el poder iniciar un cambio de perspectiva radical para realizar la gestión de nuestros servicios. Este cambio de perspectiva nos permitirá centrarnos más en la gestión del negocio abandonando el peso de la gestión de la infraestructura que lo sostiene. Aunque aún queda bastante camino por recorrer para que el modelo sea completo, se ha iniciado un camino que cambiará la concepción de la IT en los próximos años.

Referencias

[1] Hasta donde yo sé, no existe traducción al castellano de la expresión “virtual appliance”. Por otro lado appliance puede ser traducido por dispositivo, entendido en el contexto de la computación como un componente diseñado de forma específica para proveer una función concreta y que habitualmente reside en una plataforma hardware dedicada. Si hablamos de virtual appliances estamos pasando de una plataforma hardware dedicada a una plataforma virtualizada que por propia naturaleza ya no es dedicada.
[2] http://www.dmtf.org
[3] http://www.dmtf.org/sites/default/files/standards/documents/DSP0243_1.1.0.pdf
[4] http://www.vmware.com/appliances/getting-started/learn/ovf.html
[5] http://www.reservoir-fp7.eu/
[6] http://nuba.morfeo-project.org/?lng=en
[7] http://sociedadinformacion.fundacion.telefonica.com/DYC/SHI/Articulos_420-ARTICULO-TID-Commodities_estandares/seccion=1188&idioma=es_ES&id=2010112413260001&activo=4.do

Fernando de la Iglesia (fim@tid.es) es doctor en Ciencias por la Universidad Autónoma de Madrid y desde 2006 viene participando en actividades de innovación relacionadas con la gestión de infraestructuras. Actualmente es experto tecnológico en el área de cloud computing de Telefónica I+D.