
En el desarrollo de software tradicional, es habitual encontrar pedazos de código que, al iniciarse en un entorno de computación distinto al original, muestran bugs y errores. Para resolver este error, los programadores suelen ejecutar dichos programas en los así llamados “conenedores”. Estos contenedores se ubican generalmente en la nube.
¿Cómo funciona un contenedor?
Con la contenedorización realizamos un ejercicio sencillo. En primer lugar agrupamos un aplicación y todos sus archivos, dependencias y bibliotecas asociadas. Es decir, todo lo necesario para que se ejcute de manera eficiente y sin errores en entornos informáticos diversos.
Ese es el punto principal, que pueda ejecutarse un programa en diferentes entornos sin bugs / problemas.
Por lo general, se suelen comparar los contenedores con las máquinas virtuales. Su relación es clara: ambos ejecutan software en entornos contenidos. Es decir, las aplicaciones se ejecutan en un entorno de ejecución de contenedores que, a efectos prácticos, vendría a ser como un sistema operativo anfitrión.
Así, los contenedores comparten un sistema operativo común y cada contenedor ejecuta procesos aislados.
Cuando se ejecuta un software en entornos de contenedores, por lo general se utiliza menos memoria y menos espacio (vs la ejecución en máquinas virtuales)
Docker y Kubernetes son los dos ecosistemas de contenedorización más populares.
Ventajas de la contenedorización
La contenedorización se aplicaciones supone un importante avance para las aplicaciones de software y microservicios, al permitir que cada contenedor funcione de forma aislada. Como esto ocurre así, se evitan interrelaciones e interdependecias y se aíslan los posibles puntos de fallo.
De esta manera, cada aplicación se comunica con el resto mediante una API.
Esto implica, por otro lado, una mayor eficiencia a la hora de distribuir la carga.
Contenedorización y seguridad
Aunque muchas son las ventajas de esta tecnología, hay que ir con cuidado con sus problemas de seguridad. Que esencialmente son dos.
En primer lugar, como todas las aplicaciones en contenedores comparten un mismo sistema operativo, las amenazas de seguridad que impliquen al propio sistema operativo pueden afectar a todo el sistema.
Por otro lado, los escáneres de seguridad convencionales en entornos de contenedores suelen estar configurados para proteger a los sistemas operativos, pero no a los propios contenedores. Por lo que podría producirse una segunda vulnerabilidad.
En la actualidad, gigantes como IBM y Google apuestan fuerte por la contenedorización. Son sus principales valedores y, de hecho, ellos mismos consideran que este sistema permite a los desarrolladores crear y desplegar aplicaciones de forma mucho más eficaz y segura que los métodos habituales.
La única objeción que presentan en la actualidad es su elevado coste. Pero, al tratarse de una tecnología innovadora la previsión es que dicho coste se reduzca con el paso del tiempo, y que en unos años acabe siendo norma para los desarrolladores de programas informáticos.