Hoy en día es imposible asistir a conferencias y no escuchar a los ponentes hablar sobre software de contenedores: Kubernetes , Mesos , Docker . Incluso gigantes como Google, Microsoft o Amazon se han unido a esta moda en el último año. Pero, ¿por qué ahora esta fiebre de los contenedores?

En este artículo vamos a intentar explicar por qué los contenedores son tan importantes a día de hoy. Pensemos en contenedores físicos como pueden ser los que transportan los barcos. Si estos no existieran y la mercancía tuviese que enviarse como antiguamente a granel, el transporte sería muy complicado. Imagínese pasar cualquier mercancía, una a una, desde un barco hasta un camión. El trabajo sería eterno. Sin embargo, los camiones cargan en los puertos los contenedores y estos son repartidos a su lugar de destino fácilmente. Además, es mucho más fácil saber qué cantidad de artículos caben en un contenedor y así evitar errores y pérdida de mercancía.

Lo que se esconde detrás del software de contenedores es prácticamente lo mismo. En vez de hacer un envío de un sistema operativo completo y su software, simplemente se hace un paquete de código con todas sus dependencias dentro de un contenedor que se puede ejecutar en cualquier lugar. Además, como por norma general los contenedores suelen ocupar muy poco espacio, es posible almacenar muchos paquetes de contenedores dentro de un solo ordenador.

¿Por qué son tan importantes?

Antes de la llegada de los contendores, se utilizaban las llamadas “máquinas virtuales”. Esta tecnología permitía que un servidor ejecutara muchas aplicaciones independientes unas de otras. Esta tecnología fue la encargada de hacer realidad la primera generación de aplicaciones en la nube. Si cada aplicación hubiera tenido que ser ejecutada por un servidor, el coste hubiera sido inasumible.

El funcionamiento de las máquinas virtuales consiste en empaquetar el sistema operativo y el código juntos. El sistema operativo cree que tiene un servidor exclusivo para su aplicación, pero en realidad este está siendo compartido por muchas otras máquinas virtuales. Sin embargo, el hecho de compartir servidor implica que los sistemas operativos tengan una ejecución más lenta.

¿Cómo funcionan los contenedores?

Los contenedores funcionan de forma muy diferente. Como los paquetes solo alojan la aplicación y las librerías, los frameworks, etc. de los que dependen, puede haber muchos contenedores que funcionan en un solo sistema operativo. Esto hace que los contenedores ocupen muy poco espacio y que la sobrecarga sea muy baja, por lo que los tiempos de ejecución son óptimos.

Los contenedores comenzaron siendo una característica central de Linux hace tiempo, pero eran muy difíciles de utilizar. Docker se puso entonces manos a la obra para intentar hacer más fácil el uso de esta tecnología para los desarrolladores. Los usuarios saben que con los contenedores su software se ejecutará, no les importa dónde. Además, permiten también los llamados “microservicios”. En vez de tener una gran aplicación en una sola pieza, esta se puede descomponer en pequeñas partes que se relacionan entre ellas. Esto significa que los diferentes grupos pueden trabajar fácilmente en distintas partes de una aplicación, siempre que no realicen cambios en la forma de actuar de la aplicación global. Así se consigue desarrollar el software y encontrar y solucionar los errores mucho más rápidamente.

Para gestionar todos los contenedores, se necesita el software especializado Kubernetes (desarrollado por Google originariamente) que ayuda a introducir los contenedores en diferentes máquinas, se asegura de que se ejecutan y permite hacer funcionar varios contenedores más con una aplicación específica cuando la demanda aumenta.

Imagen 0 en Kubernetes, Mesos, Docker... ¿Qué son los contenedores?


Los contenedores pueden ejecutar todo tipo de aplicaciones, pero muchas empresas no lo soportan porque siguen trabajando con máquinas virtuales. Las máquinas virtuales pueden seguir ejecutando esas aplicaciones antiguas en servicios en la nube como AWS o Microsoft Azure. Por eso, a pesar de las ventajas que ofrece trabajar con contenedores, las viejas máquinas virtuales coexistirán con estos durante bastante tiempo.