A tener en cuenta con Docker

De un tiempo a esta parte todo el mundo habla de Docker, containers y demás buzzwords. Es cierto que Docker ha sido un gran avance para los sistemas, desarrolladores y que aún tiene un largo camino por delante. Pero hay algunos malentendidos en torno a esta tecnología

En el blog ya hemos hablado de Docker, vimos como instalar Docker en Mac y algunos concepto clave sobre docker así que espero que al menos les hayas echado un vistazo a los post 🙂

Conceptos erróneos

Bajo mi punto de vista, estos son algunos de los conceptos que “chirrían” cuando escucho hablar de Docker

Si aprendo Docker no tendré que aprender nada más sobre sistemas

Esto podría ser cierto. Sin embargo no es cierto. Lo mejor es pensar que Docker es como una gran optimización. Añadir Docker en nuestro proceso significa añadir una capa más de complejidad y puede que esto no sea necesario para según que casos.

Manejar Docker en un entorno de producción con varias maquinas requiere: – Mantener las imágenes de Docker a salvo. – Hacer deploys en cada uno de los container sin que todo se venga abajo. – Hacer rollbacks en los container sin que esto cause un desastre. – Gestionar la rep para tener múltiples containers en múltiples maquinas – Manejar logs de forma optima – …

En compañías más o menos grandes, donde tenemos a una o varias personas para gestionar todo esto añadir Docker puede ser una gran ventaja, pero puede que el coste de mantener todo esto haga que nuestros desarrollos sean muchos más lentos y costosos.

¿Tiene sentido aprender Docker?, sí. ¿Puede ser beneficioso para un entorno de test? puede. ¿Es la solución a todos los problemas de sistemas? No. Hay que tener sentido común y ver si Docker puede ser una mejora o un lastre.

Si utilizo Docker no necesito herramienta de gestión de la configuración (Ansible, Chef, Puppet)

En cierto sentido es cierto. Podríamos no necesitar ninguna herramienta de gestión de la configuración y utilizar solo script en bash o hacerlo a mano. El problema es que a medida que crezcan el numero de contenedores el sistema se hará más difícil de llevar.

Existen herramientas como Ansible o Chef que se integran perfectamente con Docker, por lo que podemos utilizarlas para aprovisionar los containers y desplegar los cambios.

Debes usa Docker Ahora

En cierto sentido, esta tiene relación con las 2 anteriores. Si ya tienes:

  • – Securizado el acceso a las máquinas de producción
  • – Backups automáticas
  • – Sistemas de gestión de la configuración (Ansible, Chef,…)
  • – Deploys automáticos – Monitorización de todos los servicios críticos – Documentación de todo lo anterior

Entonces ponte con Docker porque es una buena optimización, si no has llegado a un nivel de madurez así, es mejor que inviertas algo de tiempo en todo lo anterior.

Usar Docker me dará velocidad para conseguir los objetivos de la lista anterior.

Usar Docker es una ventaja, pero no es la bala de plata. Antes de Docker hay una serie de mejoras que bajo mi punto de vista son mucho más importantes. – Deploys automáticos Desde un comando puedo desplegar en cualquier entorno – Gestión de la configuración Puedo tener el mismo entorno/configuración que en una maquina de producción con ejecutar un par de comandos – Test automáticos Mi codigo tiene la suficiente cobertura de test como para poder desplegar de manera automática

Conclusiones

Es cierto que Docker es un proyecto verdaderamente increíble y representa un gran paso para la administración de sistemas. Es muy potente y se le puede sacar mucho jugo. Mi enfoque aquí ha sido dar un poco de luz acerca de que hay muchas cosas que hacer antes de dar el paso hacia Docker.

Docker es una gran herramienta, pero su utilización conlleva una serie de responsabilidades que tenemos que afrontar. El hecho de tener Docker nos añade una capa de complejidad que supone un coste que debemos estar dispuestos a pagar.

Poco a poco cada vez hay más plataformas que intentar ir solucionando toda esta complejidad de Docker y que lo están haciendo muy bien.

¿Tu que opinas? ¿utilizas Docker en tu día a día? ¿crees que estos inconvenientes en realidad no son para tanto?

Anuncios

Un comentario en “A tener en cuenta con Docker

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s