¿Qué diferencia hay entre usar máquinas virtuales y contenedores? | VMware
Las máquinas virtuales y los contenedores se complementan y son similares: ambos mejoran la eficiencia de TI, la portabilidad de las aplicaciones y DevOps. No obstante, saber en qué difieren es fundamental para desarrollar una estrategia ágil, nativa de nube y basada en aplicaciones.
- Las máquinas virtuales solucionan los problemas de infraestructura, ya que permiten a las organizaciones aprovechar mejor los servidores y hacen posible la portabilidad limitada de las cargas de trabajo.
- Los contenedores solucionan los problemas de las aplicaciones, ya que mejoran DevOps, hacen posibles los microservicios, aumentan la portabilidad y mejoran más el uso de los recursos.

«VMware Cloud Foundation Integrates vSphere With Kubernetes»

«Las cinco razones principales por las que Kubernetes funciona mejor en VMware vSphere»
¿Cuál es la principal diferencia entre los contenedores y las máquinas virtuales?
Las máquinas virtuales incluyen el sistema operativo invitado junto al código de las aplicaciones y las dependencias de esta, que antiguamente se ejecutaban en un único servidor o un depósito de servidores. Las imágenes de máquinas virtuales suelen ocupar varios gigabytes. Pueden existir varias máquinas virtuales en un solo servidor físico, incluso si se ejecutan en sistemas operativos diferentes. Las máquinas virtuales desvinculan los servidores del hardware subyacente y suelen ser persistentes durante toda su vida útil.
Los contenedores comparten el sistema operativo del host y solo incluyen las aplicaciones y sus dependencias. Las imágenes de contenedores suelen ocupar varios megabytes. Los contenedores que se ejecutan en un mismo servidor comparten el sistema operativo subyacente. Por lo tanto, los contenedores pueden ponerse en marcha en cuestión de milisegundos y son más eficientes para los casos de uso temporales, en los que es necesario activar y desactivar instancias según cambia la demanda.
En resumen, ¿qué diferencias hay entre máquinas virtuales y contenedores?
Pese a que tanto los contenedores como las máquinas virtuales ayudan a mejorar el uso de los recursos de TI, cada uno tiene sus pros y contras. Las máquinas virtuales existen desde hace décadas, permitiendo a las empresas combinar diversos servidores, que ejecutan distintas aplicaciones, en un solo servidor físico (aunque ejecuten diferentes sistemas operativos). Esta estrategia genera sustanciosos ahorros en hardware y software de servidor, ya que lo que antes requería múltiples servidores ahora puede ejecutarse en uno solo. Las máquinas virtuales también son la base de la mayoría de servicios de nube. AWS, Azure y otras nubes públicas cuentan las máquinas virtuales entre sus soluciones estándar. No obstante, puesto que cada máquina virtual encapsula un servidor entero, la cantidad de CPU y RAM que exige cada una puede complicarse y limitar la cantidad de máquinas virtuales que pueden existir en un solo servidor.
La popularidad de los contenedores ha aumentado rápidamente desde que se publicó Docker en 2013, en parte como respuesta a la cantidad de sobrecarga que generan las máquinas virtuales. Debido a que los contenedores aprovechan el sistema operativo del servidor, comparten una instancia única del sistema operativo y de otros binarios y bibliotecas, de modo que solo necesitan contar con el código de la aplicación, ya sea una monolítica o microservicios empaquetados en uno o más contenedores para abordar una función empresarial.
Por lo tanto, aunque las máquinas virtuales permiten a las organizaciones ejecutar varios servidores virtuales en un solo componente de hardware (independientemente del sistema operativo que utilicen), los contenedores permiten virtualizar las aplicaciones con ligereza y alta densidad, activar y desactivar aplicaciones e instancias en cuestión de segundos, y disponer de la seguridad que aporta poder separar cada aplicación en su contenedor.
¿Qué ventajas y desventajas tiene la virtualización?
Ventajas de las máquinas virtuales:
- Las décadas de conocimientos sobre la virtualización se traducen en acceso a una amplia gama de herramientas de seguridad y gestión de máquinas virtuales.
- Las máquinas virtuales ofrecen la posibilidad de ejecutar múltiples aplicaciones que requieran distintos sistemas operativos en un solo componente de la infraestructura.
- Las máquinas virtuales emulan un entorno informático completo, incluidos todos los recursos del sistema operativo.
- Las máquinas virtuales simplifican la portabilidad y la migración entre las instalaciones y plataformas basadas en la nube.
- Existe un amplio ecosistema establecido de máquinas virtuales y mercados en los que participan líderes del sector, como VMware.
Desventajas de las máquinas virtuales:
- Las imágenes de las máquinas virtuales suelen consumir varios gigabytes, por lo que se tarda más en crear copias de seguridad o migrar entre plataformas.
- Puesto que encapsulan el servidor entero, incluido el sistema operativo, los servidores físicos admiten menos máquinas virtuales que contenedores.
- Pueden ser necesarios varios minutos para poner en marcha una máquina virtual.
¿Qué ventajas y desventajas tienen los contenedores?
Ventajas de los contenedores:
- Los contenedores son más ligeros que las máquinas virtuales, y sus imágenes suelen ocupar varios megabytes (en lugar de gigabytes).
- Se necesitan menos recursos de TI para implementar, ejecutar y gestionar los contenedores.
- Es posible poner en marcha contenedores en cuestión de milisegundos.
- Dado que su orden de magnitud es menor,
- un único sistema puede alojar muchos más contenedores que máquinas virtuales.
Desventajas de los contenedores:
- Todos los contenedores deben ejecutarse en el mismo sistema operativo; no es posible mezclar distintos sistemas operativos ni diferentes versiones del mismo.
- Los contenedores pueden ser menos seguros que las máquinas virtuales, ya que comparten un sistema operativo subyacente.
- Los contenedores son una tecnología más nueva, por lo que el ecosistema todavía está evolucionando.
¿Cómo se utilizan los contenedores en prácticas de TI tradicionales y nuevas?
Las máquinas virtuales continuarán siendo utilizadas al migrar aplicaciones heredadas a entornos de nube e híbridos. Debido a la madurez de las máquinas virtuales, las organizaciones se sienten muy cómodas utilizándolas, y hay cierta inercia en las organizaciones que han creado una arquitectura de TI que gira en torno a las máquinas virtuales. En consecuencia, las máquinas virtuales seguirán siendo la solución idónea de desvinculación para las muchas aplicaciones empresariales monolíticas y persistentes, en especial las que no se actualizan a menudo.
No obstante, los contenedores se prestan a las prácticas y los casos de uso modernos, como la integración y distribución continuas (CI/CD) en entornos ágiles de DevOps. Los contenedores mejoran la portabilidad de las aplicaciones entre configuraciones drásticamente distintas. De este modo, una aplicación que se haya desarrollado en un portátil y se haya probado en un entorno de pruebas puede ejecutarse en la nube, sin necesidad de modificarla para que funcione en cada uno de estos tres entornos. Los contenedores también ofrecen una escalabilidad prácticamente ilimitada. Las aplicaciones basadas en microservicios que separan las interacciones del usuario del procesamiento back-end permiten que la interfaz y el back-end se amplíen por separado; y la ligereza de los contenedores implica que pueden ponerse en marcha nuevas instancias casi instantáneamente según las necesidades. Es más, abordar el desarrollo con un enfoque de microservicios fomenta el uso compartido de rutinas comunes de microservicios entre múltiples aplicaciones y procesos empresariales, lo que mejora aún más la eficiencia de los desarrolladores.
¿Cómo está evolucionando el papel de las máquinas virtuales en las prácticas de TI emergentes?
A medida que las empresas adoptan más aplicaciones de aprendizaje automático e inteligencia artificial, se tenderá a utilizar máquinas virtuales para implementar estas aplicaciones, que necesitan muchos recursos. Además, en el ámbito de las nuevas arquitecturas de red, como el 5G, que precisan más potencia de procesamiento en el perímetro, se tenderá a utilizar máquinas virtuales para que gestionen las tareas más exigentes de estas redes definidas por software.
Los contenedores prosperarán en el mundo de las aplicaciones y los servicios web modernos y orientados al cliente que requieren escalabilidad, debido a que pueden ponerse en marcha de forma casi instantánea; los contenedores también destacan como plataforma de desarrollo, puesto que los programadores no tienen que preocuparse sobre las diferencias entre la infraestructura de desarrollo y la de la implementación.
Por último, dado que los contenedores originalmente se diseñaron de cara a la transitoriedad, son idóneos para las funciones de demonio de red, caché y servicios web.
¿Sustituirán los contenedores a las máquinas virtuales, o se complementan?
Tanto los contenedores como las máquinas virtuales continuarán siendo relevantes. Los contenedores pueden ejecutarse en máquinas virtuales, lo que permite a las organizaciones aprovechar las herramientas que ya tienen para la automatización, las copias de seguridad y la supervisión. Los contenedores en máquinas virtuales permiten al departamento de TI dedicar los equipos de expertos en máquinas virtuales que ya tienen a gestionar también los entornos contenedorizados. Surgirán nuevos casos de uso para las máquinas virtuales a medida que las empresas buscan aprovechar el potencial de la infraestructura (o la nube) de formas novedosas, a fin de respaldar las exigentes cargas de trabajo de las aplicaciones y la red.
Productos y soluciones relacionados
Entorno de ejecución de Kubernetes preparado para la empresa
Gestión y análisis de registros
vSphere with Tanzu
Ejecute cargas de trabajo de Kubernetes en la infraestructura de TI que ya tiene.
Transforme las aplicaciones existentes
Actualice las aplicaciones existentes sin necesidad de refactorizarlas a un precio elevado.