Una introducción a Mesosphere

Qué es Mesosphere

Mesosphere es una solución de software que amplía las capacidades de administración de clústeres de Apache Mesos con componentes adicionales para proporcionar una forma nueva y novedosa de administrar infraestructuras de servidores. Al combinar varios componentes con Mesos, como Marathon y Chronos, Mesosphere permite escalar aplicaciones fácilmente al abstraer muchos de los desafíos asociados con el escalado.

Mesosphere proporciona funciones como programación de aplicaciones, escalado, tolerancia a fallos y autocuración. También proporciona detección de servicios de aplicaciones, unificación de puertos y elasticidad de punto final.

Para dar una mejor idea de cómo la Mesosfera proporciona las características antes mencionadas, explicaremos brevemente lo que hace cada componente clave de la Mesosfera, comenzando con Apache Mesos, y mostraremos cómo se usa cada uno en el contexto de la Mesosfera.

Una descripción básica de Apache Mesos

Apache Mesos es un administrador de clústeres de código abierto que simplifica la ejecución de aplicaciones en un clúster escalable de servidores, y es el corazón del sistema Mesosphere.

Mesos ofrece muchas de las características que esperaría de un administrador de clústeres, como:

  • Escalabilidad a más de 10.000 nodos
  • Aislamiento de recursos para tareas a través de contenedores Linux
  • Programación eficiente de recursos con reconocimiento de memoria y CPU
  • Maestro de alta disponibilidad a través de Apache ZooKeeper
  • Interfaz de usuario web para supervisar el estado del clúster

Arquitectura Mesos

Mesos tiene una arquitectura compuesta de demonios maestros y esclavos, y frameworks. Aquí hay un desglose rápido de estos componentes, y algunos términos relevantes:

  • Demonio maestro: se ejecuta en un nodo maestro y administra demonios esclavos
  • Demonio esclavo: se ejecuta en un nodo maestro y ejecuta tareas que pertenecen a frameworks
  • Framework: también conocido como aplicación Mesos, se compone de un planificador, que se registra con el maestro para recibir ofertas de recursos, y uno o más ejecutores, que lanza tareas en esclavos. Ejemplos de frameworks Mesos incluyen Marathon, Chronos y Hadoop
  • Oferta: una lista de los recursos de memoria y CPU disponibles de un nodo esclavo. Todos los nodos esclavos envían ofertas al maestro, y el maestro proporciona ofertas a frameworks registrados
  • Tarea: unidad de trabajo programada por un framework y ejecutada en un nodo esclavo. Una tarea puede ser cualquier cosa, desde un comando o script bash, a una consulta SQL, a un trabajo de Hadoop
  • Apache ZooKeeper: software que se utiliza para coordinar los nodos maestros

Arquitectura Mesos

Nota: «ZK» representa ZooKeeper en este diagrama.

Esta arquitectura permite a Mesos compartir los recursos del clúster entre aplicaciones con un alto nivel de granularidad. La cantidad de recursos ofrecidos a un marco en particular se basa en la política establecida en el maestro, y el programador del marco decide cuál de las ofertas usar. Una vez que el planificador de framework decide qué ofertas quiere usar, le dice a Mesos qué tareas deben ejecutarse, y Mesos lanza las tareas en los esclavos apropiados. Una vez completadas las tareas y liberados los recursos consumidos, el ciclo de oferta de recursos se repite para poder programar más tareas.

Alta disponibilidad

La alta disponibilidad de maestros Mesos en un clúster se habilita mediante el uso de Apache ZooKeeper para replicar los maestros y formar un quórum. ZooKeeper también coordina la elección del líder maestro y se encarga de la detección del líder entre los componentes de Mesos, incluidos los esclavos y los frameworks.

Se requieren al menos tres nodos maestros para una configuración de alta disponibilidad, una configuración de tres maestros permite mantener el quórum en caso de que falle un solo maestro, pero se recomiendan cinco nodos maestros para un entorno de producción resistente, lo que permite mantener el quórum con dos nodos maestros sin conexión.

Para obtener más información sobre Apache Mesos, visite su página de documentación oficial.

Una descripción básica de Marathon

Marathon es un marco para Mesos diseñado para lanzar aplicaciones de larga duración y, en Mesosphere, sirve como reemplazo de un sistema tradicional init. Tiene muchas características que simplifican la ejecución de aplicaciones en un entorno de clúster, como alta disponibilidad, restricciones de nodo, comprobaciones de estado de aplicaciones, una API para la capacidad de escritura y la detección de servicios, y una interfaz de usuario web fácil de usar. Agrega sus capacidades de escalado y autocuración al conjunto de funciones de Mesosfera.

Marathon se puede usar para iniciar otros frameworks de Mesos, y también puede iniciar cualquier proceso que se pueda iniciar en el shell normal. Como está diseñado para aplicaciones de larga ejecución, se asegurará de que las aplicaciones que ha lanzado continúen ejecutándose, incluso si el nodo esclavo en el que se ejecutan falla.

Para obtener más información sobre Marathon, visita su página de GitHub.

Una descripción básica de Chronos

Chronos es un framework para Mesos desarrollado originalmente por Airbnb como reemplazo de cron. Como tal, es un programador con todas las funciones, distribuido y tolerante a errores para Mesos, que facilita la orquestación de trabajos, que son colecciones de tareas. Incluye una API que permite crear scripts de trabajos de programación y una interfaz de usuario web para facilitar su uso.

En Mesosphere, Chronos complementa a Marathon, ya que proporciona otra forma de ejecutar aplicaciones, de acuerdo con un horario u otras condiciones, como la finalización de otro trabajo. También es capaz de programar trabajos en múltiples nodos esclavos Mesos y proporciona estadísticas sobre los errores y éxitos de los trabajos.

Para obtener más información sobre Chronos, visita su página de GitHub.

Una descripción básica de HAProxy

HAProxy es una popular solución de balanceador de carga de código abierto y proxy inverso. Se puede usar en Mesosphere para enrutar el tráfico de red desde hosts conocidos, típicamente maestros Mesos, a los servicios reales que se ejecutan en nodos esclavos Mesos. Las capacidades de detección de servicios de Mesos se pueden usar para configurar dinámicamente HAProxy para enrutar el tráfico entrante a los nodos esclavos de backend adecuados.

Para obtener más información sobre las capacidades generales de HAProxy, consulte nuestra Introducción a HAProxy.

Conclusión

Mesosphere emplea paradigmas de infraestructura de servidores que pueden parecer desconocidos, ya que fue diseñado con un fuerte enfoque en la agrupación en clústeres y la escalabilidad, pero esperamos que ahora tenga una buena comprensión de cómo funciona. Cada uno de los componentes en los que se basa proporciona soluciones a los problemas que se enfrentan comúnmente cuando se trata de agrupar y escalar una infraestructura de servidor, y Mesosphere tiene como objetivo proporcionar una solución completa a estas necesidades.

Ahora que conoce los conceptos básicos de Mesosphere, consulte el siguiente tutorial de esta serie. ¡Le enseñará cómo configurar un clúster de Mesosfera listo para producción en Ubuntu 14.04!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.