Podemos ganar una pequeña comisión cuando compras algo a través de los enlaces en esta publicación.
Consulta nuestra declaración de divulgación.

¿Qué es una máquina virtual y por qué usarla?

ÍNDICE DE CONTENIDOS

Si trabajas en la industria del software o cerca de ella, probablemente hayas oído hablar de las máquinas virtuales. Si no, es posible que te preguntes qué son y para qué se utilizan.

Como ingeniero de software, uso máquinas virtuales a diario. Son herramientas potentes en el desarrollo de software, pero también tienen otros usos. También conocidas como VM, muchas empresas las utilizan debido a su flexibilidad, confiabilidad y rentabilidad; también evitan desastres causados por pruebas de software descontroladas.

Echemos un vistazo a qué son las máquinas virtuales y por qué se utilizan.

¿Qué es una máquina virtual?

Una máquina virtual es una instancia de un sistema operativo (SO) como Windows, Mac OS o Linux que se ejecuta dentro del SO principal de una computadora.

Típicamente, se ejecuta en una ventana de aplicación en tu escritorio. Una máquina virtual tiene funcionalidad completa y actúa como una computadora o máquina separada. En esencia, una máquina virtual es una computadora virtual que se ejecuta dentro de otra computadora conocida como máquina anfitriona.

Virtual-Machine 1
Imagen 1: Máquina virtual en funcionamiento en una computadora portátil.

Una máquina virtual no tiene hardware (memoria, disco duro, teclado o monitor). Utiliza hardware simulado de la máquina anfitriona. Debido a esto, se pueden ejecutar múltiples MV, también conocidas como «invitados», en una sola máquina anfitriona.

Virtual-Machine 2
Imagen 2: Máquina anfitriona ejecutando múltiples MV.

El anfitrión también puede ejecutar múltiples MV con diferentes sistemas operativos, incluyendo Linux, Mac OS y Windows. Esta capacidad depende de un software llamado hipervisor (ver Imagen 1 arriba). El hipervisor se ejecuta en la máquina anfitriona y te permite crear, configurar, ejecutar y gestionar máquinas virtuales.

El hipervisor asigna espacio en disco, programa tiempo de procesamiento y gestiona el uso de memoria para cada MV. Esto es lo que hacen aplicaciones como Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V y muchos otros: son hipervisores.

Un hipervisor puede ejecutarse en una computadora portátil, PC o servidor. Hace que las máquinas virtuales estén disponibles para la computadora local o para usuarios distribuidos en una red.

Diferentes tipos de máquinas virtuales y entornos requieren diferentes tipos de hipervisores. Veamos algunos de ellos.

Tipos de Máquinas Virtuales

Máquinas Virtuales del Sistema

Las VM del sistema, a veces llamadas virtualización completa, son ejecutadas por un hipervisor y proporcionan la funcionalidad de un sistema informático real. Utilizan el sistema operativo nativo del host para gestionar y compartir los recursos del sistema.

Las máquinas virtuales del sistema a menudo requieren un host potente con CPU rápidas o múltiples, grandes cantidades de memoria y mucho espacio en disco. Algunas, que se ejecutan en computadoras personales o portátiles, pueden no requerir la potencia de cálculo que necesitan los grandes servidores virtuales empresariales; sin embargo, funcionarán lentamente si el sistema host no es adecuado.

Máquinas Virtuales de Proceso

Las Máquinas Virtuales de Proceso son bastante diferentes de las SVM; es posible que las tengas ejecutándose en tu máquina y ni siquiera lo sepas. También se conocen como máquinas virtuales de aplicaciones o entornos de ejecución administrados (MRE). Estas máquinas virtuales se ejecutan dentro de un sistema operativo host y admiten aplicaciones o procesos del sistema.

¿Por qué usar una Máquina Virtual de Proceso? Realizan servicios sin depender de sistemas operativos o hardware específicos. Tienen su propio pequeño sistema operativo con solo los recursos que necesitan. El MRE está en un entorno separado; no importa si se ejecuta en Windows, Mac OS, Linux o cualquier otra máquina host.

Una de las Máquinas Virtuales de Proceso más comunes es una que probablemente hayas oído hablar y que puede que hayas visto ejecutándose en tu computadora. Se utiliza para ejecutar aplicaciones Java y se llama Máquina Virtual de Java o JVM, por sus siglas en inglés.

Tipos de hipervisores

La mayoría de las máquinas virtuales con las que nos preocupamos utilizan un hipervisor porque emulan todo un sistema informático. Hay dos tipos diferentes de hipervisores: hipervisores de metal desnudo y hipervisores alojados. Echemos un vistazo rápido a ambos.

Hipervisor de metal desnudo

Los HMD también pueden llamarse hipervisores nativos y se ejecutan directamente en el hardware del host en lugar de ejecutarse dentro del sistema operativo del host. De hecho, ocupan el lugar del sistema operativo del host, programando y administrando el uso del hardware por cada máquina virtual, eliminando así al «intermediario» (el sistema operativo del host) en el proceso.

Los hipervisores nativos se utilizan normalmente para VM empresariales a gran escala, que las empresas utilizan para proporcionar recursos de servidor a los empleados. Microsoft Azure o Amazon Web Services son VM alojadas en este tipo de arquitectura. Otros ejemplos son KVM, Microsoft Hyper-V y VMware vSphere.

Hipervisor alojado

Los hipervisores alojados se ejecutan en sistemas operativos estándar, al igual que cualquier otra aplicación que ejecutamos en nuestras máquinas. Utilizan el sistema operativo del host para administrar y distribuir recursos. Este tipo de hipervisor es más adecuado para usuarios individuales que necesitan ejecutar varios sistemas operativos en sus máquinas.

Estos incluyen aplicaciones como Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop y muchos otros. Puede encontrar información más detallada sobre hipervisores alojados en nuestro artículo, Mejor software de máquina virtual.

¿Por qué usar máquinas virtuales?

Ahora que tienes una comprensión básica de lo que es una máquina virtual, probablemente puedas pensar en algunas aplicaciones excelentes. Aquí tienes algunas de las principales razones por las que la gente utiliza máquinas virtuales.

1. Rentable

Las máquinas virtuales son rentables en numerosas situaciones. Una de las más destacadas es en el mundo corporativo. Utilizar servidores físicos para proporcionar recursos a los empleados puede ser muy costoso. El hardware no es barato y su mantenimiento es aún más costoso.

El uso de máquinas virtuales como servidores empresariales se ha convertido en la norma. Con VMs de un proveedor como MS Azure, no hay compras iniciales de hardware ni tarifas de mantenimiento. Estas VMs se pueden configurar, configurar y utilizar por solo unos centavos por hora. También se pueden apagar cuando no se utilizan y no incurren en ningún costo.

El uso de una VM en tu máquina también puede ahorrarte mucho dinero. Si necesitas trabajar en varios sistemas operativos o diferentes configuraciones de hardware, puedes utilizar varias máquinas virtuales en un solo host, sin necesidad de comprar una computadora separada para cada tarea.

2. Escalable y flexible

Tanto si son servidores empresariales como VMs que se ejecutan en tu portátil, las máquinas virtuales son escalables. Es fácil ajustar los recursos según tus necesidades. Si necesitas más memoria o espacio en el disco duro, simplemente ve al hipervisor y reconfigura la VM para que tenga más. No es necesario comprar nuevo hardware y el proceso se puede completar rápidamente.

3. Configuración rápida

Una nueva VM se puede configurar rápidamente. He tenido casos en los que necesitaba una nueva configuración de VM, llamé a mi compañero de trabajo que las gestiona y las tuve listas para usar en menos de una hora.

4. Recuperación ante desastres

Si estás tratando de evitar la pérdida de datos y prepararte para la recuperación ante desastres, las VMs pueden ser una herramienta fantástica. Son fáciles de respaldar y se pueden distribuir en diferentes ubicaciones si es necesario. Si un tercero como Microsoft o Amazon aloja las máquinas virtuales, estarán fuera del sitio, lo que significa que tus datos estarán seguros si tu oficina se incendia.

5. Fácil de reproducir

La mayoría de los hipervisores te permiten hacer una copia o imagen de una VM. La imagen te permite crear fácilmente reproducciones exactas de la misma VM base para cualquier situación.

En el entorno en el que trabajo, damos a cada desarrollador una VM para usar en desarrollo y pruebas. Este proceso nos permite tener una imagen configurada con todas las herramientas y software necesarios. Cuando tenemos un nuevo desarrollador a bordo, todo lo que tenemos que hacer es hacer una copia de esa imagen y ellos tienen lo que necesitan para empezar a trabajar.

6. Perfecto para desarrollo y pruebas

Una de las mejores ventajas de utilizar máquinas virtuales es que son una herramienta perfecta para el desarrollo y las pruebas de software. Las VMs permiten a los desarrolladores desarrollar en múltiples plataformas y entornos en una sola máquina. Si esa VM se corrompe o se destruye, se puede crear rápidamente una nueva.

Permiten a un probador tener un entorno nuevo y limpio para cada ciclo de prueba. He trabajado en proyectos en los que configuramos scripts de prueba automatizados que crean una nueva VM, instalan la última versión del software, ejecutan todas las pruebas requeridas y luego eliminan la VM una vez que las pruebas se han completado.

Las VMs funcionan de manera excelente para las pruebas y revisiones de productos, como las que hacemos aquí en SoftwareHow.com. Puedo instalar aplicaciones en una VM que se ejecuta en mi máquina y probarlas sin llenar mi entorno principal.

Cuando termino las pruebas, siempre puedo eliminar la máquina virtual y luego crear una nueva cuando la necesite. Este proceso también me permite probar en múltiples plataformas aunque solo tenga una máquina con Windows.

Palabras Finales

Como puedes ver, las máquinas virtuales son una herramienta rentable y versátil que se puede utilizar para muchas aplicaciones. Ya no necesitamos comprar, configurar y mantener hardware costoso para proporcionar acceso al servidor para probadores, desarrolladores y otros. Las VM nos brindan la flexibilidad de crear fácil y rápidamente los sistemas operativos, hardware y entornos que necesitamos en cualquier momento.