Una máquina virtual es un ordenador basado en software que proporciona un entorno aislado en el hardware del host. Las máquinas virtuales pueden ejecutar programas y sistemas operativos, almacenar datos, conectarse a redes y cumplir otras funciones informáticas. Gran parte de la tecnología de la que nos beneficiamos hoy en día, como cloud computing y la inteligencia artificial, se basa en el concepto de máquina virtual, que permite separar los sistemas operativos y el software desde una máquina física. Por ejemplo, las máquinas virtuales de cloud computing se usan para virtualizar los recursos de los servidores de los proveedores de servicios en la nube, lo que da lugar a una arquitectura en la nube multicliente que permite a los clientes compartir recursos estando aislados entre sí.
Las máquinas virtuales utilizan tecnología de virtualización para crear hardware virtual o la versión virtual de un ordenador en una máquina física. La máquina física en la que se ejecutan las máquinas virtuales se denomina host y las que se ejecutan en ella se denominan invitadas.
Cada VM invitada se ejecuta en una partición aislada del host, totalmente separada del resto de las invitadas. Puedes alojar varias máquinas virtuales en una sola máquina host, normalmente un servidor, que se ejecute en una capa de software llamada hipervisor.
El hipervisor abstrae los recursos físicos de la máquina host, como las CPUs, las GPUs, las TPUs, la memoria, el almacenamiento o las redes, en un grupo que se puede aprovisionar y asignar de forma dinámica a máquinas virtuales invitadas según sea necesario, lo que proporciona más flexibilidad y aumenta la eficiencia general.
En términos generales, hay dos tipos de máquinas virtuales: las de proceso y las de sistema.
Una máquina virtual de proceso, también denominada máquina virtual de aplicaciones o entorno de ejecución gestionado (MRE), crea un entorno virtual de un SO mientras se ejecuta una aplicación o un proceso único y lo destruye en cuanto sales de ella. Las máquinas virtuales de proceso permiten crear un entorno independiente de la plataforma donde una aplicación o un proceso se puede ejecutar 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 gestionado en Google Cloud, independientemente del sistema operativo subyacente.
Una máquina virtual de sistema (a veces denominada "máquina virtual de hardware") simula un sistema operativo completo, permitiendo que varios entornos de sistema operativo se alojen en el mismo equipo. Normalmente, este es el tipo de máquina virtual al que se refieren los usuarios cuando hablan de "máquinas virtuales". Las máquinas virtuales de sistema pueden ejecutar su propio SO y sus propias aplicaciones, y un hipervisor monitoriza y distribuye los recursos de la máquina host física entre las máquinas virtuales de sistema.
Algunos proveedores de servicios en la nube, como Google, ofrecen la posibilidad de personalizar la cantidad exacta de procesadores virtuales y memoria virtual en cada instancia. Esto permite dimensionar de forma más precisa cada carga de trabajo y evita la infrautilización y los costes asociados de recursos y licencias de software para esa instancia de computación. Por ejemplo, algunas cargas de trabajo pueden requerir una alta proporción de núcleos de computación por memoria, mientras que otras pueden necesitar lo contrario. La personalización de la máquina virtual aborda estos casos prácticos sin sobreaprovisionar ni pagar de más por recursos que no se van a utilizar.
Aunque tanto las máquinas virtuales como los contenedores se usan para aislar aplicaciones, lo hacen de formas fundamentalmente distintas. 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 e independiente, pero también significa que las VMs suelen ser más grandes y consumen más recursos.
Por el contrario, los contenedores son más ligeros porque solo virtualizan la capa del sistema operativo. En lugar de incluir 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 máquinas virtuales y que se inicien más rápido sin dejar de estar aislados. Por eso, los contenedores son una opción atractiva para desarrollar nuevas aplicaciones. Como muchas de las aplicaciones desarrolladas en los últimos 10 años se han escrito para contenedores, muchas cargas de trabajo, como las de comercio electrónico, back-office e IA, son "nativas de contenedor".
Las máquinas virtuales son los elementos básicos de los recursos informáticos virtualizados y tienen un papel primordial en la creación de cualquier aplicación, herramienta o entorno, tanto en la nube como on-premise.
A continuación, se indican algunos de los usos más habituales de las máquinas virtuales en las empresas:
Se pueden reconfigurar varias máquinas físicas como máquinas virtuales y ejecutarlas en un host junto con otras máquinas virtuales, lo que permite a las empresas reducir la dispersión. Las máquinas virtuales han demostrado con el tiempo que son capaces de ejecutar incluso las aplicaciones más sensibles al rendimiento.
Un equipo central de TI puede aprovisionar y gestionar máquinas virtuales para cada unidad de negocio y área funcional, lo que agiliza el acceso a los recursos y mejora la visibilidad corporativa.
Las máquinas virtuales pueden usarse como entornos aislados de desarrollo y pruebas que incluyen todas las funciones, pero no tienen un impacto en el resto de la infraestructura.
Es posible activar o desactivar, migrar y adaptar fácilmente las máquinas virtuales para gozar de la máxima flexibilidad para el desarrollo y el despliegue.
La flexibilidad y la portabilidad que proporcionan las máquinas virtuales son clave para incrementar la velocidad de las iniciativas de migración.
La replicación de sistemas en entornos de nube mediante máquinas virtuales puede proporcionar una capa adicional de seguridad y confianza. Además, los entornos en la nube también se pueden actualizar continuamente.
Las máquinas virtuales ofrecen las bases para crear un entorno en la nube respaldado por otro entorno on-premise, lo que te proporciona una gran flexibilidad sin tener que abandonar los sistemas antiguos.
Las máquinas virtuales ofrecen muchas ventajas, sobre todo si optas por una máquina virtual de la nube. Entre ellas, se encuentran las siguientes:
Escalabilidad
Las máquinas virtuales basadas en la nube facilitan el escalado de tus aplicaciones y aumentan la disponibilidad y el rendimiento. Puedes aumentar la capacidad en función de la demanda sin tener que invertir en tus propios servidores físicos.
Portabilidad
Una máquina virtual es un paquete de software con recursos de hardware, un sistema operativo y todas sus aplicaciones. Puedes trasladar fácilmente las máquinas virtuales de un servidor a otro, o incluso de hardware on-premise a entornos en la nube.
Reducción del impacto y los costes
Las máquinas virtuales te permiten ejecutar varios entornos virtuales desde una sola máquina, lo que te ayuda a reducir el impacto de tu infraestructura física, la factura de la luz y los costes de mantenimiento y gestión.
Aprovisionamiento más rápido
Las máquinas virtuales se pueden duplicar fácilmente, lo que permite a las empresas reactivar entornos nuevos e idénticos sin tener que configurarlos desde cero.
Fiabilidad
Las máquinas virtuales y sus componentes existen de forma virtual y permanecen aisladas de otras máquinas virtuales invitadas. Si falla una máquina virtual, las demás máquinas virtuales invitadas seguirán funcionando y la máquina host física no se verá afectada.
Mayor seguridad
Las máquinas virtuales te permiten ejecutar varios sistemas operativos sin que afecte al sistema operativo del host. Las máquinas virtuales te permiten crear entornos virtuales seguros para probar aplicaciones o incluso estudiar vulnerabilidades de seguridad sin riesgos para la máquina host.
Sin embargo, al ejecutar máquinas virtuales, debes tener en cuenta algunas cuestiones. Uno de los mayores retos que pueden plantear las máquinas virtuales es que ejecutar varios sistemas operativos y una capa de hipervisor puede conllevar un coste de rendimiento si la máquina host no es lo suficientemente sólida. Además, el hardware virtual puede no ser 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 con una CPU y una memoria fijas, lo que provoca un uso ineficiente de los recursos.
Sin embargo, muchas de estas preocupaciones pueden resolverse si se opta por usar las máquinas virtuales que ofrece un proveedor de servicios en la nube. Las máquinas virtuales de nube presentan muchas ventajas con respecto a las máquinas virtuales tradicionales, ya que ofrecen a las empresas acceso a la potencia de computación de todo un centro de datos, en lugar de a un solo ordenador. Además, los tamaños de las máquinas virtuales de Google Compute Engine ofrecen tipos de máquinas personalizadas. En lugar de elegir entre tipos de máquinas predefinidos que podrían incluir capacidad de más, puedes adaptar la proporción de CPU a memoria específicamente para tus cargas de trabajo, de forma que solo pagues por los recursos que realmente uses. Este enfoque específico minimiza el desperdicio y puede reducir significativamente tu gasto en la nube, especialmente al migrar de on-premise a Google Cloud o desde otros proveedores de servicios en la nube. Compute Engine también ofrece tipos de máquinas virtuales optimizados para las necesidades específicas de los clientes con cargas de trabajo empresariales, configuraciones con gran capacidad de memoria o cargas de trabajo exigentes, como aprendizaje automático o computación de alto rendimiento.
Google Cloud también ofrece máquinas virtuales blindadas para aumentar la seguridad y la integridad verificable de tus instancias de máquina virtual. Las máquinas virtuales blindadas de Google Cloud usan los controles y las funciones de seguridad avanzadas de la plataforma para proteger las cargas de trabajo empresariales contra amenazas como ataques remotos, apropiación de privilegios e insiders maliciosos.
Solución
Solución
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.