Llegamos a ustedes gracias a:



Reportajes y análisis

Conténgase a sí mismo: La guía laica de Docker

No se preocupe, este artículo es auto regulado.

Docker

[12/02/2015] Bienvenido a la era de la contenerización, donde un ecosistema dirigido por el emprendimiento Docker, está liderando las organizaciones de TI con picos inefables de la eficiencia, ayudándoles a escalar sus cargas de trabajo cada vez más altas, y probablemente horneándoles una deliciosa tarta de arranque. Microsoft, Google y Amazon Web Services están abocadas a hacer que los clientes potenciales sepan que sus nubes son el lugar adecuado si quiere disfrutar al máximo de Docker.

Eso está muy bien y todo, pero ¿qué es realmente Docker, y por qué de repente está de moda? Sin perderse en la maleza, y sin romper los esquemas, vamos a echar un vistazo.

La gran idea detrás de Docker, que llegó a una versión estable 1.0 durante el invierno, no es nada nueva. Docker es esencialmente una implementación de código abierto de los envases ligeros Linux, con algo de su salsa secreta en la parte superior (y la estandarización en el proceso). La compañía vende servicios en la parte superior de estos contenedores, en una especie de modelo de Red Hat.

Los contenedores de Linux han sido parte del núcleo desde el año 2008, y permiten -según la entrada de Wikipedia- "la virtualización a nivel de sistema operativo a través de un entorno virtual que tiene su propio proceso y espacio en la red, en lugar de crear una máquina virtual de pleno derecho".

Si es un gran cliente de nube pública, probablemente verá por qué esto es una gran cosa. Las máquinas virtuales son la piedra angular de la computación en la nube, donde abstraemos el hardware y nos centramos en el funcionamiento de la mayor cantidad de sistemas operativos invitados que pueda soportar la infraestructura. Esa es una manera fácil (y súper simplificada) de decir de que usted hace que un servidor piense que es cinco o 10 o 100 máquinas virtuales, todas corriendo Ubuntu o Windows Server o lo que sea, y que se repiten a través de toda la comunidad de servidores.

En la escala de su centro de datos promedio, los aumentos en la velocidad, la resistencia y la utilización de recursos son significativos. En la escala de los servicios web de Google o de Amazon, es lo que hace que los servicios web modernos sean posibles.

Pero hay un problema aquí: Las máquinas virtuales son bestias difíciles. Porque se basan en la capa del sistema operativo para ejecutar aplicaciones, las pequeñas diferencias entre entornos pueden añadir hasta una gran complejidad al intentar mover cargas de trabajo entre su rack de servidores y la nube. O de la nube a su rack de servidores. O de una nube a otra. La gestión de la configuración puede ser una pesadilla. Y eso aparte de que solo el hecho de ejecutar el sistema operativo puede comer una gran cantidad de ciclos de CPU.

Así que volvamos a Docker, que consiguió su famoso nombre por los contenedores de transporte que se pueden ver en cualquier buque de carga en cualquier puerto. Los envíos internacionales a través del agua fueron una proposición insostenible a gran escala desde hace mucho tiempo, señala el discurso del CEO de Docker, Salomón Hykes, hasta la invención de la caja de transporte estándar. Antes de los contenedores, un barco tenía que dar cuenta de cientos o miles de diferentes mercancías a bordo, todas de diferentes formas y tamaños; con los envases, las empresas de transporte pueden apilar muchas de las cajas de colores una encima de la otra sin la menor preocupación de lo que hay dentro de ellas.

Así que extienda esa metáfora a la nube. Al empaquetar una aplicación y todas sus dependencias, de tal manera que no se requiere una máquina virtual en toda regla para que funcione, puede empujar tanto como usted desee a un solo host de sistema operativo Linux. Así que si está ejecutando Ubuntu en la PC de su casa, y empaqueta sus aplicaciones (servidores web y bases de datos) en un recipiente Docker, van a funcionar igual de bien en cualquier otra distro moderna de Linux, no importa si se está ejecutando en una nube privada, un servidor estándar o Amazon Web Services.

La ventaja, además de la portabilidad, es que ya no necesita una máquina virtual para cada aplicación. Eso significa que se libera más poder de procesamiento en los contenedores Docker o cualquier otra aplicación que desee ejecutar. A saber: Usted puede hacer mucho más con mucho menos.

Entienda, sin embargo, que los contenedores son bastante tontos por su cuenta, a falta de las funciones de reproducción y programación, o una manera robusta para manejar paquetes e instalar servicios.

Aquí es donde entra ese ecosistema floreciente. Startups, como CoreOS, proporcionan una versión muy simplificada del kernel Unix para empaquetar con esas aplicaciones, proporcionando servicios de mayor nivel sin chocar con el rendimiento. Mientras tanto, Google -un viejo consumidor de contenedores Linux- liberó Kubernetes, una herramienta de gestión y orquestación de Docker, para la comunidad de código abierto.

Esto realmente solo toca algo de lo que está sucediendo en el mercado, pero tiene a muchas personas emocionadas. Es por eso que el mercado está reaccionando de manera rápida y tantos proveedores de la nube se abocan a expresar su apoyo.

Pero Docker no es para todas las aplicaciones -algunas tienen demasiadas dependencias o demasiadas complejidades que deben ser cuidadosamente embaladas- especialmente las aplicaciones de legado. Las aplicaciones nuevas, diseñadas para ejecutarse a escala web, tienden a obtener mejores resultados: WordPress, MySQL, Redis, y Nginx se encuentran entre las imágenes más populares en el centro de repositorio central.

Es por eso que empresas como VMware y Microsoft optan por trabajar con Docker en lugar de aplastarla, a pesar de la amenaza aparente que supone para sus lucrativos negocios de máquina virtual del hipervisor: Muchos departamentos de TI están teniendo éxito en el recorte de su huella con Docker, pero todavía dependen de las máquinas virtuales para muchas aplicaciones.

Dado que los envases de Linux han existido por algún tiempo, Docker no está solo en la ciudad, es solo el más popular. Joyent y Canonical recientemente abrieron sus propios giros en el concepto de la contenerización, con lo que pusieron algo de presión en la competencia.

Así que sí, los contenedores están aquí para quedarse.

Matt Weinberger, Computerworld (EE.UU.)