Las mejores alternativas de Kubernetes para la orquestación de microservicios

El alojamiento en la nube, la transmisión de música y video y los servicios de mensajería significan que todo está al alcance de su mano. Puedes ver los programas que quieras, cuando quieras, escuchar tu música favorita o enviar mensajes a tus amigos cuando quieras. La nube hace las cosas mucho más fáciles para los usuarios. Pero desarrollar para un mundo centrado en la nube puede ser una pesadilla.

El mayor desafío es asegurarse de que los datos y las aplicaciones estén disponibles las 24 horas del día, bajo demanda. Pero el tiempo del servidor cuesta dinero por hora. ¿Dejas tus servidores encendidos todo el tiempo? ¿Qué sucede cuando hay un error en una parte de su plataforma? ¿Y qué sucede cuando tienes que impulsar una nueva actualización?

Las arquitecturas de diseño tradicionales lo obligan a enviar actualizaciones como compilaciones completas. Puede llevar horas instalar una actualización y eso significa mucho tiempo de inactividad para los usuarios. Los microservicios en contenedores son una forma radical y compatible con la nube de resolver este problema. Los contenedores son esencialmente procesos independientes y todas sus dependencias se empaquetan juntas para ejecutarse. Todo lo que un proceso en contenedores necesita para ejecutarse está en ese contenedor, lo que lo hace altamente portátil.

Leer: Los mejores sistemas de seguimiento de candidatos para pequeñas empresas

¿Cómo funciona la contenerización?

He aquí una analogía fácil. Piense en su aplicación en la nube como un barco y en los microservicios en contenedores como múltiples compartimentos herméticos. Si solo hay un compartimento, su barco se hundirá si se inunda. Pero si tiene varios compartimentos, su barco estará bien, incluso si un compartimento se inunda. Las aplicaciones creadas con una arquitectura de microservicios pueden tener docenas o incluso cientos de microservicios en contenedores que funcionan juntos. Los microservicios pueden proporcionar funciones únicas (por ejemplo, solo la parte de mensajería de una plataforma de redes sociales). También puede tener varios microservicios que realizan funciones redundantes en varios servidores para equilibrar la carga.

mamparo

En lugar de tener un servidor de mensajería encendido todo el tiempo (mascando su billetera), puede tener el microservicio de mensajería ejecutándose en múltiples servidores. Pueden ampliar o reducir la utilización de su servidor en función de la demanda de ese servicio en particular. Por lo tanto, tendría menos utilización durante la noche, abordando la demanda reducida y ahorrando dinero. Pero podría aumentar la utilización durante las horas pico.

Cómo ayuda la contenerización

La contenedorización también puede ayudar a reducir significativamente el tiempo de inactividad. Si su aplicación se compone de varios contenedores y hay un error en un servicio en particular, todo lo demás seguirá funcionando mientras lo soluciona. Además, cuando está impulsando actualizaciones incrementales, no tendría que desactivar servidores completos. Solo tendría que actualizar los microservicios individuales. Es posible que los usuarios ni siquiera noten que hubo tiempo de inactividad.

¿Qué es Kubernetes?

He aquí una buena analogía de que es kubernetes. Pero en la práctica, administrar y monitorear (orquestar) las aplicaciones creadas con microservicios puede ser increíblemente difícil. Necesitaría un sistema que monitoree y ajuste dinámicamente los microservicios en cientos o miles de servidores. Afortunadamente, Google desarrolló una herramienta sólida al crear Kubernetes. La palabra «Kubernetes» significa gobernador en griego, y eso es esencialmente lo que es. Es una plataforma que lo ayuda a monitorear y gobernar aplicaciones basadas en microservicios.

Sin embargo, Kubernetes no está exento de desventajas. Tiene una curva de aprendizaje muy empinada, aunque sería mucho más difícil construir su propio orquestador. Al hacer la transición a un modelo de microservicio, también existe la necesidad de que los desarrolladores cambien la forma en que ven el código. Ellos mismos necesitan tener una buena idea de cómo escalará y cómo se implementará, en lugar de dejarlo solo en las operaciones. Hemos preparado una lista seleccionada de alternativas de Kubernetes aquí si la solución basada en Google no es la adecuada para usted. Sigue leyendo para saber más.

Leer: El mejor software de contabilidad para propietarios de pequeñas empresas

kubernetes

Alternativas a Kubernetes

1. Enjambre Docker

Para quién es: Usuarios que desean una alternativa a Kubernetes fácil de configurar

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

Esta familiaridad significa que los desarrolladores pueden integrar fácilmente Swarm en su flujo de trabajo existente. En segundo lugar, Docker para facilitar el escalado manual de servicios, 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 ofrece soporte empresarial oficial para los clientes de Docker Enterprise Edition (que incluye Swarm). Google no ofrece soporte para Kubernetes. Sin embargo, Kubernetes es una plataforma de código abierto, por lo que existen otros proveedores. Ofrecen soporte para sus propios lanzamientos.

Docker también tiene desventajas. El registro y la supervisión son un punto débil clave. 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.

Leer: El mejor software gratuito de acceso remoto para autónomos y pequeñas empresas

Ventajas:

  • Más fácil de instalar y configurar que Kubernetes
  • Soporte oficial para Enterprise Edition

Contras:

  • Funcionalidad limitada de monitoreo y registro
  • Comunidad más pequeña que Kubernetes

Descargar Estibador

enjambre de estibador

2. DC/OS

Para quién es: Usuarios que quieren ejecutar en contenedores y cargas de trabajo no en contenedores en una plataforma distribuida

DC/OS es la abreviatura de Sistema operativo del centro de datos. Opera a un nivel más alto de abstracción que Kubernetes. Kubernetes simplemente organiza microservicios en contenedores. Todavía está tratando con múltiples servidores distintos y múltiples grupos de recursos. DC/OS, sin embargo, abstrae los recursos de las propias máquinas. DC/OS puede presentar todo el centro de datos como un conjunto único y gigante de recursos: petabytes de almacenamiento, terabytes de RAM y miles de núcleos de CPU.

Los desarrolladores pueden programarlo como si estuvieran trabajando con un sistema gigante y la magia de DC/OS distribuye inteligentemente la carga en todos sus servidores. Esto significa que DC/OS también se puede usar para distribuir la función de las cargas de trabajo no en contenedores. Sin embargo, DC/OS tiene inconvenientes notables.

Si bien DC/OS es de código abierto, hay una edición empresarial que tiene muchas características clave bloqueadas detrás de un muro de pago de suscripción. Tendrá que pagar por ciertas funciones que Kubernetes admite desde el primer momento.

Ventajas:

  • Le permite ejecutar cargas de trabajo en contenedores y no en contenedores
  • Se presenta como un grupo de recursos unificado, lo que reduce la complejidad para los desarrolladores.

Contras:

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

Descargar CC/SO

CC/SO

3. Nómada

Para quién es: Usuarios que desean un servicio de orquestación limitado pero enfocado

Uno de los principales inconvenientes de los grandes jugadores de orquestación como Kubernetes y Docker Swarm es que son asi que complejo. Están construidos con los requisitos de gigantes como Spotify, que dan servicio a cientos de millones de usuarios al día, en mente. Si su aplicación necesita escalar en miles de servidores y brindar docenas de servicios a millones de personas, usted necesitar ese nivel de complejidad. Pero si es un jugador pequeño o mediano, sus requisitos de orquestación también serán más simples.

Nomad hace muy poco por sí mismo. Eso solamente le permite administrar clústeres de contenedores y programarlos. En caso de errores o fallas, también mantendrá los clústeres de contenedores en ejecución, pero eso es todo. Cualquier otra funcionalidad que necesite, en términos de registro, monitoreo o redes, debe ser manejada por otras herramientas. Si tiene más requisitos, también es fácil integrar Nomad con otras herramientas. Hashicorp, el desarrollador clave de Nomad, garantiza una estrecha integración de Nomad con sus otros productos de software como Consul y Vault.

Sin embargo, Nomad también tiene algunas desventajas notables. Para empezar, es es limitada y eso es un arma de doble filo. Si necesita funciones avanzadas de política de red y 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 considerablemente de los aportes de la comunidad. Nomad tiene apenas el 10 por ciento de los compromisos de Github que Kubernetes. Esto significa un ritmo general más lento de desarrollo y corrección de errores.

Ventajas:

  • Fácil de usar en comparación con las otras opciones enumeradas

Contras:

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

Descargar Nómada

Interfaz de usuario nómada

Terminando

Cada una de estas plataformas de orquestación tiene sus ventajas y desventajas. Kubernetes en sí mismo es la solución de referencia para las empresas que desean orquestar aplicaciones que atiendan a millones de usuarios. Sin embargo, la documentación vaga, una curva de aprendizaje empinada y un soporte relativamente pobre significan que no es para todos.

Docker Swarm es mucho más fácil de configurar y usar, pero no tiene herramientas sólidas de monitoreo o registro integradas. DC/OS le permite hacer más que orquestar microservicios en contenedores, pero la funcionalidad premium tiene un muro de pago. Y si bien lo más destacado de Nomad es su simplicidad, lo que lo hace ideal para proyectos de menor escala, esa misma simplicidad lo hace menos que ideal para grandes esfuerzos de clase empresarial.

Leer: El mejor creador de sitios web de comercio electrónico gratuito para pequeñas empresas

ÚLTIMAS ENTRADAS

Entradas relacionadas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad