Los contenedores de software son un paquete de elementos que permiten ejecutar una aplicación determinada en cualquier sistema operativo.
Uno de los términos que vienen sonando dentro del mundo de la tecnología y el desarrollo de aplicaciones en los últimos años es el de los contenedores de software. Se utilizan para garantizar que una determinada aplicación se ejecute correctamente cuando cambie su entorno, sin dar fallos de ningún tipo. En cierto modo se asemeja a la tecnología de virtualización, aunque se puede decir que funcionan en un plano menor.
El uso de los contenedores de software ha proliferado en los últimos años porque resultan útiles y ágiles para migrar cualquier desarrollo de una plataforma a otra. Si desarrollas un software y quieres pasarlo de un servidor instalado en un centro de datos a una máquina virtual que funciona en una nube pública, tal vez el código no termine de funcionar del todo bien en su nuevo entorno. Lo mismo ocurre si migras una aplicación del sistema operativo Debian a producción, en el sistema de Red Hat.
Si ese software desarrollado lo metes en un contenedor lo puedes llevar al sistema que más te convenga. Las diferencias que tienen los sistemas operativos y que hacen que la aplicación no funcione del todo bien al cambiar de entorno desaparecen. El contenedor actúa como una funda para el software que lo habilita para funcionar dentro del nuevo entorno. Solo hay que empaquetar el código y las herramientas que lo acompañen dentro de un contenedor.
Las diferencias con la virtualización
El funcionamiento de los contenedores recuerda al de la tecnología de virtualización, que lleva tiempo jugando un papel importante en la industria IT. Sin embargo, esta última consiste en abstraer recursos –que pueden ser de hardware, como un servidor, o de software, como un sistema operativo– y simular su funcionamiento mediante software. Pero el paquete que se ofrece es de mayor envergadura. Una máquina virtual que se instala en un servidor, donde puede haber varias de ellas, incluye un sistema operativo así como el software que se quiera importar.
El contenedor no necesita un sistema operativo concreto, con lo que solo hay que llevar el software que se quiere importar dentro de un contenedor. En la práctica esto quiere decir que hacer funcionar un desarrollo en un contenedor consume menos recursos que una máquina virtual. Por otra parte, un contenedor tiene un tamaño menor que una máquina virtual. Todo ello hace que los procesos se inicien más rápido.
Pese a todo, los contenedores no son hoy por hoy alternativas a las máquinas virtuales, tanto por motivos de seguridad como por compatibilidad con todo tipo de aplicaciones, incluidas las más antiguas pero que siguen en uso.
Imágenes: Andrew.T@NN y BobMical