Entendiendo la virtualización de escritorios

El concepto

La virtualización de escritorios significa, en esencia, el hecho de separar el software que ejecuta el escritorio (lo que un usuario final ve en su pantalla y entiende por “Windows”, en palabras llanas) del equipo que el usuario manipula físicamente.

Consecuencia directa de ello es que el escritorio se ejecuta en modo remoto en otro sistema, el que conocemos como “servidor de escritorio” y que necesitamos una conexión de red entre el equipo del usuario y ese servidor.

El escritorio “virtualizado” estará almacenado también en el sistema de disco de ese servidor remoto y no en el disco local del equipo del usuario. Este concepto tan simple transforma radicalmente la aproximación que hacemos al servicio que ofrecemos al usuario final, ya que todos los programas, aplicaciones, procesos y datos se ejecutan y almacenan de forma centralizada. Tenemos dos consecuencias inmediatas: la gestión de los escritorios de los usuarios se realiza en los sistemas centrales, ya no necesitamos complejas herramientas distribuidas; el escritorio del usuario está en un punto fijo y se puede acceder a él desde cualquier dispositivo y cualquier lugar, por lo que tampoco necesitamos engorrosas herramientas de sincronización de datos entre sistemas dispersos.

Una tercera consecuencia es que el usuario puede acceder a su escritorio desde dispositivos muy variados: un PC, un simple navegador, un netbook, un Thin Client, etc. Lo único que necesita es conectividad al servidor de escritorios, ya sea desde la red interna o desde Internet.

La infraestructura que nos permite separar el software de escritorio del hardware se conoce genéricamente como VDI (Virtual desktop infrastructure), aunque el nombre es un poco engañoso. Cuando se habla de VDI enseguida pensamos en virtualización de servidores, hipervisores, etc. En realidad en su opción más simple es posible virtualizar escritorios sin software de virtualización, como vamos a ver.

Arquitectura técnica

Hemos visto que la virtualización de escritorios consiste en ejecutar el escritorio en un sistema distinto del que utiliza el usuario. Ello nos lleva a distinguir directamente dos capas diferenciadas, el dispositivo de acceso (el equipo físico donde “teclea” el usuario) y el servidor de escritorio, el equipo central que ejecuta el software de escritorio (Windows, Gnome, KDE, etc). Cada una de estas dos capas puede tratarse de forma independiente y podemos encontrar distintas combinaciones con soluciones variadas en cada una de ellas. Estrictamente, al menos conceptualmente, las aplicaciones se ejecutan en una tercera capa, los servidores de aplicaciones. En muchos casos, sin embargo, los servidores de escritorios también ejecutan aplicaciones (por ejemplo, las ofimáticas), aunque esto no siempre es así.

Los dispositivos de acceso pueden tener también una tecnología totalmente distinta a los propios escritorios: así, por ejemplo, podemos acceder a escritorios Windows desde Thin Clients basados en Linux. El usuario final tendrá la experiencia de que su dispositivo es un PC con Windows, pero en realidad estará ejecutando Linux en un dispositivo de acceso sin que él lo note.

Un punto importante es la forma de comunicación entre los dispositivos de acceso y los servidores de escritorio. Vamos a utilizar protocolos especiales en función, básicamente, del tipo de escritorio que utilicemos. Así por ejemplo si queremos tener escritorios Windows utilizaremos el protocolo RDP y si queremos escritorios Linux el protocolo X Window. Aunque también tenemos otras opciones, que elegiremos en función de las prestaciones y entornos en los que queramos funcionar, como ICA, NX o VNC por ejemplo.

El modelo de virtualización de escritorios nos permite que los escritorios se ejecuten en servidores virtualizados, pero eso no es imprescindible. De hecho en los sistemas más simples los escritorios se pueden ejecutar en los tradicionales servidores de terminales, ya sean Windows, Citrix o Linux. Esa tecnologías nos permiten ya tener varios usuarios ejecutando su escritorio personalizado en un sistema central. Ese sistema central estará ubicado, generalmente, en nuestro centro de datos, pero cada vez son más comunes también las soluciones de hosting para esos sistemas.

De hecho vamos a encontrar tres tecnologías básicas en los servidores de escritorio: la ya mencionada de servidores de terminales, la de servidores con “blades”, en la que cada "blade" ejecuta el escritorio de un usuario y la de servidores virtuales, en la que los escritorios se ejecutan en máquinas virtuales, ya sea de modo personalizado (un escritorio para cada usuario) o en modo pool (varios usuarios comparten un modelo de escritorio genérico). Esta última tecnología de escritorios virtuales y virtualizados a la vez es la más sofisticada y la que proporciona mayores beneficios, pero en muchos casos las otras tecnologías también son perfectamente aplicables y económicamente preferibles.

Otro componente que podemos necesitar en una plataforma VDI es el “broker”. Un broker, en su versión más simple, es un componente de software que pone en contacto el usuario que quiere utilizar una plataforma VDI con el escritorio virtual que debe utilizar. Así, ene esencia, el cometido del broker es identificar el usuario y, en función de los parámetros que se hayan configurado para ese usuario, conectarlo con el servidor de escritorio que le corresponda.

En las plataformas más sofisticadas, sin embargo, el broker puede realizar más funciones. Así, por ejemplo, puede encargarse también (u ordenar a algún otro software) que arranque una máquina virtual para el escritorio del usuario o encargarse de validar el usuario en un entorno de Single Sign On.

El diseño de la infraestructura

Como vemos una solución de escritorios virtuales puede requerir una arquitectura compleja, por lo que antes de lanzarse a su puesta en marcha es necesario realizar un diseño, precedido de una fase en la que establezcamos claramente las especificaciones y prestaciones que vamos a exigir de la plataforma.

En muchos casos la aproximación a una solución de escritorios virtuales no se aborda con rigor y parece ser que lo único importante es dimensionar los servidores para que tengan el rendimiento correcto, dejando de lado el resto de aspectos. Hemos visto muchas propuestas de este tipo en las que ni tan sólo se habla de la arquitectura, componentes software o requisitos funcionales. La posterior puesta en marcha de estas soluciones “pobremente” diseñadas frustran al equipo de IT responsable de su funcionamiento, ya que no se recogen todos los beneficios que la arquitectura podría proporcionar. No se trata de virtualizar escritorios porque sí, se trata de virtualizar porque deseamos obtener mejores prestaciones y reducir los costes de administración.

Para ello es necesario diseñar cada capa de la arquitectura para que cumpla su función al menor coste posible, con un conocimiento y experiencia de lo que existe en el mercado y lo que es apropiado para cada caso. Un buen diseño debe responder por lo menos a las siguientes preguntas:

  • Respecto los dispositivos de acceso, ¿Reconvertimos los PC actuales en Thin Clients? ¿Adquirimos Thin Clients tradicionales, con software en PROM, o utilizamos una solución flexible, con software en streaming? ¿Utilizamos Thin Clients con prestaciones especiales, como por ejemplo SunRay? ¿Queremos que los usuarios puedan acceder desde su casa, desde un cibercafé, en roaming?

  • Respecto a los servidores de escritorio, ¿optamos por una solución de Terminal Server, blades o máquinas virtuales? ¿Qué tecnología de escritorio utilizamos, Windows, Linux o mixta en función de las necesidades de los usuarios? ¿Qué alta disponibilidad queremos? ¿Qué rendimientos esperamos?

  • Respecto al acceso remoto, ¿Necesitamos conectar usuarios de oficinas remotas? ¿Queremos poder conectarnos desde Internet de modo seguro? ¿Queremos dar acceso a través de redes móviles?

  • Si utilizamos máquinas virtuales, ¿qué tecnología implantamos, VMWare, Xen, VirtualBox, ...? ¿Vamos a necesitar un sistema de gestión específico para los virtualizadores?

  • Respecto a aspectos de gestión y administración, ¿Cómo vamos a gestionar los escritorios? ¿vamos a implantar pools, escritorios personales o ambos? ¿Necesitaremos un broker? ¿Qué queremos que haga el broker? ¿necesitamos algún sistema de gestión como View de VMWare, Xendesktop, o algún otro más económico?

Una vez tengamos claro el diseño de la arquitectura software podremos plantearnos el dimensionamiento del resto de componentes: el número y tamaño de los servidores en función del número de usuarios, prestaciones y redundancia; la verificación de la capacidad de las redes internas y externas; los sistemas de almacenamiento y backup; y los otros componentes que puedan ser necesarios en función de las especificaciones del proyecto y diseño de la arquitectura software.

Es importante señalar que el dispositivo de acceso sólo necesita una potencia mínima, con capacidad para manejar tan sólo el software de conexión. Puede ser un dispositivo simple y barato, con poca memoria y poca necesidad de CPU. Ello permite que sean dispositivos de muy poco consumo y sin disco o ventiladores, lo que los hace además silenciosos y más fiables. Para el usuario este dispositivo se comporta como un terminal transparente y, si se ha configurado para ello, puede ni tan sólo ser consciente de que las aplicaciones se están ejecutando en otro equipo. Muchas veces cuando un PC queda obsoleto puede reconvertirse en Thin Client, alargando su vida útil. En el caso extremo, incluso un PC con una CPU 486 podría funcionar perfectamente como Thin Client.

Ventajas y desventajas de la arquitectura

El modelo de virtualización de escritorios ofrece ventajas palpables sobre la arquitectura tradicional de disponer de un PC completo en el puesto de trabajo de cada usuario, con su propio sistema operativo, aplicaciones y necesidad de gestión (antivirus, parches, instalación de aplicaciones, reparaciones, etc). El precio de adquisición del hardware también se puede reducir, ya que aunque un equipo que pueda utilizarse como servidor de escritorios tiene un coste más alto que un PC ordinario puede dar servicio a varias decenas de usuarios y su potencia se aprovecha mejor al ser un recurso compartido. Adicionalmente se aumenta la seguridad de los datos, ya que es fácil realizar backup de toda la información en el centro de datos. ¿Quién realiza backup sistemático de los discos locales de todos sus PC?

Otras ventajas son:

  • Simplicidad en la provisión de nuevos escritorios. Un nuevo empleado puede tener su sistema listo en unos segundos.

  • Reducción drástica de los tiempos de no servicio. Una avería en el dispositivo de acceso no requiere reinstalar ningún software. Simplemente se remplaza el dispositivo y al conectar el nuevo en la red el usuario ya puede trabajar inmediatamente. El tiempo de no servicio se puede reducir a unos minutos.

  • Reducción del coste del despliegue de aplicaciones. No es necesario utilizar sistemas complejos para la instalación de aplicaciones de forma distribuida. Toda el despliegue se realiza en los servidores.

  • Posibilidad de disponer de imágenes de los escritorios. Es posible cambiar el escritorio que ejecuta un usuario o se ejecuta en un puesto de trabajo en unos segundos. Especialmente útil si varios usuarios comparten el dispositivo en turnos o para aulas de cursos.

  • La infraestructura de acceso no queda obsoleta nunca. El ciclo de vida de los dispositivos de acceso se alarga indefinidamente, hasta que realmente es necesario remplazarlos por avería y no por obsolescencia.

  • Mejoras en la seguridad. La gestión de la seguridad se simplifica, ya es más fácil controlar los dispositivos que los usuarios conectan a sus equipos. Los datos, además, nunca salen del centro de datos.

 

La arquitectura, sin embargo, también tiene algunas limitaciones, que pueden no hacerla adecuada para algunos usuarios concretos. Por ejemplo:

  • Los usuarios pierden autonomía sobre sus equipos, por lo que pueden presentarse ciertas reticencias si están acostumbrados a instalar aplicaciones y almacenar datos privados (“No puedo pasar las fotos a mi ordenador”)

  • Peor soporte para impresoras y periféricos que estén conectados al ordenador. La arquitectura prácticamente exige que las impresoras se conecten directamente a la red y no a los equipos de los usuarios.

  • Las aplicaciones multimedia con uso intensivo de video en alta resolución pueden no tener un buen rendimiento. Si es necesario ejecutar aplicaciones multimedia con video en alta resolución puede ser necesario que los dispositivos de acceso decodifiquen el video localmente, lo que añade cierta complejidad al sistema y exige dispositivos de mayor potencia.

  • Dependencia del sistema a la disponibilidad de los servidores de escritorio y infraestructura de red. Es necesario contemplar algún nivel de redundancia para ambos subsistemas si queremos garantizar el uptime.

  • Cierta necesidad de formación en los técnicos que deban desplegar y administrar la infraestructura. La administración de una infraestructura para escritorios virtuales requiere ciertos conocimientos específicos y en algunos casos algunos cambios en los modos de trabajo y procedimientos operativos.

Conclusión

Los escritorios virtuales proporcionan prestaciones más avanzadas que los sistemas basados en PC tradicionales, algunas exclusivas, con unos costes de explotación mucho menores. Es por ello evidente que se van a imponer los próximos años en la mayoría de entornos empresariales. Su puesta en marcha,  para obtener todos los beneficios que pueden proporcionar requiere, sin embargo como en todo sistema de cierta complejidad, que se parta de un buen diseño y contar con expertos que puedan proponer las soluciones más adecuadas.

En estos momentos ningún fabricante puede ofrecer una solución realmente completa, con todos los componentes necesarios para cualquier situación. La solución óptima requiere un cierto grado de integración y un soporte de especilistas para su diseño y puesta en marcha, si deseamos realmente tener una infraestructura a la que podamos sacarle todo el partido a un precio razonable.