Comparación de las máquinas virtuales con los contenedores

Completado

La virtualización de hardware permite ejecutar varias instancias aisladas de sistemas operativos simultáneamente en el mismo hardware físico. Los contenedores representan la siguiente fase de la virtualización de los recursos informáticos.

La virtualización basada en contenedores le permite virtualizar el sistema operativo. Este enfoque permite ejecutar varias aplicaciones en la misma instancia de un sistema operativo y seguir manteniendo el aislamiento entre las aplicaciones. Los contenedores en una máquina virtual proporcionan una funcionalidad similar a la de las máquinas virtuales en un servidor físico.

Aspectos que deben conocerse sobre los contenedores frente a las máquinas virtuales

Para comprender mejor la virtualización basada en contenedores, vamos a comparar los contenedores con las máquinas virtuales.

Comparación Containers Máquinas virtuales
Aislamiento Un contenedor suele proporcionar un aislamiento ligero del host y otros contenedores, pero no proporciona un límite de seguridad tan sólido como el de una máquina virtual. Una máquina virtual proporciona un aislamiento completo del sistema operativo host y otras máquinas virtuales. Esta separación es útil cuando un límite de seguridad sólido es fundamental, como en el hospedaje de aplicaciones de empresas de la competencia en el mismo servidor o clúster.
Sistema operativo Los contenedores ejecutan la parte del modo de usuario de un sistema operativo y se pueden personalizar para que contengan solo los servicios necesarios para la aplicación. Este enfoque ayuda a usar menos recursos del sistema. Las máquinas virtuales ejecutan un sistema operativo completo que incluye el kernel, para lo que se necesitan más recursos del sistema (CPU, memoria y almacenamiento).
Implementación Puede implementar contenedores individuales usando Docker desde la línea de comandos. Puede implementar varios contenedores usando un orquestador, como Azure Kubernetes Service. Puede implementar máquinas virtuales individuales mediante Windows Admin Center o el administrador de Hyper-V. Puede implementar varias máquinas virtuales usando PowerShell o System Center Virtual Machine Manager.
Almacenamiento persistente Los contenedores usan discos de Azure para el almacenamiento local de un único nodo, o bien Azure Files (recursos compartidos SMB) para el almacenamiento compartido por varios nodos o servidores. Las máquinas virtuales usan un disco duro virtual (VHD) para el almacenamiento local de una sola máquina virtual, o bien un recurso compartido de archivos SMB para el almacenamiento compartido por varios servidores.
Tolerancia a errores Si se produce un error en un nodo de clúster, el orquestador de otro nodo del clúster recrea rápidamente cualquier contenedor que se esté ejecutando en el nodo. Las máquinas virtuales pueden conmutar por error a otro servidor de un clúster y el sistema operativo de la máquina virtual se reinicia en el nuevo servidor.

Aspectos que deben tenerse en cuenta cuando se usan contenedores

Los contenedores ofrecen varias ventajas respecto a las máquinas físicas y virtuales. Revise las siguientes ventajas y piense cómo puede implementar contenedores para las aplicaciones internas de su empresa.

  • Considere la flexibilidad y la velocidad. Obtenga mayor flexibilidad y velocidad al desarrollar y compartir el código de una aplicación contenedorizada.

  • Considere la realización de pruebas. Elija contenedores para su configuración con el fin de simplificar la realización de pruebas en sus aplicaciones.

  • Considere la implementación de aplicaciones. Implemente contenedores para lograr una implementación simplificada y acelerada de sus aplicaciones.

  • Considere la densidad de la carga de trabajo. Trabaje con contenedores para poder admitir una mayor densidad de la carga de trabajo y mejorar el uso de los recursos.