Skip to content

Resumen del Workshop

Para aprovechar al máximo tu experiencia en este workshop, sentemos las bases para entender por qué Docker es líder en el espacio de la Contenedorización (Containerization). En esta sección discutiremos las diferencias entre máquinas virtuales y contenedores para proporcionar más contexto a este workshop.

¿Qué es un contenedor y cómo hace que la gestión y el despliegue de aplicaciones sean más eficientes?

Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias para que las aplicaciones puedan ejecutarse de forma rápida y confiable de un entorno informático a otro. Una imagen de contenedor es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución (runtime), herramientas del sistema, librerías del sistema y configuraciones. Esto permite que los desarrolladores sean más productivos porque, en lugar de tener que preocuparse por las diversas dependencias que sus colegas podrían estar usando para ejecutar su código, simplemente pueden empaquetar todo su código Y sus dependencias en un contenedor para tener todo lo necesario para mantenerse productivos.

¿Cuál es la diferencia entre una máquina virtual (VM) y un contenedor?

Los contenedores y las máquinas virtuales tienen beneficios similares de aislamiento y asignación de recursos, pero funcionan de manera diferente porque los contenedores virtualizan el sistema operativo en lugar del hardware. Los contenedores son más portátiles y eficientes por esta razón. Para entender mejor las diferencias entre contenedores y máquinas virtuales, veamos una comparación de ambos.

Máquinas Virtuales (VMs)

Contenedores

Las máquinas virtuales (VMs) son una abstracción del hardware físico, convirtiendo un servidor en muchos servidores. El hipervisor permite que múltiples VMs se ejecuten en una sola máquina. Cada VM incluye una copia completa de un sistema operativo, la aplicación, los binarios y librerías necesarios, ocupando decenas de GBs. Las VMs también pueden ser lentas para arrancar. El diagrama a continuación ofrece una representación visual de cómo se vería la ejecución de una máquina virtual.

VMs

Contenedores

Los contenedores son una abstracción en la capa de la aplicación que empaqueta el código y las dependencias juntos. Múltiples contenedores pueden ejecutarse en la misma máquina y compartir el kernel del sistema operativo con otros contenedores, cada uno ejecutándose como procesos aislados en el espacio de usuario. Los contenedores ocupan menos espacio que las VMs (las imágenes de contenedor suelen tener un tamaño de decenas de MBs), pueden manejar más aplicaciones y requieren menos VMs y sistemas operativos.

Containers

Resumen

La conclusión principal aquí es que al abstraer el trabajo pesado de las dependencias de la aplicación y el hardware para que seas efectivo como desarrollador, obtenés los siguientes beneficios:

  1. Eficiencia mejorada
  2. Mayor productividad
  3. Transacciones simplificadas
  4. Costos reducidos
  5. Mayor agilidad

La pregunta tampoco debería ser si deberías usar contenedores o máquinas virtuales, sino más bien cómo puedes utilizar ambos para proporcionar más flexibilidad en el despliegue y la gestión de tus aplicaciones. El objetivo principal debe ser aumentar la agilidad para tus equipos de desarrollo y, hablando de forma realista, las organizaciones necesitan entender cómo utilizar ambos para lograr estos objetivos.

En la siguiente sección, nos sumergiremos en la arquitectura de Docker y hablaremos sobre los diversos componentes que han hecho de Docker la solución más popular para construir, gestionar y desplegar aplicaciones contenedorizadas.

Released under the GPL-3.0 License.