¿Qué es una máquina virtual?

Una máquina virtual (VM) es una computadora basada en software que proporciona un entorno aislado en el hardware host. Las máquinas virtuales pueden ejecutar programas y sistemas operativos, almacenar datos, conectarse a redes y realizar otras funciones de procesamiento. Gran parte de la tecnología que nos beneficia hoy en día, como la computación en la nube y la inteligencia artificial, se basa en el concepto de máquina virtual, que permite separar los sistemas operativos y el software de una máquina física. Por ejemplo, las VMs en la computación en la nube se usan para virtualizar los recursos de los servidores de los proveedores de servicios en la nube, lo que habilita una arquitectura de nube multiusuario que permite que los clientes compartan recursos mientras están aislados entre sí.

¿Cómo funcionan las máquinas virtuales?

Las máquinas virtuales usan tecnología de virtualización para crear hardware virtual, o una versión virtual de una computadora en una máquina física. La máquina física en la que se ejecutan las VMs se denomina host, y las VMs que se ejecutan en el host se denominan huéspedes

Cada VM invitada se ejecuta en una partición aislada en el host, separada por completo de los demás invitados. Puedes alojar varias VMs en una sola máquina anfitrión, a menudo un servidor, que se ejecute en una capa de software conocida como hipervisor.

El hipervisor abstrae los recursos físicos de la máquina anfitrión, como CPUs, GPUs, TPUs, memoria, almacenamiento o redes, en un grupo que se puede aprovisionar y asignar de forma dinámica a las VMs invitadas según sea necesario, lo que proporciona más flexibilidad y aumenta la eficiencia general.

Dos tipos principales de hipervisores

  • Tipo 1: Hipervisores físicos: Se ejecutan directamente en el hardware físico del host. Se usan comúnmente en centros de datos empresariales por su alto rendimiento y eficiencia. Por ejemplo, Google Cloud usa un hipervisor basado en KVM para potenciar sus máquinas virtuales de Compute Engine.
  • Tipo 2: hipervisores alojados: Estos se ejecutan como una aplicación sobre un sistema operativo existente, lo que los hace adecuados para el uso de escritorio. El caso de uso más común es para desarrollo y pruebas.

Tipos de máquinas virtuales

En términos generales, existen dos tipos de máquinas virtuales: VMs de proceso y VMs de sistema.

Una VM de proceso, también llamada máquina virtual de aplicación o entorno de ejecución administrado (MRE), crea un entorno virtual de un SO mientras se ejecuta una app o un proceso único, y lo destruye en cuanto tú sales. Las VMs de procesos permiten crear un entorno independiente de la plataforma que permite que una app o un proceso se ejecuten de la misma manera en cualquier plataforma. Un ejemplo concreto de esto es el entorno de ejecución de Node.js en App Engine, que permite que un programa de Node.js se ejecute en un entorno administrado en Google Cloud, independientemente del sistema operativo subyacente.

Una VM del sistema (a veces llamada máquinas virtuales de hardware) simula un sistema operativo completo, lo que permite que varios entornos de SO residan en la misma máquina. Por lo general, es el tipo de VM al que se refieren las personas cuando hablan de “máquinas virtuales”. Las VMs del sistema pueden ejecutar su propio SO y sus aplicaciones, y un hipervisor supervisa y distribuye los recursos de la máquina anfitrión física entre las VMs del sistema.

Algunos proveedores de servicios en la nube, incluido Google, ofrecen la capacidad adicional de personalizar la cantidad exacta de procesadores virtuales y memoria virtual en cada instancia. Esto permite una optimización del tamaño más precisa para cada carga de trabajo y evita la subutilización y los costos asociados de recursos y licencias de software para esa instancia de procesamiento. Por ejemplo, algunas cargas de trabajo pueden requerir una alta proporción de núcleos de procesamiento a memoria, mientras que otras pueden requerir lo contrario. La personalización de la máquina virtual aborda estos casos de uso sin un aprovisionamiento excesivo y sin pagar de más por recursos que no se utilizarán.

VMs frente a contenedores

Si bien las VMs y los contenedores se usan para aislar aplicaciones, lo hacen de formas fundamentalmente diferentes. Una máquina virtual virtualiza toda la pila de hardware físico, incluido el sistema operativo. Esto hace que cada VM sea un entorno aislado y autónomo, pero también significa que las VMs tienden a ser más grandes y a ocupar más recursos.

Por el contrario, los contenedores son más ligeros porque solo virtualizan la capa del SO. En lugar de agrupar un sistema operativo completo con cada aplicación, un contenedor comparte el kernel del SO del host. Esto permite que los contenedores usen menos recursos que las VMs y se inicien más rápido, mientras permanecen aislados. Esto hace que los contenedores sean atractivos para el desarrollo de nuevas aplicaciones. Dado que muchas de las aplicaciones desarrolladas en los últimos 10 años se escribieron para contenedores, muchas cargas de trabajo, incluidas las de comercio electrónico, back-office y de IA, son “nativas de contenedores”.

¿Cómo se usan las máquinas virtuales?

Las VMs son los componentes básicos de los recursos de procesamiento virtualizados y desempeñan una función principal en la creación de cualquier aplicación, herramienta o entorno, tanto en la nube como de forma local.

Estas son algunas de las formas más comunes en que las empresas usan las máquinas virtuales:

Múltiples máquinas físicas se pueden reconfigurar como una VM y ejecutarse en un host junto con otras VMs, lo que permite a las organizaciones reducir la dispersión. Con el tiempo, se demostró que las VMs son capaces de ejecutar incluso las aplicaciones más sensibles al rendimiento.

Una organización central de TI puede aprovisionar y administrar VMs para cada unidad de negocios y área funcional, lo que acelera el acceso a los recursos y mejora la visibilidad corporativa.

Las VMs pueden actuar como entornos aislados para realizar pruebas y desarrollar que incluyen una funcionalidad completa, pero no tienen un impacto en la infraestructura circundante.

Las VMs se pueden desactivar, migrar y adaptar con facilidad, lo que proporciona máxima flexibilidad para el desarrollo y la implementación.

La flexibilidad y portabilidad que proporcionan las VMs son clave para aumentar la velocidad de las iniciativas de migración.

Replicar sistemas en entornos de nube mediante VMs puede proporcionar una capa adicional de seguridad y certeza. Los entornos de en la nube también se pueden actualizar de forma continua.

Las VMs proporcionan la base para crear un entorno de nube junto con un entorno local, lo que aporta flexibilidad sin abandonar los sistemas heredados.

Beneficios de las máquinas virtuales

Las máquinas virtuales ofrecen muchos beneficios, en especial si optas por una VM de nube, incluidos los siguientes: 

Escalabilidad

Las VMs basadas en la nube facilitan el escalamiento de tus aplicaciones, lo que aumenta la disponibilidad y el rendimiento. Puedes aumentar tu capacidad según la demanda sin tener que invertir en tus propios servidores físicos. 

Portabilidad

Una máquina virtual es un paquete de software único con recursos de hardware, un sistema operativo y todas sus aplicaciones. Puedes trasladar las VMs de un servidor a otro con facilidad, o incluso de hardware local a entornos de nube. 

Reducción de la huella y los costos

Las VMs te permiten ejecutar varios entornos virtuales desde una sola máquina, lo que ayuda a reducir la huella de tu infraestructura física, la factura de electricidad y los costos de administración y mantenimiento. 

Aprovisionamiento más rápido 

Las VMs se pueden duplicar con facilidad, lo que permite que las empresas inicien entornos idénticos nuevos sin tener que configurarlos desde cero.

Confiabilidad

Las máquinas virtuales y sus componentes existen de forma virtual y permanecen aislados de otras VMs invitadas. Si la VM falla, las otras VMs invitadas permanecerán en funcionamiento, y la máquina anfitrión física no se verá afectada. 

Mejor seguridad

Las máquinas virtuales te permiten ejecutar varios sistemas operativos sin afectar al sistema operativo del host. Las VMs te permiten crear entornos virtuales y seguros para probar apps o incluso estudiar vulnerabilidades de seguridad sin riesgos para la máquina anfitrión. 

Posibles desafíos de las máquinas virtuales

Sin embargo, deben tenerse en cuenta algunas consideraciones cuando se ejecutan VMs. Uno de los mayores desafíos potenciales de las máquinas virtuales es que ejecutar varios sistemas operativos y una capa de hipervisor puede tener un costo de rendimiento si la máquina anfitrión no es lo suficientemente sólida. Además, es posible que el hardware virtual no sea tan eficiente como el hardware físico de una máquina física. Por último, la mayoría de los proveedores de servicios en la nube ofrecen máquinas virtuales que tienen una CPU y una memoria fijas, lo que lleva a un uso ineficiente de los recursos.

Sin embargo, muchas de estas inquietudes se pueden superar si se opta por usar las VMs que ofrece un proveedor de servicios en la nube. Las VMs de Cloud proporcionan muchas ventajas en comparación con las VMs tradicionales, ya que les ofrecen a las organizaciones acceso a la potencia de procesamiento de las computadoras de todo un centro de datos, en lugar de hacerlo en una sola máquina. Además, los tamaños de máquinas virtuales de Google Compute Engine ofrecen tipos de máquinas personalizados. En lugar de elegir entre tipos de máquinas predefinidos que podrían incluir capacidad excesiva, puedes adaptar la proporción de CPU a memoria específicamente para tus cargas de trabajo, de modo que solo pagues por los recursos que realmente usas. Este enfoque específico minimiza el desperdicio y puede reducir significativamente tu inversión en la nube, especialmente cuando migras de un entorno local a Google Cloud o desde otros proveedores de servicios en la nube. Compute Engine también ofrece tipos de máquinas virtuales optimizados para necesidades específicas de los clientes en cargas de trabajo empresariales, parámetros de configuración de memoria alta o cargas de trabajo exigentes, como aprendizaje automático o computación de alto rendimiento.

Google Cloud también ofrece máquinas virtuales protegidas para aumentar la seguridad y la integridad verificable de tus instancias de VM. Las máquinas virtuales protegidas por Google Cloud aprovechan las capacidades y los controles de seguridad avanzados de la plataforma que protegen las cargas de trabajo empresariales de amenazas como ataques remotos, elevación de privilegios y usuarios maliciosos con información privilegiada. 

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.
Habla con un especialista en ventas de Google Cloud para analizar tu desafío único en más detalle.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud