Ya faltan sólo unas horas para que dé comienzo el curso de Docker , y supongo que ya estaréis inscritos y con las utilidades instaladas como os mostré en una publicación anterior .

Para aquellos que todavía están en duda, hablaré hoy del porqué y cómo grandes empresas se han decidido por la tecnología de Docker y no otra.

Y cuando hablamos de grandes empresas nos referimos a compañías cómo Spotify, ING Direct, Uber, eBay o PayPal son, entre otras muchas empresas ejemplos de una correcta implementación de Docker en sus modelos empresariales, ahorrando tiempo y equipamiento a la empresa, que se traduce inmediatamente en una menor inversión y por ende mayor beneficio.

Comenzando por eBay, ésta ha centrado sus esfuerzos en la implementación de Docker en su proceso de integración continuada, estandarizando sus instalaciones mediante despliegues en una red distribuida de servidores que se ejecutan y trabajan en grupo.

Básicamente lo que hacen es aislar las dependencias o librerías que requieran las aplicaciones así como éstas mismas, en contenedores, de forma que en cada servidor trabaje una versión de software distinta, pudiendo así solventar cualquier incidencia rescatando una versión anterior a la modificación que ha llevado al error, aislando el tener que estar pendientes de que todo el hardware y software base sea el mismo en cada servidor (que no lo es, para dar versatilidad a futuros cambios de equipamiento).

Éste es el objetivo final, que el sistema operativo final no tenga por obligación que ser el mismo que el sistema que mueve los contenedores, creando una red propia de servidores que conviven cada uno con su sistema operativo y hardware particular.

Además los desarrolladores o testers sólo tienen que montar el contenedor sobre sus sistemas para poder ponerse a trabajar, con toda la configuración, herramientas o servicios precargados, lo que agiliza enormemente los tiempos de desarrollo o testeo de versiones.

En el caso de Spotify, buscaban un método de despliegue que fuese rápido, sencillo y con cierta tolerancia a fallos. En la Dockercon de 2014 presentaron una diapositiva en la que comparaban su anterior método de trabajo, basado en máquinas Debian por lo que debían generar y configurar sus paquetes en esta base; adquisición de un hardware mínimo que soportase la virtualización, y el uso de Puppy combinado con su propia herramienta de despliegue de servicios “deployify”.

Una vez montada toda la infraestructura, los administradores realizaban conexiones SSH a cada nodo o máquina virtual para tener las dependencias y sistemas al día en cuestiones de seguridad ; o usaban su aplicación deployify para, en parte, automatizar esta tarea, que igualmente se tenía que llevar a cabo. Con esto podían sacar mayor partido al hardware que tenían, pero el resultado no era lo ágil que se esperaba, además de fallar a menudo ya fuese parcial o totalmente.

Los chicos de Spotify vieron en Docker la respuesta a sus muchísimas preguntas de cómo poder obtener mayor rendimiento invirtiendo menos horas de supervisión y desarrollo. Creando una imagen que contenga el sistema, las configuraciones y servicios listos para ser desplegados; se ahorraron multitud de horas de gestión de sistemas, reparación, recuperación y reinstalación de éstos.

Gracias a los contenedores las pruebas se realizan en entornos “cerrados” por lo que si se diese algún error la mayor complicación que se encontrarán será la de volver a desplegar el contenedor de nuevo . Los equipos, al tratarse de una virtualización mínima (sin sistema operativo de por medio para el contenedor) responden muchísimo mejor, de una forma más ágil y soportando mayores cargas de trabajo, rentabilizando mucho más esa inversión.

Las pruebas no sólo acaban en fallos, en caso de implementar mejoras sobre un contenedor, no tendrían más que difundir dicho contenedor hasta ponerlo en producción, sin necesidad de parar el servicio para reinstalar sistemas, reconfiguraciones, etc…

Otra ventaja de Docker, es que no encontramos sistemas con dependencias preinstaladas (a no ser que se las hayamos pasado nosotros mismos) por lo que encontrar un contenedor que haga “cosas raras” es prácticamente imposible, con lo que sólo tenemos que preocuparnos de que funcionen “pull” y “run”, y en caso de recibir algún error (que los habrá, nada es 100% fiable), sólo tendríamos que volver a montar la imagen en el contenedor.

Netflix, la recién aterrizada en España plataforma de contenido multimedia a la carta, comenzó en 2014 el desarrollo de su aplicación para integrar contenido en diferentes nubes de forma simultánea , facilitando así un acceso más veloz a sus recursos, accedamos al servidor de Netflix que accedamos. Hace aproximadamente tres semanas, presentaron Spinnaker, un proyecto que lo que inicialmente tenían pensado desarrollar en solitario, ha requerido de la colaboración de grandes como Google, Microsoft o Pivotal, para ofrecer una plataforma de “entrega continua”.

Estamos ante una plataforma de entrega continua de contenido, multinube y de código abierto, con la que se podrá implementar cambios de software a alta velocidad. ¿Dónde entra Docker en esta ecuación? Muy fácil, los propios desarrolladores de esta plataforma, nos recomiendan crear una imagen en la que integrar su proyecto para poder desplegarlo en los diferentes servicios que ofrecen compatibilidad (AWS, Google Compute…).

Y estos son sólo algunos ejemplos de grandes compañías que comenzaron hace un par de años a implementar Docker en algunos de sus servicios , y hoy día tienen infraestructuras completas a base de contenedores.