En su nivel básico, una máquina virtual –Virtual Machine o VM– es un software que ejecuta programas o aplicaciones sin estar atado a una máquina física. En una configuración de VM, una o más máquinas invitadas pueden ejecutarse en una computadora anfitriona física.
Cada VM tiene su propio sistema operativo y funciona de forma separada de otras VM, incluso si están ubicadas en el mismo host físico. Las máquinas virtuales generalmente se ejecutan en servidores de computadoras, pero también pueden ejecutarse en sistemas de escritorio o incluso en plataformas integradas. Múltiples máquinas virtuales pueden compartir recursos del host físico, incluidos los ciclos de la CPU, el ancho de banda de la red y la memoria.
Unos 60 años de vida
Las VM tienen su origen en los primeros días de la informática en la década de 1960, cuando el tiempo compartido para los usuarios de la computadora central era un medio de separar el software de un sistema anfitrión físico. La máquina virtual se definió a principios de los 70 como “un duplicado eficiente y aislado de una máquina de computación real”.
Las máquinas virtuales tal como las conocemos hoy en día han cobrado fuerza en los últimos 15 años a medida que las empresas adoptaron la virtualización de servidores para utilizar la potencia de computación de sus servidores físicos de manera más eficiente, reduciendo la necesidad de servidores físicos y ahorrando así espacio en el centro de datos. Debido a que las aplicaciones con diferentes requisitos de sistema operativo podían funcionar en un solo host físico, no se requería un hardware de servidor diferente para cada una.
En general, hay dos tipos de máquinas virtuales: VM de proceso, que separan un solo proceso, y VMs de sistema, que ofrecen una separación completa del sistema operativo y las aplicaciones de la computadora física.
Ejemplos de máquinas virtuales de proceso incluyen Java, el .NET Framework y Parrot.
Las VM del sistema dependen de los hipervisores, intermediarios que dan acceso al software a los recursos de hardware. Los grandes nombres en el espacio de los hipervisores incluyen VMware (ESX/ESXi), Intel/Linux Foundation (Xen), Oracle (MV Server para SPARC y Oracle VM Server para x86) y Microsoft (Hyper-V).
Ventajas de las máquinas virtuales
Como el software está separado de la computadora central física, los usuarios pueden ejecutar varias instancias del sistema operativo en una sola pieza de hardware, lo que ahorra a la empresa tiempo, gastos de gestión y espacio físico. Otra ventaja es que las VM pueden admitir aplicaciones heredadas, reduciendo o eliminando la necesidad y el costo de migrar una aplicación antigua a un sistema operativo actualizado o diferente.
Además, los desarrolladores utilizan las máquinas virtuales para probar las aplicaciones en un entorno seguro y sandbox. Esto también puede ayudar a aislar el malware que podría infectar una instancia de VM determinada. Dado que el software dentro de una máquina virtual no puede manipular la computadora central, el software malicioso no puede propagar tanto daño.
Las desventajas de las máquinas virtuales
Las máquinas virtuales tienen algunas desventajas. Ejecutar varias máquinas virtuales en un host físico puede dar lugar a un rendimiento inestable, especialmente si no se cumplen los requisitos de infraestructura para una aplicación concreta. Esto también las hace menos eficientes en muchos casos cuando se comparan con una computadora física. La mayoría de las operaciones de TI utilizan un equilibrio entre los sistemas físicos y virtuales.
Otras formas de virtualización
El éxito de las máquinas virtuales en la virtualización de servidores llevó a aplicar la virtualización a otras áreas, como son el almacenamiento, las redes o las computadoras de escritorio. Lo más probable es que, si hay un tipo de hardware que se está utilizando en el centro de datos, se esté explorando el concepto de virtualizarlo.
En la virtualización de redes, las empresas han explorado opciones de red como servicio y la virtualización de funciones de red –NFV, Network Functions Virtualization–, que utiliza servidores de productos básicos para sustituir los aparatos de red especializados y permitir servicios más flexibles y escalables. Esto difiere un poco de la red definida por los programas informáticos, que separa el plano de control de la red del plano de reenvío para permitir un aprovisionamiento más automatizado y una gestión de los recursos de la red basada en políticas.
Una tercera tecnología, las funciones de red virtual, son servicios basados en programas informáticos que pueden ejecutarse en un entorno NFV, incluidos procesos como el enrutamiento, el cortafuegos, el equilibrio de la carga, la aceleración de la WAN y el cifrado.
VM y contenedores
El crecimiento de las máquinas virtuales ha dado lugar a un mayor desarrollo de tecnologías como los contenedores, que llevan el concepto un paso más allá y está ganando atractivo entre los desarrolladores de aplicaciones web. En el entorno de un contenedor, una sola aplicación, junto con sus dependencias, puede ser virtualizada. Con muchos menos gastos generales que una máquina virtual, un contenedor sólo incluye binarios, bibliotecas y aplicaciones.
Mientras que algunos piensan que el desarrollo de contenedores puede “matar” a la VM, hay suficientes capacidades y beneficios de las máquinas virtuales que mantienen la tecnología en movimiento. Por ejemplo, las VM siguen siendo útiles cuando se ejecutan múltiples aplicaciones juntas o cuando se ejecutan aplicaciones heredadas en sistemas operativos más antiguos.
Además, algunos opinan que los contenedores son menos seguros que los hipervisores de las máquinas virtuales porque los contenedores tienen un solo sistema operativo que las aplicaciones comparten, mientras que las máquinas virtuales pueden aislar la aplicación y el sistema operativo.
Gary Chen, el gerente de investigación de la división de Computación Definida por Software de IDC, señaló que el mercado de software para VM sigue siendo una tecnología fundamental, incluso cuando los clientes exploran las arquitecturas en nube y los contenedores. “El mercado de software de máquinas virtuales ha sido notablemente resistente y continuará creciendo positivamente en los próximos cinco años, a pesar de ser muy maduro y estar acercándose a la saturación”, escribe Chen en el Worldwide Virtual Machine Software Forecast de IDC, 2019-2022.
VMS, 5G y edge computing
Las máquinas virtuales son vistas como parte de nuevas tecnologías como el 5G y el edge computing. Por ejemplo, los proveedores de infraestructura de escritorio virtual –VDI, Virtual Desktop Infrastructure– como Microsoft, VMware y Citrix están buscando formas de extender sus sistemas VDI a los empleados que ahora trabajan en casa a causa de la pandemia.
Como muchas otras tecnologías que se utilizan hoy en día, éstas no se habrían desarrollado si no fuera por los conceptos originales de VM introducidos hace décadas.