Virtualización en escritorios (I): casos de uso

La virtualización es sin duda alguna una de las tecnologías más de moda, a la vez que útil, actualmente. A pesar de tener unos cuantos años encima (aún recuerdo lo alucinante que era ver VMware en funcionamiento a finales de los 90), la virtualización ha obtenido una gran popularidad en los últimos años gracias a diversos factores: al soporte nativo de virtualización en las CPUs modernas, a los nuevos mecanismos de virtualización (como la paravirtualización) y al enorme avance en funcionalidades y características del software de virtualización.

Pero sobre todo, lo que ha hecho que la virtualización sea tan popular hoy en día son una serie de necesidades computacionales que se resuelven todas del mismo modo: ejecutando un sistema operativo completo dentro de otro. Aunque donde se está utilizando más la virtualización es en la consolidación de servidores y centros de datos, quiero enfocar este artículo y los sucesivos al escritorio (sobre todo al basado en Linux) con el objetivo de que cualquier usuario pueda sacar provecho de esta tecnología tan útil e interesante.

En este primer artículo voy a enumerar esas necesidades computacionales que he mencionado antes, casos de uso en los que la virtualización supone la mejor solución a ciertos problemas tecnológicos. Pero antes, para los no iniciados en estos menesteres, definiré la virtualización como la abstracción de un recurso tecnológico (generalmente una plataforma hardware) a través de un software especializado de forma que permita la instalación y ejecución simultánea de varios sistemas operativos alojados (conocidos como máquinas virtuales o VMs) repartiendo el uso de dicho recurso tecnológico entre ellos. De este modo, por ejemplo es perfectamente posible tener como sistema anfitrión una Debian Squeeze sobre la que instalamos un Windows XP, un Windows 7, un Mac OSX, una Debian Wheezy y una Fedora, todos virtualizados y ejecutándose simultáneamente (si así lo queremos).

Veamos los casos de uso en los que la virtualización se revela como solución crítica a ciertos problemas:

  1. Banco de pruebas: Ya sea para probar un nuevo sistema operativo o una nueva aplicación, podemos crear VMs en las que instalar el software que queramos y hacerle todas las pruebas que nos vengan en gana sin miedo a «ensuciar» nuestro sistema operativo principal.
  2. Sandbox: Muy relacionado con el caso anterior, este concepto pertenece al campo de la seguridad informática. Con un sandbox podemos probar software de dudosa procedencia, visitar páginas web sospechosas y realizar otras actividades que a priori puedan ser peligrosas para la integridad del sistema anfitrión. Asimismo, podemos utilizar un sandbox para instalar software con vulnerabilidades conocidas y entrenar nuestras habilidades como consultores en seguridad informática, de nuevo sin poner en peligro nuestro sistema principal de trabajo.
  3. Uso de software específico: Existen ocasiones en las que un usuario requiere de un software concreto para el que no hay alternativa que le satisfaga en Linux. En este caso, una buena opción es una VM en la que instalar dicho software y poder utilizarlo a la vez que trabaja en su escritorio Linux.
  4. Uso de software antiguo: Parecido al caso anterior, puede ocurrir que el usuario necesite seguir utilizando un software para el que ya no existe soporte y que es incompatible con cualquier sistema operativo moderno (por ejemplo, la típica aplicación de gestión para MS-DOS). Una VM con un sistema operativo antiguo pero compatible es sin duda una gran solución para que el usuario pueda seguir utilizando dicho software, aunque sea simplemente a nivel de consulta de datos históricos. Casualmente, este es el caso que más nos consultan nuestros clientes en Activa Sistemas.
  5. Entorno de desarrollo: Este caso es un guiño para mis colegas informáticos, sobre todo los que se dedican a la programación. Ellos saben bien el lío que se les puede formar en su escritorio a la hora de instalar todas las herramientas que pueden necesitar para su trabajo, sobre todo si estamos hablando de desarrollar con lenguajes de programación diferentes. Una VM para cada entorno de desarrollo es una buena solución para no caer en el caos de las herramientas y posibles incompatibilidades entre ellas.

Estos son los casos más habituales y que generalmente me encuentro. ¿Se os ocurren otras situaciones en las que la virtualización en el escritorio sea la mejor solución?

En próximos artículos revisaré algunas de las soluciones más interesantes que existen en el mercado, qué ofrecen y cómo ponerlas en marcha en nuestros escritorios Linux.