Comparativa orquestadores: Mesos vs Kubernetes vs Swarm

ackstormBlogSwarm

Comparativa orquestadores: Mesos vs Kubernetes vs Swarm

¿Sencillez, Potencia o tecnología?

Mesos vs Kubernetes vs Swarm. En este artículo me hago eco del fantástico trabajo de un joven estudiante de ciencias de computación en Berlin, @ArmandGrillet. Ha hecho una comparativa real entre diferentes orquestadores de Docker, algo tremendamente necesario en este momento de explosión de la tecnología Docker. Y os invito a leer su trabajo.

En Ackstorm llevamos tiempo hablando de Docker y cómo esto nos ha dado nuevas posibilidades en el despliegue de aplicaciones. Pero cuando aumento complejidad añadiendo múltiples versiones y aplicaciones dockerizadas y debiendo gestionar en varios nodos aparece la necesidad de utilizar algo para poder poner orden en este “sidral” (en castellano, “jaleo”, en inglés “hell”).

Actualmente existen varias soluciones para orquestar Docker, dependiendo del proveedor de servicios cloud se recomiendan unos u otros, aunque pueden usarse cualquiera de los tres en cualquier proveedor de Cloud público. Voy a resumir mucho.

Docker Swarm, el sencillo

AWS apuesta abiertamente por Swarm, Swarm es el orquestador de contenedores de la propia Docker Inc. Se basa en dos sets, uno controlador y varios nodos de ejecución. Cada agente en los nodos pueden tener etiquetas (tag) asignadas al iniciar el demonio de Docker, estas etiquetas son pares clave/valor y se utilizan para filtrar en el clúster que ejecuta  un nuevo y los  Docker  a lanzar. Sencillo.

Swarm

Mesos con Marathon, la potencia

Apache Mesos y Maratón Mesosphere es una solución para clusterizar, desde Hadoop hasta Dockers. Mesos ha hecho su aparición en varios proveedores, si bien cuando en el 2015 saltó a la palestra lo hizo de la mano de clusters, es AWS, hoy por hoy hemos visto que Azure ha hecho un par de casos de éxito. Quizá porque Mesos es un gran devorador de recursos, es una solución amada de los proveedores Iaas.

Mesos tiene cuatro elementos principales. ZooKeeper ayuda a Marathon a buscar donde se ejecuta Mesos y es Marathon quién escala los contenedores. Mesos ejecuta los Dockers asignados en un nodo y comunica a Marathon cuándo tiene recursos disponibles  de CPU o memoria RAM. Potente.

Mesos

Kubenetes, tecnología Google

Kubernetes es de Google pero tiene de especial que en el grupo de participantes del proyecto  encontramos a Red Hat y Azure (sí, sí, Microsoft). Hay quien dice que es un proyecto donde Google libera parte de su “know how“ sobre contenedores, que es mucho.

Kubernetes utiliza los conceptos de  de “etiquetas/tags” y “pods”. Los pods son la principal diferencia de Kubernetes y permite desplegar Dockers en varios nodos y permiten crear servicios unificados. Este enfoque simplifica la gestión del clúster y facilita el escalado de muchos Dockers diferentes.

Kubernetes

Conclusiones, todo funciona en todos los proveedores.

Como colofón comparto con Armand las conclusiones.

Swarm tiene la configuración más sencilla pero  no proporciona funciones para manejar los fallos de los nodos por lo que es recomendable tener cuidado en un entorno de producción.

Es ligero y lo podemos encontrar en cualquier proveedor de la nube, es completamente de código abierto y tiene una comunidad fuerte, si bien (es mi opinión) los tres comparten estas características de comunidad fuerte y licencia libre.

El uso de Mesos con Marathon es una excelente combinación si ya se tiene un clúster de Mesos. La solución completa ofrecida por Mesosphere es también una forma simple y poderosa para tener un Orquestador en producción con alta capacidad de computación.

Kubernetes tiene una lógica que es diferente, y parte de su concepto de PODS y servicios para contenedores  y al mismo tiempo pensando en combinaciones con los demás (buscad en Internet: Mesos con Kubernetes… pueden funcionar juntos). El hecho es que Google utiliza esta solución y proporciona formas fáciles de usar Kubernetes en su Cloud.  Esto hace que sea una elección lógica para los desarrolladores que ya utilizan el ecosistema de Google o los que tengan un sistema complejo con varios tipos de Dockers.