App Volumes; ¿Que es?, ¿Como funciona?

Screen Shot 2014-11-30 at 11.43.03 PM

Que tal gente, el día de hoy les estaré hablando sobre una adquisición reciente de VMware, App Volumes (antes conocido como CloudVolumes). Esta tecnología es bastante interesante ya que abre un mundo de oportunidades para distintos casos de uso como VDI incluso aplicaciones de servidor.

¿Que es App Volumes?

App Volumes desde mi perspectiva cae en el rubro de “layering” para escritorios (virtuales/físicos) aunque claramente también aplica para la entrega de apps virtualizadas (ej. ThinApp), cuando nos referimos a “layering” básicamente es la capacidad de poder segmentar los distintos componentes de un escritorio (CloudVolumes también aplicaba para servidores, estemos atentos para saber si esto será mantenido en versiones futuras), existen muchas tecnologías de layering, Desde Mirage, Unidesk, entre otros. En el caso especifico de App Volumes solo gestionamos la entrega de aplicaciones y perfiles. Se preguntaran ¿Porque es tan interesante App Volumes que VMware lo adquirió?, la respuesta es muy simple, App volumes entrega aplicaciones de manera INSTANTANEA a través de VMDKs/VHDs, habilitando la visión de “Next-gen VDI” que la oficina de CTO esta proponiendo para las soluciones de EUC (mas sobre esto al final del articulo).

App volumes – Arquitectura

Para poder platicar mas a fondo sobre la arquitectura de App Volumes debemos de conocer algunos conceptos propios de esta tecnología:

  • AppStack: Un AppStack es un conjunto de aplicaciones (aunque se puede tener un AppStack con una sola App) almacenadas en un VMDK/VHD que están listas para poder ser asignadas a un usuario, VM (de usuario/servidor) y grupos de usuarios en el momento de boot, inicio de sesión o en tiempo real. En el caso de vSphere se almacena en un VMDK que es agregado automáticamente a la VM en el momento de boot/login (de usuario) dependiendo de la política.

Screen Shot 2014-11-30 at 11.47.36 PM

  • Writable Volumes: Un Writable Volume almacena datos de usuario, se puede almacenar el perfil (opcional), aplicaciones instaladas por el usuario (conocidas por el acrónimo “UIA”), configuraciones especificas de las aplicaciones, etc. En el caso de vSphere se almacena en un VMDK que es agregado automáticamente a la VM en el momento de boot/login (de usuario) dependiendo de la política.

Screen Shot 2014-11-30 at 11.46.59 PM

 

 

Ahora es momento de entender los componentes que constituyen el servicio de App Volumes:

  • Agente: El agente esta constituido por dos elementos dentro de las VMs/PCs/servidores donde esta instalado, un servicio y un filtro. El servicio esta encargado de reportar al servidor de App Volumes el inicio de sesión etc para que los appstacks y writable volumes puedan ser montados. En el caso del filtro, su función es interceptar I/O y direccionarlo a los Appstacks/writable volumes de manera transparente ya que estos no son visibles ni pueden ser accedidos directamente por el usuario, toda aplicación y configuración se muestra como local (en disco C:) aún cuando esta siendo almacenada en el appstack/writable volume:

Screen Shot 2014-12-01 at 12.31.17 AM

Vista del gestionador de disco, podemos ver el Appstack y el writable volume

  • App Volume Manager: tiene las funciones de administrar la configuración, asignación de AppStacks/writeable volumes, creación de appstacks, monitoreo de ambiente y servicios pero también lleva la función de hablar con el hipervisor para montar los AppStacks o Writeable volumes según política. Toda configuración es almacenada en una base datos MS SQL. En la siguiente imagen podemos ver como luce la consola:Screen Shot 2014-12-01 at 12.37.45 AM
    Desde esta consola dictamos con que Hipervisor se estará trabajando, en mi laboratorio estoy trabajando con vSphere, por lo que en la siguiente imagen podemos notar la configuración de vCenter:Screen Shot 2014-12-01 at 12.44.55 AM
    Los archivos de AppStack y Writable Volume son almacenados como VMDKs en un datastore, aquí podemos en mi laboratorio como están siendo almacenados en un LUN de iSCSI:
    DScvol

¿Como se captura un AppStack?

Como ya lo comentamos anteriormente, un AppStack es un conjunto de aplicaciones, estas aplicaciones son capturadas en el momento de la instalación de manera muy “similar” a lo que realiza ThinApp (en cuanto a pasos, no al “approach”). Para poder capturar una aplicación debemos de tener el agente en el sistema operativo donde estaremos instalando la aplicación, una vez que esta listo el agente, debemos de crear un AppStack en la consola de gestión y asignarlo a una VM,  lo cual activará el modo de captura dentro de la VM donde estaremos instalando el App:

Screen Shot 2014-12-01 at 1.08.11 AM
Una vez que terminamos de instalar la aplicación se necesitará de un reinicio y de completar el proceso de captura para que nuestro AppStack este listo y se detecten las aplicaciones contenidas en el:

Screen Shot 2014-12-01 at 2.01.38 AM

 

¿Que opciones de Writable Volumes tenemos?

Como ya explicamos los Writable volumes nos permiten almacenar datos de usuario incluyendo aplicaciones instaladas por este mismo, no es obligatorio tener un Writable Volume por usuario y los creamos en base a grupos o usuarios en especifico si es que nos ayudan a cumplir el caso de uso o requerimientos de nuestro cliente.

Existen 3 opciones de Writeable Volumes:

  • Template_uia_only – Esta plantilla de Writable Volume nos permite almacenar solo las aplicaciones instaladas por el usuario. Un ejemplo sería si el usuario1 instalara WinSCP, en este caso, la aplicación y su configuración sería almacenada en el writeable volume aún cuando para el sistema se vea como local (C:) a través del filtro instalado como parte del agente.
  • Template_profile_only – Como el nombre lo dice, en esta plantilla de Writable Volume solo se almacenará los datos de usuario (redireccionamiento de perfil).
  • Template_uia_plus_profile – En esta plantilla se permite que además que se este re direccionando el perfil hacia el Writable Volume, también las aplicaciones instaladas por usuario, permitiendo persistencia.

 Hosted Apps y  App Volumes

Hosted Apps y App Volumes pueden trabajar en conjunto, solo es cuestión de instalar el agente de App Volumes sobre el servidor de RDS que forma parte de nuestra granja de Hosted Apps, es claro que este servidor deberá ser una VM que sea gestionado por un vCenter para que se pueda hacer attach de los AppStacks, en el momento que se agregue un AppStack y las aplicaciones se muestren como instaladas en dicho sistema el servicio de App Tap de Hosted Apps las reconocerá y podremos estarlas presentando de manera remota a nuestros usuarios. Es importante notar que aparte de Hosted Apps también XenApp es compatible con App Volumes.

¿Como encaja App Volumes en la visión de EUC de VMware?

A lo largo del tiempo siempre se ha debatido que es “Mejor” o que tipo de “approach” es el mas indicado para entregar escritorios, Escritorios persitentes vs no persistentes. Existen muchas soluciones en el mercado que nos permiten persistir distintos elementos de la “Persona” de un usuario (su identidad, incluyendo archivos, apps etc), un caso claro sería Horizon View con View Persona Management, pooles con discos persitentes, roaming profiles, Liquidware Labs, etc. App Volumes viene a entregarnos la capacidad de para cualquier caso de uso poder tener escritorios no persistentes (ej. Pooles Flotantes de Hzn View) y aún así ser capaces de poder persistir datos y aplicaciones instaladas por el usuario y lo mejor de todo es que nos permite entregar esto y aplicaciones de manera instántanea (en realidad unos segundos en los cuales se monta el vmdk en el escritorio y el filtro/agente comienzan a trabajar).

Screen Shot 2014-12-01 at 8.37.22 AM

En el inicio de este articulo les platique que App Volumes encajaba perfectamente en la visión de “Next-Gen VDI”, esta visión claramente lleva la automatización y velocidad en la entrega de escritorios a otro nivel muy distinto del cual tenemos hoy en día. Les recomiendo ver el video de Kit Colbert explicando que es “Just in time desktops a través de Project Meteor”:

Pueden ver que también se habla del proyecto “Meteor”, proyecto Meteor utiliza la tecnología conocida como “VMFork” (A.KA Project Fargo) , que permite instanciar máquinas virtuales en cuestión de segundos (imagínense un View Composer a través de una replica pero que los linked clones sean instantáneos), claramente a través de la copia de memoria de un escritorio base, permitiendo contar con escritorios de manera súper rápida. Aquí el objetivo es brindar persistencia a estos escritorios y aplicaciones, para esto esta App Volumes :)

Si quieren saber mas de Project Fargo (VMFork) les recomiendo leer el siguiente articulo de Duncan Epping:

http://www.yellow-bricks.com/2014/10/07/project-fargo-aka-vmfork-what-is-it/ 

Leave a Reply