Hola, hoy les traigo un articulo sobre una tecnología que nació en los laboratorios de Sun, y que esta siendo liberada con licencia GPL v2 para que toda la comunidad pueda utilizarla y contribuir. Dicha tecnología se llama Live* y pretende simplificar el proceso de instalar y actualizar el software construyendo los sistemas con piezas de software independientes e intercambiables que mantengan los cambios en las configuraciones realizados por los usuarios cuando se actualice dicha pieza, o cualquiera de las otras. La idea esta tomada del approach que utilizan los fabricantes de dispositivos electronicos de consumo (consumer electronics, en la nota original), y es bastante compleja e interesante. El articulo original, en ingles, pueden encontrarlo en el sitio de Sun.

Un par de aclaraciones con respecto a la traducción:

  • En el articulo original el autor habla de "software appliances" (aquí traducidos simplemente como sistemas), a lo que se refiere con esto es a las múltiples piezas de software que componen un sistema configurado para un proposito especifico (por ejemplo, un servidor de aplicaciones web JavaEE podría tener un Linux + Tomcat + Postgres u OpenSolaris + Glassfish + MySQL, etc.).
  • Las palabras "deployment" y "approach" fueron dejadas en su idioma original porque personalmente creo que no tienen una traducción que les haga honor y cualquiera de nuestros lectores debe conocerlas. Por las dudas, "deployment" es el proceso de instalar y configurar un sistema al punto de dejarlo funcionando perfectamente (en algunos textos suele traducirse como "realizar el despliegue" del sistema); Approach es la "forma" de hacer algo, suele traducirse como "acercamiento" (lejos, la mejor traducción) o "aproximación".
  • La expresión "out of the box", se refiere justamente a eso: lo sacamos de la caja, lo encendemos, y funciona.
  • "Pick and Click" significa algo así como "Elegir y clickear", supongo que usaron esa expresión por la forma en que suena al pronunciarla.
  • Finalmente, algunas otras palabras como "datacenter" se dejaron sin traducir mas o menos por las mismas razones que "deployment" o "approach".

Proyect Live*

Simplificando radicalmente el deployment, la instalación y la configuración de software

Una de las cosas más destacables de los dispositivos electrónicos de consumo masivo de hoy en día - teléfonos, reproductores de discos blue ray, routers inalámbricos, televisores de plasma, etc. - es que proveen funcionalidades muy sofisticadas sin necesidad de que uno instale software adicional. Todo este software se encuentra en el firmware del dispositivo. Todo funciona "out of the box", y en general es muy sencillo personalizar las características especificas de las aplicaciones incluidas.

El caso de las computadoras es bastante diferente. Ya sea que estés configurando tu nueva PC o instalando nuevos servidores en un datacenter, instalar software es una tarea tediosa y frustrante, que consume grandes cantidades de tiempo. Cada aplicación debe ser instalada y configurada en forma individual, y administrar todos los parches, actualizaciones y archivos de configuración convierten a este proceso en una perdida perpetua de tiempo.

Los investigadores en los laboratorios de Sun se hicieron entonces una sencilla pregunta respecto a esto: ¿Porqué no traemos la simplicidad del modelo "firmware" a los datacenters?

Sun Labs lanzó el Proyecto Live* (live-star) para explorar esa pregunta. Liderado por el Investigador Principal Olaf Manczak, el equipo responsable de este proyecto ha concebido (y ahora está preparado para compartir con la comunidad open source) un nuevo approach que tiene el potencial para simplificar radicalmente la distribución y configuración de software en los datacenters.

La tecnología Live* distribuye los componentes de software más importantes en forma de imágenes de disco inmutables que contienen software preinstalado y listo para usar. Los usuarios pueden simplemente elegir los componentes de una lista para crear sistemas completamente funcionales.

Cerrando la brecha entre sencillez de uso y capacidad de personalización

Resulta fácil entender porque se utilizan diferentes modelos para instalar software en los dispositivos electrónicos de consumos que en los datacenters.

  • Los dispositivos electrónicos de consumo generalmente son diseñados para proveer funciones especificas y requieren de muy poca personalización. Usualmente son producidos en grandes volúmenes por un mismo fabricante que ejerce un ajustado control sobre el software incluido en dichos dispositivos.
  • Los datacenters tienden a ser sistemas multiproposito que ejecutan software de diferentes fabricantes. Son producidos en volúmenes relativamente bajos y requieren un grado muy alto de personalización, lo cual introduce una mayor complejidad y, potencialmente, más problemas de compatibilidad.

El desafío para el equipo de Sun Labs fue encontrar una forma de mezclar la sencillez de uso y la reproducibilidad del modelo de los dispositivos electrónicos de consumo con la modularidad y grado de personalización del modelo de los datacenters. De acuerdo con Olaf Manczak, encontrar una solución era urgente.

"La complejidad de instalar y configurar software ya es un gran problema para los administradores de los datacenters, y va a volverse un problema aún mayor si no encontramos un mejor approach", declara Manczak. "El deployment de nuevos datacenters está creciendo actualmente a una tasa de 15% por año, y con la creciente popularidad de la virtualización de servidores, el número total de instalaciones crece en realidad mucho más rápido. No necesitamos pequeñas mejoras incrementales sobre los procesos actuales; necesitamos repensar la forma en la que se realiza el deployment del software"

Venciendo las limitaciones de las herramientas tradicionales

Actualmente, se encuentran disponibles algunas herramientas que permiten aumentar la eficiencia de los procesos de instalación, configuración y administración del software. Por ejemplo:

  • Herramientas de empaquetado de software tales como AdminStudio de Acresso (anteriormente Macrovision) que simplifican la instalación.
  • Sistemas de administración como Sun xVM OpsCenter o HP OpenView que hacen más sencillo administrar instalaciones virtualizadas.
  • Distribuciones "Live CD" que ejecutan un sistema operativo desde una unidad óptica sin necesidad de instalar ningún componente o afectar instalaciones anteriores.

Estas soluciones son muy útiles para incrementar la productividad administrativa, pero no apuntan por completo al problema del deployment y mantenimiento del software.

Las herramientas de empaquetado, por ejemplo, ayudan en el deployment inicial pero aún necesitaremos instalar las actualizaciones individualmente en cada sistema. Los sistemas de administración ayudan a automatizar las tareas de mantenimiento de rutina, pero sólo para una única aplicación a la vez. Y las distribuciones Live CD le brindan a los usuarios la flexibilidad para mezclar varios componentes, pero aún no pueden lidiar con datos estructurados, como por ejemplo archivos de personalización del sistema.

"El modelo tradicional pone demasiada carga sobre los administradores y usuarios finales" Dice Manczak. "Lo que estamos intentando lograr con el Proyecto Live* es colocar el peso de la instalación de software en los hombros de los fabricantes, permitiendo aún a los usuarios personalizar sus sistemas fácilmente."

Sistemas "Pick and Click"

El Proyecto Live* introduce una tecnología que va más allá de las limitaciones de las tecnologias anteriores. Con Live* los componentes importantes como sistemas operativos, bases de datos y servidores de aplicaciones son distribuidos como imágenes de disco inmutables. Cada imagen contiene software preinstalado listo para ejecutar. Los usuarios simplemente seleccionan la combinación de componentes que quieren. Como se de bloques Lego se tratase, los componentes pueden ensamblarse par crear sistemas complejos.

¿Queres ejecutar MySQL en OpenSolaris y realizar backups con Zmanda Recovery Manager? Todos estos componentes podrían estar disponibles en sus últimas versiones como imágenes de disco. Los usuarios simplemente elegirían y clickearían entre esos y otros componentes para crear los sistemas que deseen.

En tiempo de booteo, la tecnología Live* crea un filesystem virtual que combina dinámicamente el software de múltiples imágenes. Este proceso es enteramente transparente al software existente, y el contenido del filesystem es idéntico al que resultaría de un proceso de instalación tradicional.

Usando este approach, los sistemas pueden actualizarse remplazando simplemente las imágenes completas con nuevas versiones de las mismas. Y utilizando sistemas de administración como Sun xVM OpsCenter, este proceso puede automatizarse de forma tal que múltiples servidores se actualicen con un único comando.

El ingrediente secreto: Virtualización con Personalización

Una característica única de la tecnología Live* - la que vence las limitaciones de los Live CDs - es la habilidad de virtualizar el software (como un snapshot a nivel bloque) y manipular datos estructurados y no estructurados. Esto le brinda a los usuarios la capacidad de instalar software que necesitan y mantener sus configuraciones de personalización incluso luego de actualizar o emparchar dicho software.

Para lograr esto, Live* utiliza una técnica llamada "unificación del filesystem" que es parte del concepto de Live CD. Esencialmente, las aplicaciones "ven" un filesystem combinado que parece un CD-ROM con escritura, pero en realidad hay dos filesystems: uno que provee acceso a los archivos existentes en el CD, y otro que administra las modificaciones, como escrituras, borrados y renombrados.

Con esta técnica, se hace posible cambiar o actualizar el software dinámicamente; simplemente se reemplaza la imagen con una nueva versión, y el sistema aún corre exactamente como queríamos.

Para lidiar con los datos estructurados, la tecnologia Live* va un paso mas allá del approach "Live CD" e incorpora "motores de personalización, que son una infraestructura programable para generar archivos de configuración.

A diferencia de las herramientas de administración como xVM OpsCenter o VMware, los motores de personalización no tienen conocimiento de como manipular todos los archivos de configuración. En cambio, las imágenes de disco poseen una serie de "generadores" que pueden utilizarse para transcribir los parámetros de personalización - las respuestas que normalmente daríamos al programa de instalación - a archivos de configuración. Live* crea un filesystem vacío en memoria, y usa el motor de personalización para aplicar todos los generadores y crear de esta forma todos los archivos de configuración que se guardan en ese filesystem. Cuando este proceso finaliza, obtenemos algo que se ve como un único disco con capacidad de escritura que tiene todo el software instalado en el lugar correcto, y todos los archivos de configuración correspondientes.

"Son como genes en una estructura de ADN", dice Manczak. "Ningún fabricante tiene acceso a la estructura completa, pero cada uno puede extraer los parámetros necesarios. En tiempo de booteo, el motor de personalización pasa por las imágenes necesarias para crear el sistema en cuestión, identificando y notificando a los generadores correspondientes. El resultado es la generación de archivos de configuración que se guardan en el filesystem en memoria. Con lo cual, terminamos con una imagen inmutable con software e información de personalización. Ahora podemos cambiar los datos estructurados o no estructurados y estos cambios serán preservados."

Uno de los enormes beneficios del approach Live* es que se hace posible realizar actualizaciones de sistemas operativos rápidamente. Ya no tendremos que instalar un parche o una actualización de seguridad en cada computadora; simplemente obtendremos la imagen más reciente, reiniciaremos la máquina virtual, y todo funcionará correctamente.

Aprende más, y participa

En combinación con la virtualización de hardware de Xen o VMware, la tecnología Live* provee una manera extremadamente sencilla de crear sistemas robustos, seguros y reproducibles.

Sun Labs llama a la comunidad de desarrolladores a mirar más de cerca la tecnología Live*, y ayudar a extender sus capacidades. El equipo del Proyecto Live* esta liberando esta tecnologia con la licencia GPL v2. Para más información o para bajar el código fuente de Live*, accedan a la página del proyecto en http://research.sun.com/projects/live*/download.html.


Hasta aquí el articulo original. Los dejo con un vídeo que demuestra la utilización de esta tecnología. Lamentablemente esta en ingles, pero en resumen lo que sucede en el mismo (a partir de los 2' 30'' aproximadamente) es que los presentadores instalan Fedora 8 junto con Java en una máquina virtual, luego intentan ejecutar una aplicación que requiere una extensión para Java, la cual instalan con éxito y corren la aplicación que deseaban; finalmente cambian Fedora 8 por Fedora 9, y muestran que las extensiones de Java continúan funcionando perfectamente aún cuando cambiaron el sistema operativo.

Articulo original: http://research.sun.com/spotlight/2008/2008-12-22_project_live.html

Página del proyecto Live*: http://research.sun.com/projects/live*/

Comentarios:

Copado! que buena onda, si la verdad que instalar siempre lo mismo es un bajon. Yo hacia imagenes de los duros, pero lo que sucede es que eso esta bueno mientras que no se cambio el SO; pero de esta forma es una forma copada de mantener todo actualizado y ordenado.

saluds

Enviado por Nixs en enero 16, 2009 a las 07:41 PM GMT-03:00 #

Interesantirijillo ..=)

Enviado por Eze Perez en enero 18, 2009 a las 11:17 AM GMT-03:00 #

Enviar un comentario:
  • Sintaxis HTML: Deshabilitado

This blog copyright 2009 by Ezequiel Singer