Virtualización
La mayoría de los usuarios de computadores no se han percatado que el mundo de la computación ha sido revolucionado por una técnica llamada virtualización. Dicha tecnología no es en absoluto nueva: desde los inicios de la informática han existido mil ejemplos de procesadores y computadores que se hacían pasar por otros, para facilitar migraciones y reducir costos al momento de cambiar de plataformas.
¿Pero qué es virtualizar?
Los computadores tienen ciertas características (o recursos), como procesadores, memoria y periféricos. La virtualización es una aplicación que permite crear lo que se llaman máquinas virtuales, o sea, un computadores dentro del computador. Al crear una máquina virtual, es posible asignarle parte de los recursos de la máquina física, o incluso simular la existencia de hardware adicional o diametralmente distinto al utilizado.
Un ejemplo de virtualización es lo que ofrecen aplicaciones como VMWare o Virtual PC, que crean máquinas virtuales en las cuales es posible instalar sistemas operativos completos. Estos sistemas de virtualización funcionan como computadores dentro de los computadores y son capaces de simular muchos PC’s simultáneamente.
Estas herramientas son muy útiles para hacer servidores virtualizados o para simular escenarios complicados en un sólo sistema.
Virtualización de Aplicaciones
Existen también otras herramientas que permiten virtualizar aplicaciones. La más notable de ellas es Thinstall, que permite crear paquetes de aplicaciones autosuficientes. Dichos paquetes ejecutan aplicaciones sin necesidad de instalarlas, pues el paquete que las contiene prepara todos los prerequisitos al momento de ejecución, simulando todo lo necesario para que la aplicación se sienta cómoda. Este tipo de virtualización es muy usado para utilizar aplicaciones antiguas en sistemas operativos modernos.
También existen otros usos para la virtualización de aplicaciones. Uno de los más importantes es permitir la coexistencia de aplicaciones incompatibles en un mismo sistema. El hecho que las aplicaciones virtualizadas funcionen en máquinas virtuales separadas les permite funcionar correctamente y compartir el mismo hardware. Otro ejemplo son las organizaciones que poseen estrictas reglas que impiden la instalación de cierto tipo de software en los computadores. Las aplicaciones virtuales funcionan sin la necesidad de instalación, lo que permite evadir esa clase de restricciones.
¿Por qué ahora?
Como decía antes, la virtualización no es nada nuevo. Recuerdo que hace unos diez años el sistema operativo OS/2 permitía ejecutar aplicaciones de Windows y DOS en máquinas virtuales. Dicho ejemplo no tiene nada de antiguo, pues los primeros ejemplos datan de los años ’60, cuando IBM ya utilizaba técnicas de este tipo para facilitar la migración de aplicaciones desde plataformas más antiguas.
Hoy en día, la mayoría de los procesadores no sólo tienen sistemas integrados que facilitan el uso de virtualización, sino que además utilizan dichas técnicas para mostrarse compatibles con generaciones anteriores. Un ejemplo de ello son los nuevos procesadores de 64-bit, que “se disfrazan” para permitir ejecutar aplicaciones y sistemas operativos antiguos.
El actual boom de la virtualización tiene su origen en la descomunal potencia que ofrecen los actuales procesadores y en la capacidad que ellos tienen para ejecutar diversas tareas simultáneamente. Si un computador es capaz de hacer el trabajo de dos… ¡pues que lo haga!
¿Una panacea?
No, la virtualización no es un remedio para todos los problemas. En trabajos como el desarrollo de software es fundamental: permite a los desarrolladores -entre otras cosas- testear programas para diversas plataformas (sistemas operativos y arquitecturas) sin necesidad de mucho hardware. En el mundo de los servidores, se utiliza para reducir costos de migración: si una máquina virtual necesita más hardware, no hay nada más fácil que moverla a un equipo más poderoso.
Pero la virtualización también abre nuevos problemas y desafíos, no solo para los fabricantes de software, que deben repensar sus modelos de negocio para un mundo donde una pieza de hardware es capaz de ejecutar cientos de sistemas operativos y miles de copias de un mismo programa en forma simultánea. También es un desafío para los administradores el manejo y respaldo de estos equipos intangibles: un fallo de hardware puede sacar de circulación a decenas de computadores (virtuales).
Otro desafío, quizás el más importante, es lograr que dichas máquinas virtuales no sean más autónomas de lo necesario: un exceso de autonomía significa redundancia innecesaria y ello produce una pérdida de importantes recursos. La ciencia está, como siempre, en el equilibrio.
Gik.-