Apache Mesos es un kernel administrador de clúster de código abierto desarrollado en la Universidad de California, Berkeley. Mesos se ejecuta en cada nodo del cluster y provee aplicaciones (como Hadoop, Spark, Kafka entre otras) con API's para el manejo de recursos y planificación de tareas de todo el datacenter.
Ha sido adoptado por varias compañías de software grandes, incluyendo Twitter, Airbnb y Apple. Al menos 50 organizaciones actualmente usan Mesos.
El 27 de julio de 2016, Apache Mesos anunció la disponibilidad de Apache Mesos v1.0. La adición más notable al software fue la “unificación de contenedores” esto permitió la capacidad de soportar Docker, rkt e instancias appc.
Mesos empezó como un proyecto de investigación en el Laboratorio UC Berkeley RAD en ese entonces por los estudiantes de doctorado Benjamin Hindman, Andy Konwinski, y Matei Zaharia, así cómo el profesor Ion Stoica. Los estudiantes empezaron a trabajar juntos en el proyecto cómo parte de un curso de Tópicos Avanzados en Sistemas de Computadores por David Culler. Fue originalmente nombrado Nexus, pero debido a un conflicto con el proyecto de otra universidad, fue rebautizado a Mesos.
La primera presentación de Mesos fue en 2009 (mientras todavía era llamado Nexus) por Andy Konwinski en HotCloud '09 en una charla que acompañaba el primer artículo científico publicado sobre el proyecto.Ali Ghodsi, Anthony D. Joseph, Randy Katz, Scott Shenker, Ión Stoica.
Más tarde en 2011 es presentado en un estado más maduro en una charla por Matei Zaharia en el USENIX, conferencia Symposium on Networked Systems Design and Implementation sobre el artículo "Mesos: Una Plataforma para administrar recursos compartidos en el Centro de procesamiento de Datos" por Benjamin Hindman, Andy Konwinski, Matei Zaharia,El 27 de julio de 2016, la Apache Software Foundation anunció la versión 1. Esta agregó la capacidad de suministrar centralmente instancias de Docker, rkt y appc.
Mesos puede escalar linealmente fácilmente hasta 10,000 nodos.
Es tolerante de fallos, ya que puede generar réplicas del nodo maestro. Además se integra fácilmente con Zookeeper.
Provee soporte nativo para la ejecución de imágenes de contenedores Docker y AppC.
Mesos usa Linux Cgroups para proporcionar aislamiento de CPU, memoria, I/O y sistema de archivos.
Provee soporte para correr aplicaciones nativas de cloud, así como aplicaciones legadas en el mismo cluster con políticas de planificación.
Provee API HTTP para que los desarrolladores puedan crear sus propias aplicaciones distribuidas, así para desarrollar aplicaciones de operación y monitoreo del cluster.
Por defecto, ya viene con un una interfaz gráfica web para poder visualizar el estado del cluster, aplicaciones que corrieron, logs, entre otros datos.
Corre en Linux , OSX y Windows.
Mesos utiliza un mecanismo de dos niveles de planificación en donde se ofrecen recursos a frameworks (aplicaciones que corren arriba de Mesos). Cada nodo agente (esclavo) le informa al nodo maestro cuantos recursos disponibles tiene. El nodo maestro posee una lista de todos esos recursos disponibles y decide cuántos recursos puede ofrecer a cada framework, mientras que cada framework determina los recursos que acepta y qué aplicación ejecutar en estos recursos. Este método de asignación de recursos permite un acercamiento óptimo de la ubicación de datos cuándo se comparte un clúster de nodos entre frameworks diversos.
Dentro de un clúster se pueden identificar dos tipos de nodos de Mesos, maestros y agentes. Aquellos que son maestros, reciben solicitudes para ejecutar trabajos que provienen de algún framework y los mandan a ejecutar sobre nodos agentes, a su vez estos son encargados de reservar recursos para que las tareas de esos frameworks puedan ejecutar en los nodos agentes.
Nodos maestros, son pocos, pero se recomienda tener un mínimo de 3 de ellos, para continuar el servicio ante la caída de alguno y poder llamar a un votación de mayoría (mitad más uno de un quorum) para saber quién será el próximo nodo a ser el que estará como activo, para esto se utiliza ZooKeeper.
Los nodos agentes son aquellos, que por lo general se dispone de grandes cantidades, y sobre ellos se ejecutarán las tareas de los frameworks.
La estructura básica para tener un clúster consiste de tener los siguientes componentes:
Si bien en esta estructura se tienen tres nodos master, la idea es que solo uno de ellos este activo mientras que los otros deberían estar en un estado pasivo. Los dos nodos pasivos se mantendrán en ese estado a la espera de que el nodo activo pueda fallar y así asumir el rol de nodo master activo.
Mesos es a menudo comparado con Google Omega scheduler, una plataforma altamente secreta utilizada internamente para dirigir y distribuir los servicios de Google.
Mesos usa los Cgroups de Linux para proveer aislamiento para CPU, memoria, I/O y el sistema de archivos. Mesos es la base para un numerosos sistemas distribuidos. Estos sistemas distribuidos son llamados frameworks.[cita requerida]
Apache Aurora es un framework de Mesos para servicios de corrida prolongada y trabajos cron, originalmente desarrollado por Twitter a comienzos del 2010 y de código abierto a fines del 2013. Puede escalar a decenas de miles de servidores, y contiene muchas similitudes con Borg scheduler de Google incluyendo su ADSL rico para configurar servicios.
Chronos es un sistema distribuido cron-like, es elástico y también puede expresar dependencias entre trabajos. Puede escalar a miles de servidores físicos y es, lo más parecido a Mesos framework, completamente elástico y a prueba de fallos.
Marathon es un popular PaaS o sistema de orquestación de contenedores que escala a miles de servidores físicos. Esta completamente basado en REST y permite despliegues del estilo canary y topologías de despliegue. Está escrito en Scala y es altamente disponible, elástico, y distribuido.
Como se explica en las secciones anteriores, las tareas que se lanzan en los agentes estas aisladas. Este aislamiento por defecto se hace utilizando los Cgroups de Linux. También Docker hace esto de forma nativa, cuando la tarea llega al agente, este crea un nuevo Cgroup y se lo asigna a la tarea.
Cuando se ejecuta una tarea, esta efectúa almacenamiento de datos, cachés y de más información necesaria para que el servicio corra. Debido a esto, si un agente fallara podría ocasionar problemas en sus tareas. Para mitigar esos problemas Mesos ofrece una serie de herramientas:
Checkpoints
Los agentes realizan checkpoints sobre el estado de la tarea. Estos checkpoints funcionan como copias de seguridad del estado, para que en el caso de que tengamos que reiniciar el agente, la recuperación sea más rápida.
Cache executor
En el caso de que el servicio de mesos-slave no este disponible, las nuevas tareas y peticiones serán guardadas en memoria cache. Cuando el servicio este recuperado se empezaran a procesar las peticiones que fueron guardadas.
Conexión
Una tarea que ya se ejecutó anteriormente tendrá más posibilidades de volverse a ejecutar en el mismo Cgroup y el mismo agente que lo hizo la última vez, de esta manera la información se puede recuperar.
Fallo del agente
En el caso de fallo completo de un agente, el framework solicitará volver a montar la tarea en un nuevo agente.
EL sitio de redes sociales Twitter empezó utilizar Mesos y apache Aurora en 2010, después de que (entonces estudiante de doctorado) Benjamin Hindman dio una presentación a un grupo de ingenieros de Twitter.
Airbnb dijo en julio del año 2013 que usa Mesos para correr numerosos sistemas de procesamiento de datos como apache Hadoop y Apache Spark.
El sitio web de subasta eBay declaró en abril de 2014 que usa Mesos para correr integración continua en un ambiente de desarrollo. Logran este cometido utilizando un plugin de Mesos customizado que permite a los desarrolladores lanzar su propias y privadas instancias de Jenkins.
En abril de 2015, fue anunciado que el servicio Siri de Apple está utilizando su propio framework Mesos llamado Jarvis.
En agosto de 2015, fue anunciado que Verizon ha seleccionado Mesosphere's DCOS, el cual está basado en un Apache Mesos de código abierto Mesos, cómo su orquestador de centro de datos para su plataforma a nivel nacional.
En noviembre de 2015, Yelp anunció que habían estado utilizando Mesos/Marathon por un año y un medio para servicios de producción.
Mesosphere vende el Centro de Datos Sistema operativo, un sistema operativo distribuido, basado en apache Mesos.Microsoft Azure.
En septiembre de 2015, Microsoft anunció una sociedad comercial con Mesosphere para construir un planificador de contenedores y servicios de orquestación paraEscribe un comentario o lo que quieras sobre Apache Mesos (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)