Está en la página 1de 4

Apache mesos

Diapo 2
Apache Mesos nació como un proyecto de investigación en la universidad Berkeley, California y está
realizado en el lenguaje C++. Su primera presentación fue en 2009 con el nombre de Nexus. Pero no fue
hasta el 2016 que Apache Mesos anunció su versión 1 en la cual se agregó la unificación de containers
soportando Docker y APPC. La versión estable más reciente es la 1.3.0 lanzada en 2017.

¿QUÉ ES APACHE MESOS?

Es un administrador de Cluster de código abierto basado en el kernel de Linux, a diferencia de


que Mesos puede correr en cualquier plataforma ya sea Linux, Windows o OSX. Además proporciona
aplicaciones con API’s para el manejo de recursos y planificación.

El mismo abstrae CPU, memoria, almacenamiento y otros recursos desde servidores


dedicados o máquinas virtuales permitiendo sistemas elásticos de fácil construcción y que se puede correr
de manera eficaz, destacando la tolerancia a fallos.

Mesos utiliza un sistema de dos niveles de planificación donde decide cuántos recursos asignar a cada
Framework y el Framework decide qué recursos aceptar y qué tareas correr en esos recursos. Esto le
permite acercarse a la optimización al compartir el cluster entre distintos Frameworks escalando hasta
50.000 nodos.

Diapo 3
¿PARA QUÉ SIRVE?

Mesos se utiliza para correr grandes aplicaciones especialmente aquellas que manejan grandes
volúmenes de datos y se hace inviable correr en un único servidor. Mesos permite utilizar el cluster para
correr los frameworks sobre los cuales se ejecuta la aplicación, distribuyendo la carga entre los distintos
servidores y evitando así sobrecargas logrando un óptimo desempeño. Mesos se utiliza comúnmente para
aplicaciones Java, Pythom, Scala y R.

Twitter, Apple, PayPal, Atlassian y muchas otras grandes compañías utilizan Mesos en sus datacenters.

Diapo 4
FRAMEWORKS MAS POPULARES EN MESOS

Apache Spark: es una plataforma de programación distribuida que se focaliza en la velocidad, en Machine
Learning ofrece tiempos de cálculos en memoria superiores a otros productos. Se suele usar en
aplicaciones escritas en Java, Scala, R y Python.

Cassandra: es una base de datos noSQL que permite el manejo de grandes volúmenes de datos
centrándose en la escalabilidad lineal y la disponibilidad.

Akka: es un framework para programación concurrente, distribuida y tolerante a fallos en la JVM,


principalmente basado en Scala pero que también soporta Java.
Apache Kafka: es un intermediario de mensajes que proporciona una plataforma unificada de alto
rendimiento para la manipulación en tiempo real de fuentes de datos

Diapo 5
CARACTERÍSTICAS

 Escalabilidad Lineal: puedes escalar fácilmente de forma lineal hasta 10.000 nodos.
 Alta disponibilidad: réplica de master y agentes tolerante a fallos usando Zookeeper
 Containers: soporta nativamente el uso de containers con Docker y Appc.
 Conexiones Aisladas: utiliza Cgroups para el aislamiento de CPU, memoria, disco, puertos, GPU y
módulos para el aislamiento de recursos personalizados.
 Dos niveles de Planificación: soporta ejecutar aplicaciones heredadas y nativas de la nube en el
mismo clúster con políticas de programación conectables.
 API’s: provee aplicaciones HTTP para el desarrollo de nuevas aplicaciones distribuidas para
operar el Cluster y monitoreo.
 Web UI: interfaz de usuario web incorporada para ver el estado del clúster y navegar por los
contenedores
 MultiPlataforma: corre en Linux, OSX y Windows.

Diapo 6
ARQUITECTURA

La Arquitectura básica de Mesos consiste en tener 3 Masters uno en estado activo y dos en standby
listos para usarse si el activo falla, tres Zookeepers (quorum) que permiten la tolerancia a fallos y tres
Slaves donde corren los Frameworks.

Mesos se basa en un proceso Master que administra los procesos Slave, dichos slaves corren en cada
nodo del cluster y los Frameworks corren tareas en los Slaves.
El Master se encarga de compartir recursos entre los Frameworks ofreciendo una lista de recursos
disponibles entre múltiples Slaves. Decide cuántos recursos ofrecer a cada Framework dependiendo la
disponibilidad y guiándose de políticas organizacionales.

Los Frameworks que corren en Apache Mesos constan de 2 componentes, un planificador que registra
los recursos ofrecidos por el Master y un ejecutor lanzado en el nodo Slave para correr las tareas (tasks)
del Framework. Como mencionamos anteriormente el Master determina que recursos ofrecer a cada
Framework y el planificador del Framework decide qué recursos utilizar de los ofrecidos. Cuando el
Framework acepta determinados recursos le envía a Mesos una descripción de las tareas que quiere
correr en el.

Los Slaves proveen aislamiento para los ejecutores del Framework corriendo en un mismo Slave
utilizando mecanismos de aislamiento ya existentes del sistema operativo.

Zookeeper es un sistema centralizado que guarda información de configuración, proporcionando


sincronización distribuida y servicios grupales. En Mesos se utiliza para evitar fallos asignando un nuevo
Master cuando el activo falla.

Diapo 7
¿CÓMO FUNCIONA EL PLANIFICADOR?

En la imagen vemos cómo funciona el proceso de asignación de recursos y ejecución de tareas.


 El slave 1 reporta al Master que tiene ciertos recursos disponibles, en esta caso S1, 4 CPU, 4 GB
RAM, luego el módulo de asignación indica que todos los recursos disponibles deben ser
asignados al Framework 1.
 Los recursos son ofrecidos al Framework 1.
 El Framework 1 envía al Máster las tareas que quiere ejecutar en el Slave 1 utilizando para la
tarea 1 s1, 2 CPU, 1 GB RAM y para la tarea 2 s1, 2 CPU, 2 GB RAM.
 En este paso final el Master envía las tareas al Slave el cual se encarga de asignar los recursos
apropiados al ejecutor del Framework 1 para que ejecute ambas tareas.
 Podemos ver que sigue teniendo 1 CPU y 1 GB RAM libre por lo que seguramente el Master
ofrecerá estos recursos al Framework 2. El proceso de planificación se volverá a repetir cuando
las tareas terminen de ejecutarse y tenga recursos libres.

Diapo 8
¿QUE PASA CUANDO EL MASTER FALLA?

Una de las características principales de Apache Mesos es la tolerancia a fallos, ¿Pero como funciona esto?

Todos los Frameworks y Slaves depende del Master por lo cual es imprescindible que sea tolerante a fallas,
para ello el Master está diseñado con un estado «blando» por lo cual su estado interno puede ser
completamente reconstruido en base a información proveída por los Slaves y los Frameworks.

El único estado del Master son los Slaves activos, Frameworks activos y tareas corriendo. Esta información
es suficiente para saber qué recursos está usando cada framework y correr las políticas de asignación.

Para lograr esto se corren múltiples Maestros en una configuración en espera activa utilizando Zookeeper
como líder. Cuando el Master activo falla Zookeeper selecciona un nuevo Master como activo y los Slaves
y planificadores se conectan a este nuevo Master clonando su estado.

También Apache Mesos reporta falla de nodos y ejecutores al planificador del Framework el cual puede
reaccionar a estos errores utilizando políticas de su elección.

Para manejar fallas en los planificadores Mesos permite a los Frameworks registrar múltiples
planificadores para que cuando uno falle otro es notificado para que tome el control.

También podría gustarte