Aplicaciones virtuales

En estos dias me he encontrado con una herramienta, dentro del arsenal de Microsoft, que cuando menos, podemos decir que es intrigante.

Me refiero a SoftGrid. Intrigante en cuanto a las posibilidades de abre y a la utilidad que representa para el despliegue de aplicaciones.

Softgrid se ubica dentro de las aplicaciones del grupo System Center. Aplicaciones todas estas enfocadas a la administración y monitoreo de infraestructuras de TI. Vienen siendo el equivalente al BackOffice antiguo, pero habiendo tomado esteroides.

Softgrid es un producto nuevo dentro de la línea de Microsoft, producto de la adquisición de una compañia y su función consiste en habilitar la distribución y el manejo de "aplicaciones virtuales".

Antes de proseguir hay que explicar que es una "aplicación virtual".

Probablemente hayan escuchado acerca de las "maquinas virtuales" tan en boga últimamente, donde un solo equipo físico, ejecuta múltiples instancias de maquinas virtuales, cada una de ellas con independencia del sistema operativo o aplicaciones instaladas. Estas maquinas virtuales existen para solventar la necesidad de la optimización de la utilización de las infraestructuras de hardware, al aprovechar más las capacidades del procesador al mantener niveles de ocupación más altos. Del mismo modo, la utilización de máquinas virtuales, permite ahorrar en infraestructura al consolidar en un solo equipo físico, las tareas de varios equipos virtuales.

Las aplicaciones virtuales son algo parecido a las maquinas virtuales, pero a nivel aplicación, donde cada uno de los programas que son virtualizados se ejecutan en su propio ámbito cerrado y aislado de los demas, garantizando con ello la posibilidad de ejecutar en un solo equipo físico, diferentes versiones de la misma aplicación, sin que surjan conflictos entre ellas. Habilita también la posibilidad de ejecutar aplicaciones que tengan conflictos entre sí, de forma simultánea.

Hay otras características de Softgrid que lo hacen muy peculiar. Primero, las aplicaciones no se ejecutan empleando recursos del servidor (como lo hacen los servicios de Terminal Server), si no que se ejecutan usando el procesador y memoria de la estación de trabajo, pero en esa estación no se instala absolutamente nada de la aplicación en cuestión, únicamente un acceso directo. El usuario no ve ninguna diferencia al emplear una aplicación virtualizada, servida desde un servidor (valga la redundancia) o una aplicación instalada localmente.

Lo anterior tiene implicaciones bastante interesantes. Permite el que se hagan despliegues de aplicaciones a un gran número de usuarios, sin tener que visitar ningún escritorio y sin tener que instalar nada en las estaciones de los clientes. Del mismo modo, al momento de actualizar la aplicación, es tan sencillo como un reemplazo en un repositorio del servidor.

Al ser servida la aplicación desde un servidor, pero ejecutada localmente, los recursos que se consumen son muy pequeños, lo que permite que un solo equipo atienda hasta a 1,000 usuarios.

Todo esto aderezado con la integración a Active Directory lo que permite el asignar aplicaciones por usuario o por permisos, versiones de la aplicación a ciertos usuarios, acceso a la misma restringido por tiempos, equipos o cantidades de licencias, etc.

Otra característica importante de Softgrid, es que no hay que hacer nada en especial en la aplicación que se desea distribuir, no hay que hacer llamadas exóticas a rutinas en el código ni emplear arcanas librerias de utilidades.

Para que una aplicación pueda ser administrada por Softgrid, lo único que hay que hacer, es ejecutar primero una "preparación" de la misma, dentro de una herramienta llamada Softgrid Profiler, que lo que hace es monitorear la ejecución de la misma para inventariar las llamadas y modificaciones que hace la aplicación sobre el sistema operativo, que librerias, DLL u otros accesorios requiere, etc. y con esa información crea su "ambiente de ejecución". Despues de esto, la herramienta secciona y prepara los archivos de la aplicación para que puedan ser servidas a los clientes de forma incremental. Esto es, un usuario al invocar la ejecución de la aplicación virtualizada, recibirá dell servidor únicamente aquellos archivos y partes de programas que se requierean para que la aplicación arranque y con posterioridad irá recibiendo el resto.

Cuando el usuario termina la aplicación, el ambiente de ejecución y las partes que se hayan recibido de la misma, se guardan en la estación de trabajo, en una sección de caché de donde se leerán si otro usuario requiere de las mismas. Obviamente la duración y la existencia de este caché son controlados por Softgrid y esto nos permite que las aplicaciones se ejecuten en un ambiente desconectado (usuarios moviles).

Existe una versión específica del cliente de Softgrid que se emplea en ambientes de Terminal Server y este permite el resolver el problema que surge al preparar un servidor de Terminal con dos aplicaciones que son incompatibles entre si. Tradicionalmente, era necesario emplear dos servidores separados, uno preparado para cada una de las aplicaciones que requerán los usuarios, lo que en implementaciones grandes implicaba grandes costos de hardware. Con SoftGrid y la virtualización de aplicaciones, este ya no es el caso, al ser posible ejecutar versiones conflictivas de aplicaciones (o múltiples instancias de una sola aplicación) dentro de una sola sesión de Terminal Server, permitiendo esto, importantes ahorros.

Para mayor información de SoftGrid, los refiero a la página del producto que se encuentra en: http://www.microsoft.com/systemcenter/softgrid/default.mspx

2 comentarios:

Anónimo dijo...

Hola. tremenda esta utilidad. Sé que está diseñada para el trabajo en red, pero ¿sería posible usarla para que en un PC se instalaran las aplicaciones en una partición distinta a la del sistema operativo, y así poder reinstalar este so si fallase sin tener que perder las aplicaciones ya instaladas?

Gracias por la respuesta

Juan Ramón Bonell Marti dijo...

Dentro de un solo PC no podría hacerse ya que tendrias que arrancar simultaneamente los sistemas operativos de las dos particiones a la hora de querer reinstalar las aplicaciones. Lo que sí puede hacerse es utilizar a un servidor como una "biblioteca" de aplicaciones, no instalar prácticamente nada (a parte del sistema operativo) en las estaciones de trabajo y que se esten "alimentando" del servidor.
En caso de tener una falla catastrófica del PC cliente, solo deberías reinstalar el sistema operativo y despreocuparte de las aplicaciones, que se irían descargando del servidor según se requirieran.