¿Qué diferencia existe entre el uso de contenedores y las máquinas virtuales?

Los contenedores están facilitando un desarrollo rápido y ágil como nunca antes. Pero aún persisten preguntas sobre los conceptos básicos de los contenedores, a saber..

¿En qué se diferencian de las máquinas virtuales? Si los contenedores son, por su naturaleza, transitorios y desechables, ¿Cómo puedes usarlos junto con el almacenamiento persistente?, ¿Cómo se complementan las soluciones de virtualización y la orquestación?

Diferencia entre máquinas virtuales y contenedores devops

En esta publicación de blog, abordaremos la primera pregunta: En qué se diferencian las máquinas virtuales (VM) de los contenedores.

¿Qué son las máquinas virtuales (VM)?

Históricamente, a medida que aumentaba la potencia y la capacidad de procesamiento del servidor, las aplicaciones completas no podían explotar la nueva abundancia de recursos. Así nacieron las máquinas virtuales, diseñadas mediante la ejecución de software sobre servidores físicos para emular un sistema de hardware en particular.

Libro VmWare escrito por vExpertos (GRATIS por una causa justa)

Un hipervisor o un monitor de máquina virtual, es software, firmware o hardware que crea y ejecuta máquinas virtuales. Lo que se encuentra entre el hardware y la máquina virtual y es necesario para virtualizar los servidores.

Dentro de cada máquina virtual se ejecuta un sistema operativo invitado único. Las máquinas virtuales con diferentes sistemas operativos pueden ejecutarse en el mismo servidor físico: Una máquina virtual UNIX puede ubicarse junto a una máquina virtual Linux, y así sucesivamente.

Cada máquina virtual tiene sus propios archivos binarios, bibliotecas y aplicaciones a las que da servicio; y la máquina virtual puede tener muchos gigabytes de tamaño.

La virtualización de servidores brindó una variedad de beneficios, uno de los más importantes fue la capacidad de consolidar aplicaciones en un solo sistema. Atrás quedaron los días en que una sola aplicación se ejecutaba en un solo servidor.

La virtualización marcó el comienzo de los ahorros de costos a través de una huella reducida, un aprovisionamiento de servidores más rápido y una recuperación ante desastres mejorada (RD) porque el hardware del sitio de DR ya no tenía que reflejar el centro de datos principal.

Aprender Kubernetes con VMWare

El desarrollo también se benefició de esta consolidación física porque una mayor utilización en servidores más grandes y más rápidos liberó servidores no utilizados posteriormente para reutilizarlos para control de calidad, desarrollo o equipo de laboratorio. Pero este enfoque ha tenido sus inconvenientes.

Cada VM incluye una imagen de sistema operativo separada, lo que agrega sobrecarga en la memoria y el espacio de almacenamiento. Resulta que este problema agrega complejidad a todas las etapas del ciclo de vida de un desarrollo de software, desde el desarrollo y la prueba a la producción y la recuperación ante desastres.

Este enfoque también limita severamente la portabilidad de las aplicaciones entre nubes públicas, nubes privadas y centros de datos tradicionales.

¿Qué son los contenedores?

La virtualización del sistema operativo (SO) ha crecido en popularidad durante la última década para permitir que el software se ejecute de manera predecible y adecuada cuando se mueve de un entorno de servidor a otro. Pero los contenedores proporcionan una forma de ejecutar estos sistemas aislados en un solo servidor o sistema operativo host.

¿Qué son los contenedores?

Los contenedores se ubican sobre un servidor físico y su sistema operativo host, por ejemplo, Linux o Windows. Cada contenedor comparte el kernel del sistema operativo host y por lo general, también los archivos binarios y las bibliotecas.

Los componentes compartidos son de solo lectura. Por lo tanto, los contenedores son excepcionalmente “ligeros”: tienen un tamaño de solo megabytes y tardan solo unos segundos en iniciarse, en comparación con gigabytes y minutos para una máquina virtual.

Los contenedores también reducen los gastos generales de gestión. Debido a que comparten un sistema operativo común, solo un único sistema operativo necesita cuidado y alimentación para corregir errores, parches, etc. Este concepto es similar a lo que experimentamos con los hosts de hipervisor: Menos puntos de administración pero un dominio de falla ligeramente más alto. En resumen, los contenedores pesan menos y son más portátiles que las máquinas virtuales.

¿Preguntas y respuestas sobre Docker?

Conclusión Las máquinas virtuales y los contenedores difieren en varios aspectos, pero la principal diferencia es que los contenedores brindan una forma de virtualizar un sistema operativo para que varias cargas de trabajo puedan ejecutarse en una sola instancia de sistema operativo. Con las máquinas virtuales, el hardware se virtualiza para ejecutar múltiples instancias de SO.

La velocidad, la agilidad y la portabilidad de los contenedores los convierten en una herramienta más para ayudar a agilizar el desarrollo de software.

https://ciberninjas.com/entornos-nube/

Relacionados