¿A qué nos referimos cuando hablamos de un Contenedor? ¿Por qué tanta popularidad? ¡Lee esta nota para enterarte!
Por Gino Luciano Rojo para EducaciónIT.
¡Hola! Espero que a estas alturas esta entrada los encuentre con mucha avidez de respuestas, y sobre todo, de más consultas. Nuestra propuesta es: ¿A que nos referimos cuando hablamos de un Contenedor? ¿Por qué tanta popularidad?
Comencemos por el principio. ¿Qué es y para que sirve un contenedor?
Gino Luciano Rojo
El estándar de la industria actual es utilizar máquinas virtuales (VM) para ejecutar aplicaciones de software. Las máquinas virtuales ejecutan aplicaciones dentro de un sistema operativo invitado, que se ejecuta en hardware virtual impulsado por el sistema operativo host del servidor.
Las máquinas virtuales son excelentes para proporcionar un aislamiento completo del proceso para las aplicaciones: hay muy pocas formas en que un problema en el sistema operativo host pueda afectar el software que se ejecuta en el sistema operativo invitado, y viceversa.
Pero este aislamiento tiene un gran costo: la sobrecarga computacional que se gasta en virtualizar el hardware para que lo use un sistema operativo invitado es sustancial.
Los contenedores adoptan un enfoque diferente: al aprovechar la mecánica de bajo nivel del sistema operativo host, los contenedores proporcionan la mayor parte del aislamiento de las máquinas virtuales a una fracción de la potencia informática.
Los contenedores ofrecen un mecanismo de empaquetado lógico en el que las aplicaciones se pueden abstraer del entorno en el que realmente se ejecutan.
Este desacoplamiento permite que las aplicaciones basadas en contenedores se implementen de manera fácil y coherente, independientemente de si el entorno de destino es un centro de datos privado, la nube pública o incluso la computadora portátil personal de un desarrollador.
Esto brinda a los desarrolladores la capacidad de crear entornos predecibles que están aislados del resto de las aplicaciones y se pueden ejecutar en cualquier lugar.
Desde el punto de vista de las operaciones, además de la portabilidad, los contenedores también brindan un control más granular sobre los recursos, lo que brinda a su infraestructura una eficiencia mejorada que puede resultar en una mejor utilización de sus recursos informáticos.
Los contenedores de aplicaciones “empaquetan” los recursos necesarios para el funcionamiento de una aplicación para facilitar su uso a administradores y desarrolladores, simplificando tanto la instalación como la puesta en marcha de programas muy complejos.
Sin embargo, las mayores ventajas radican, sobre todo, en la gestión y en la automatización de software basado en contenedores.
Esto posibilita, por ejemplo, iniciar instancias nuevas de forma automática en momentos puntuales de sobrecarga. Google ofrece Kubernetes, un software a la imagen de Docker para la orquestación de grandes clústers de contenedores.
Y entonces...Docker, ¿qué es ?
Un proyecto de código abierto que automatiza la implementación de aplicaciones de software dentro de contenedores al proporcionar una capa adicional de abstracción y automatización de la virtualización a nivel de sistema operativo en Linux.
¡Bang! Este concepto no nos ayuda mucho. En palabras más simples, Docker es una herramienta que permite a los desarrolladores, administradores de sistemas, etc., implementar fácilmente sus aplicaciones en una caja de arena, sandbox, (lo que llamamos contenedores) para que se ejecuten en el sistema operativo host, es decir, Linux.
El beneficio clave de Docker es que permite a los usuarios empaquetar una aplicación con todas sus dependencias en una unidad estandarizada para el desarrollo de software.
A diferencia de las máquinas virtuales, los contenedores no tienen una gran sobrecarga y, por lo tanto, permiten un uso más eficiente del sistema y los recursos subyacentes.
Por lo tanto, los contenedores son una forma de empaquetado, de virtualización, pero no la tradicional, sino una que consume.
Sin embargo, la única forma de aprender contenedores, es aplicándose a ellos de manera practica, por lo tanto, los espero en otra serie de entradas sobre contenedores y Docker, ¡y en nuestros cursos sobre Docker, DevOps y Cloud!
¡Hasta la próxima entrega!
Sinceramente,
Gino