Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad

Probablemente ya hemos escuchado suficiente sobre cómo Kubernetes es Linux para la nube, con la tasa de adopción más rápida de la historia, etc. Pero Kubernetes no es de ninguna manera la única opción de orquestación que existe, y hay una buena cantidad de alternativas de Kubernetes. Kubernetes, Docker Swarm, Mesos, Nomad (y muchos más) entran en la categoría de Herramientas de gestión de infraestructura para DevOps conocido como Motores de consolidación de contenedores (COE). La concurrencia para estos nos da una capa muy necesaria de abstracción por Contenedores de aplicaciones que sirven para proteger nuestros recursos y las reservas de recursos reales.

trabajar con Contenedores en la nube Se trata de asignar los recursos de manera efectiva. Las cosas se complican cuando usa varias nubes junto con un centro de datos local e implementa una variedad de aplicaciones en ellas. Especialmente porque estas aplicaciones pueden ser algo tan simple como una pequeña base de datos relacional o algo más avanzado como un servicio de transmisión de video en vivo.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Conceptos básicos de sincronización

Si bien todas las alternativas de Kubernetes pueden diferir en la facilidad o dificultad de uso y el tipo de funciones que admiten, hay algunos conceptos básicos que parecen cubrir bien. Un buen ejemplo de esto es el descubrimiento de servicios, que se utiliza para determinar dónde se encuentran varios servicios en una red en una arquitectura informática distribuida. Otro buen ejemplo son las solicitudes de equilibrio de carga, ya sea generadas internamente en un clúster o externamente desde clientes externos.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Estas son solo algunas de las tareas básicas que realiza un motor de orquestación de alto nivel, y la lista es interminable con cosas como la programación de contenedores, controles de estado y administración de almacenamiento. Sería una buena idea señalar ahora que estos están evolucionando tan rápido que lo que sabemos sobre ellos hoy puede estar desactualizado dentro de unos meses. Además, cada mes hay nuevas actualizaciones importantes de Kubernetes, Mesos y Swarm y no son las únicas.

Las características de diseño tradicionales lo obligan a enviar actualizaciones como compilaciones completas. Puede llevar horas instalar la actualización y eso significa mucho tiempo de inactividad para los usuarios. Los microservicios de contenedores son una forma fácil de resolver este problema. Los contenedores son esencialmente procesos autónomos y todas sus dependencias se agrupan para ejecutarse. Todo lo que necesita un proceso de contenedor es ejecutarlo en ese contenedor, lo que lo hace muy portátil.

¿Cómo funcionan los contenedores?

Aquí está la medida fácil. Piense en su aplicación en la nube como microservicios de barcos y contenedores como múltiples partes de un mamparo hermético. Si solo hay una cabina, su barco se hundirá si se inunda. Pero si tiene varios compartimentos, su barco estará bien, incluso si uno de los compartimentos está inundado. Las aplicaciones creadas con la arquitectura de microservicios pueden contener docenas o incluso cientos de microservicios en contenedores que funcionan juntos. Los microservicios pueden proporcionar una funcionalidad única (por ejemplo, solo la parte de mensajería de una plataforma de redes sociales). También obtiene múltiples microservicios que realizan funciones repetitivas en múltiples servidores para equilibrar la carga.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

En lugar de tener un servidor de mensajería todo el tiempo (mascando su billetera), puede ejecutar su servicio de micromensajería en múltiples servidores. Pueden aumentar o disminuir el uso de su servidor según la demanda de ese servicio en particular. Por lo tanto, tendrá menos uso por la noche, abordará la menor demanda y ahorrará dinero. Pero podrá aumentar el uso durante las horas pico.

Cómo ayudan los contenedores

Los contenedores también pueden ayudar a reducir significativamente el tiempo de inactividad. Si su aplicación consta de varios contenedores y hay un error con un servicio en particular, todo lo demás seguirá funcionando mientras se soluciona. Además, cuando accede a las actualizaciones adicionales, no tiene que detener los servidores por completo. Solo tienes que actualizar los servicios individuales. Es posible que los usuarios ni siquiera noten un bloqueo.

¿Qué es Kubernetes?

Aquí hay una buena analogía. ¿Qué es Kubernetes?. Pero en la práctica, administrar y controlar (coordinar) aplicaciones creadas con microservicios puede ser muy difícil. Necesitará un sistema que supervise y modifique los servicios críticos en cientos o miles de servidores. Afortunadamente, Google ha desarrollado una poderosa herramienta con la creación de Kubernetes. La palabra "Kubernetes" significa gobernante en griego, y eso es básicamente lo que es. Es una plataforma que te ayuda a monitorear y controlar aplicaciones basadas en microservicios.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Kubernetes no está exento de inconvenientes. Tiene una curva de aprendizaje empinada, aunque sería muy difícil construir su propia concurrencia. Al pasar al modelo de microservicio, también existe la necesidad de que los desarrolladores cambien la forma en que ven el código. Ellos mismos deben tener una buena idea de cómo escalarlo y cómo se implementará, en lugar de dejarlo en manos de las operaciones. Hemos elaborado una lista seleccionada de alternativas de Kubernetes aquí si una solución basada en Google no es la adecuada para usted. Sigue leyendo para saber más.

Alternativas a Kubernetes

1. Enjambre Docker

para quien: Usuarios que desean una alternativa fácil de configurar a Kubernetes

Docker (todo el proyecto, no solo Swarm) fue pionero en la idea de los microservicios en contenedores en 2013. Docker Swarm es la plataforma de orquestación de Docker. Tiene muchas ventajas sobre Kubernetes. Para empezar, aunque es menos versátil que Kubernetes, es mucho más fácil de usar y de instalar que Kubernetes. Docker Swarm usa una CLI con semántica similar a GIT.

Este conocimiento significa que los desarrolladores pueden integrar fácilmente Swarm en su flujo de trabajo existente. En segundo lugar, establecer la base para escalar los servicios de forma manual, en comparación con el uso de la función kubectl en Kubernetes. Docker también gana en términos de soporte. El propio Docker proporciona soporte empresarial oficial para los clientes de Docker Enterprise Edition (que incluye Swarm). Google no proporciona soporte para Kubernetes. Sin embargo, Kubernetes es una plataforma de código abierto, por lo que existen otros proveedores. Proporciona soporte para sus propias versiones.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Docker Swarm también tiene inconvenientes. La grabación y el seguimiento son una gran debilidad. Si bien Kubernetes tiene herramientas de monitoreo integradas, Docker Swarm requiere que use herramientas de terceros como Sumo Logic y Retrace. Además, la comunidad de Docker Swarm es mucho más pequeña que la comunidad de Kubernetes.

Positivos:

  1. Más fácil de instalar y configurar que Kubernetes
  2. Soporte oficial de la edición Enterprise

Negativos:

  1. Funciones limitadas de monitoreo y grabación
  2. Una comunidad más pequeña de Kubernetes

تحميل Enjambre Docker

2. CC/SO

para quien: Usuarios que desean conocer la carga de trabajo en contenedores o no en contenedores en una plataforma distribuida

DC/OS es un acrónimo de Sistema Operativo del Centro de Datos. Se ejecuta a un nivel de abstracción más alto que Kubernetes. Kubernetes solo formatea microservicios en contenedores. Todavía está tratando con múltiples servidores distintos y múltiples grupos de recursos. Sin embargo, DC/OS elimina los recursos del propio hardware. DC/OS puede presentar todo el centro de datos como un conjunto gigante de recursos: petabytes de almacenamiento, terabytes de RAM y miles de núcleos de CPU.

Los desarrolladores pueden codificarlo como si estuvieran trabajando con un sistema gigante y la magia de DC/OS distribuye de manera inteligente la carga entre todos sus servidores. Esto significa que un DC/OS también se puede usar para distribuir el trabajo de las cargas de trabajo a los que no son contenedores. Sin embargo, DC/OS tiene inconvenientes notables.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Aunque DC/OS es de código abierto, existe una versión empresarial que tiene varias características clave que están bloqueadas detrás de un firewall de suscripción. Tendrá que pagar por algunas de las funciones compatibles con Kubernetes.

Positivos:

  1. Le permite saber la carga de trabajo en contenedores o no en contenedores
  2. Se presenta como un grupo de recursos unificado, lo que reduce la complejidad para los desarrolladores.

Negativos:

  1. Las funciones premium están bloqueadas detrás de un muro de pago

تحميل CC/SO

3. nómada

para quien: Usuarios que desean un servicio de sincronización limitado pero enfocado

Uno de los principales inconvenientes de los grandes jugadores de concurrencia como Kubernetes y Docker Swarm es que son muy complejos. Se han diseñado teniendo en cuenta a gigantes como Spotify, que atienden a cientos de millones de usuarios a diario. Si su aplicación necesita escalar en miles de servidores y proporcionar docenas de servicios a millones de personas, necesita ese nivel de complejidad. Pero si eres un jugador pequeño o mediano, tus requisitos de formato serán mucho más sencillos.

Nomad hace muy poco por sí mismo. Solo permite gestionar grupos de contenedores y programar estas operaciones. Si se producen errores, sus grupos de contenedores seguirán funcionando, pero eso es todo. Cualquier otra función que necesite, en términos de registro, monitoreo o redes, debe ser abordada por otras herramientas. Si tiene requisitos adicionales, Nomad también es fácil de integrar con otras herramientas. Hashicorp, el desarrollador principal de Nomad, garantiza una estrecha integración de Nomad con otros productos de software como Consul y Vault.

Las mejores alternativas de KUBERNETES: una mirada a Swarm, DC/OS, Nomad - The Best

Sin embargo, Nomad tiene algunos defectos muy notables. Para empezar, es limitado y eso es un arma de doble filo. Si necesita una política de red avanzada y una función de supervisión integrada, Kubernetes es la mejor solución. Además, Nomad es un jugador mucho más pequeño que Kubernetes. Ambos son proyectos de código abierto que dependen en gran medida de los aportes de la comunidad. Apenas el 10 por ciento hace que Github apenas se comprometa con Kubernetes. Esto significa una velocidad generalmente lenta en el desarrollo y corrección de errores.

Positivos:

  1. Fácil de usar en comparación con otras opciones enumeradas

Negativos:

  1. El alcance y la escala limitados dificultan la implementación en proyectos realmente grandes
  2. Comunidad relativamente pequeña

تحميل Nómada 

Embalaje

Cada uno de estos sistemas de sincronización tiene ventajas y desventajas. Kubernetes en sí mismo es la solución perfecta para las empresas que desean organizar aplicaciones que satisfagan las necesidades de millones de usuarios. La documentación ambigua, una curva de aprendizaje empinada y un soporte relativamente deficiente significan que no es para todos.

Docker Swarm es mucho más fácil de configurar y usar, pero no tiene potentes herramientas de monitoreo o registro integradas. DC/OS le permite hacer más que solo organizar microservicios en contenedores, pero la funcionalidad premium se esconde detrás de un firewall. Si bien lo más destacado de Nomad es su simplicidad, lo que lo hace ideal para proyectos más pequeños, la simplicidad en sí misma lo hace menos que ideal para grandes esfuerzos de nivel empresarial.

Ir al botón superior