Qué son los contenedores, la tendencia en programación que está revolucionando a la industria

Alberto Iglesias Fraga
Contenedores en un puerto
  • Imaginen que podemos 'meter' una aplicación dentro de un gran cubo, que podamos moverlo libremente y securizarlo sin importar lo que albergue en su interior.
  • Con los contenedores, una aplicación y todas sus dependencias se almacenan dentro de este espacio, que opera como un proceso a vista del sistema operativo y del gestor de turno.
  • Según un reciente estudio, el 20% de los desarrolladores ya reconoce estar "extremadamente familiarizado" con contenedores y microservicios.

Aunque solo veamos la superficie del tejido digital -las interfaces a las que accedemos como usuarios-, por debajo existe un complejo entramado de programación que sorprendería hasta al más ducho en la materia. Hablamos de millones de líneas de código, escritas en diferentes lenguajes, con entornos de ejecución variados y alojadas en multitud de lugares distintos, desde la nube hasta centros de datos propios.

Una heterogeneidad que, en este caso, juega en contra de los informáticos a la hora de desarrollar nuevo software, hacerlo hablar con el ya existente, al migrar esas viejas aplicaciones a nuevos entornos o a la hora de mantener y securizar diferentes herramientas dentro de un mismo espacio.

Leer más: Así se enseña programación en los colegios españoles

Y es en esta tesitura donde surgen las máquinas virtuales primero y, posteriormente, las máquinas virtuales ligeras, también conocidas como contenedores. Gracias a esta tecnología, la aplicación y todas sus dependencias se almacenan dentro de este contenedor, que opera como un proceso a vista del sistema operativo y del gestor de turno. 

La diferencia con las máquinas virtuales

Aunque sean similares -y, de hecho, hasta algunos fabricantes usen ambos términos de manera indistinta-, lo cierto es que las máquinas virtuales de toda la vida y los contenedores no son exactamente lo mismo. Desgraciadamente, hemos de ponernos un poco técnicos llegados a este punto.

Así pues, mientras que las máquinas virtuales virtualizan -valga la redundancia- a nivel de hardware, exigiendo que cada aplicación corra con su propio sistema operativo por encima del hipervisor, los contenedores evitan este paso intermedio al virtualizar a nivel de SO. De este modo, los contenedores son más ágiles, flexibles (y ocupan menos) que las máquinas virtuales.

De hecho, el tema del espacio y el rendimiento es una diferencia clave entre las máquinas virtuales y los contenedores. Estos últimos requieren menos volumen para iniciarse (boot volume) y hasta 100 de ellos pueden alojarse en el mismo espacio que una sola máquina virtual. Además, al no requerir de tanta complejidad como las máquinas virtuales, pueden 'construirse' y 'eliminarse' mucho más rápido y de manera más sencilla.

Para qué sirven

Un joven frente a un monitor de ordenador.

La analogía con los contenedores que todos conocemos es sencilla. Imaginen que podemos 'meter' una aplicación dentro de uno de esos grandes cubos y que pueda ejecutarse en su interior sin problema alguno.

Luego, ese contenedor podremos colocarlo donde más nos plazca (facilitando migraciones entre diferentes plataformas cloud), aplicarle políticas de uso determinadas (como quién o qué puede relacionarse con ese contenedor) y protegerlo desde el exterior (securizar a nivel de contenedor en lugar de cada aplicación individual).

Todo eso es lo que podemos conseguir con los contenedores en el mundo digital, ya que las aplicaciones que albergan en su interior únicamente tienen visibilidad sobre el sistema de ficheros virtual del contenedor y solo usan indirectamente el kernel del sistema operativo principal para ejecutarse.

Hasta dónde llega su tirón

No hay duda de que los contenedores son una de las tendencias principales del mercado en estos momentos. Sin ir más lejos, un informe de la firma de análisis IDC de este mismo año señalaba que los desarrolladores están ejerciendo una influencia enorme en la era de los kubernetes, los contenedores y la nube. 

El estudio, basado en una encuesta a 2.500 desarrolladores de todo el mundo, detectó que el panorama contemporáneo de los lenguajes y marcos de desarrollo de software sigue siendo muy fragmentado, "lo que crea una serie de desafíos para los equipos de programadores, así como implicaciones potencialmente significativas para el soporte a largo plazo de aplicaciones construidas hoy". 

Un terreno de juego perfecto para los contenedores. No en vano, y siempre según este estudio, el 20% de los desarrolladores ya reconoce estar "extremadamente familiarizado" con contenedores y microservicios.

Conoce cómo trabajamos en Business Insider.