Docker Swarm. ¡Conócelo un poco mejor!

Docker está desarrollando un nuevo protocolo que -lógicamente- están denominando “Docker Swarm” (que se traduce a “Enjambre Docker”). Según la nueva sección de documentación que Docker ha publicado específicamente para este add-on, Swarm es literalmente: “Un protocolo de aglomeración nativo a Docker. Convierte un grupo de hosts Docker en un solo host virtual de Docker. Por el hecho de que Docker Swarm sirve al API estándar de Docker, cualquier herramienta que ya se comunique con el daemon de Docker puede usar Swarm para distribuirse de forma transparente y proporcional entre varios hosts”. Esto realmente suena muy bien y promete ser una herramienta muy poderosa para seguir exprimiendo el potencial que Docker ofrece.

Para poder crear estas aglomeraciones o “clusters”, Docker ofrece varias propuestas de implementación de Swarm, aunque la más segura de todas es crear los clusters desde una ‘Máquina Docker’ que crea una imagen oficial construida por Docker y actualizada automáticamente a través de una arquitectura propia. Puedes incluso ejecutar clusters de Swarm a través de los contenedores estándar de Docker, o incluso, si tienes mayor pericia, puedes crearlos manualmente o en binario.

Para instalar Swarm también hay una variedad de opciones, ya que Swarm debe estar presente en la red para transformar esos múltiples hosts en ese único y preciado host virtual que ahora podemos obtener. Lo más fácil para esto, otra vez, es instalar Swarm directamente sobre una Máquina Docker. Por otro lado, puedes hacerlo de forma manual e instalar Swarm directamente en tu red, usando un cliente de Docker para ejecutar Docker Swarm en todos tus nodos de red independientemente.

Este último método requiere un poco más de esfuerzo y trabajo porque se deben seguir unos pasos:

  1. Abrir un puerto TCP por cada nodo para mantener la comunicación con el gestor de Swarm (el cual explicaremos brevemente a continuación).
  2. Instalar Docker sobre cada nodo.
  3. Crear y gestionar certificados TLS para agregar seguridad al entorno Swarm que se está creando.

Swarm promete ser bastante flexible también, permitiendo que cualquier herramienta que ya se comunique con el daemon de Docker normalmente se distribuya en múltiples hosts. Todo esto se acompaña de la posibilidad de cambiar los ‘backends’ en el Swarm por despliegues de producción a gran escala, que requieren backends más poderosos que el backend de programación horaria que viene por defecto con Swarm.

Ya que Swarm es tan poderoso, también incluye un sistema de gestión muy completo que depende de un gestor principal y sus réplicas. Esto tiene un lado positivo, que es que el sistema de gestión es responsable del cluster entero, además de gestionar los recursos a escala de hosts con múltiples despliegues Docker. Por lo contrario, si se llegara a “morir” uno de los gestores o sus réplicas, se deberá crear uno nuevo manualmente y quizás sufrir una interrupción de servicio (que quizás afecte a los clientes).

La cuestión real es que, con esta nueva y poderosísima herramienta ya disponible, junto con Docker Cloud (con lo que Docker está rápidamente entrando en el terreno de SaaS) podremos obtener nuevos niveles de rendimiento de lo que es ya software muy potente. No estamos muy seguros sobre esto pero, con la capacidad de proveer a los clusters desde una Máquina Docker o manualmente, no descartaríamos la posibilidad de que Docker mismo esté usando Swarm para proveer ese nuevo servicio de cloud que estamos viendo aparecer (se anunció el martes 1 de marzo como fecha de estreno de Docker Cloud).

Entonces, a estas alturas del artículo ya te estarás preguntando: “Sí, todo muy interesante, pero, ¿qué tiene que ver con Pandora FMS?“. Bueno, vamos a intentar responder a esa pregunta justo debajo.

Con Pandora FMS puedes no solo monitorear u obtener informes de disponibilidad de todo tu entorno de software (el cual puede perfectamente ser tu negocio), si no también proveer y poner a escala tu infraestructura “dockerizada” de forma inteligente y eficiente.

¿Habéis probado Docker Swarm? ¿Qué os parece?

Shares