Qué es Apache Mesos?
La definición más clara y corta podría ser: Administrador global de los recursos en un datacenter. Aunque en la definición oficial le llaman “A distributed systems kernel”, es decir un kernel para sistemas distribuidos, pero no porque realmente Mesos sea un kernel, si no más bien por la capa de abstracción que representa en un datacenter.
“Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.” – http://mesos.apache.org
Básicamente lo que hace es administrar todos los recursos (CPU, memoria, almacenamiento, etc) de las máquinas (físicas o virtuales) que están en un datacenter para habilitar sistemas distribuidos elásticos y tolerantes a fallos, que sean fáciles de construir y que corran eficientemente.
Mesos, busca que el datacenter sea visto como un gran conjunto de recursos, una unidad que sea más fácil de administrar y que aproveche todos los recursos, así como lo dice uno de sus creadores:
“We wanted people to be able to program for the data center just like they program for their laptop.” – Ben Hindman
Un poco de historia
- Comenzó como un proyecto de investigación en la Universidad de Berkeley.
- Ben Hindman (uno de sus creadores) se unió a Twitter después de haber presentado un prototipo de Mesos, pasado un tiempo y con apoyo de la empresa, liberaron Mesos como un proyecto Open Source.
- Mesos es comparado con el scheduler de Google, llamado Omega (antes Borg). Mas información: http://www.wired.com/2013/03/google-borg-twitter-mesos/
- Twitter adoptó Mesos en sus datacenters creando algo similar a Google Omega.
- Hindman dejó Twitter y fundó su propia empresa que se dedica a dar soporte comercial de Mesos y de ofrecer soluciones para manejar datacenters. La empresa es Mesosphere y su producto estrella es el Mesosphere Datacenter Operating System (DCOS).
- Apple recientemente dio a conocer que Siri corre completamente sobre Mesos. Post: https://mesosphere.com/blog/2015/04/23/apple-details-j-a-r-v-i-s-the-mesos-framework-that-runs-siri/
Big picture
Si pudiéramos ver por niveles como se veria un datacenter que usa Mesos y que corre aplicaciones tan demandantes como un Twitter, Facebook, etc. La manera en la que se representaría para poder entender la jerarquía seria algo asi:
En la parte más baja está la infraestructura, es decir todos los servidores (con su OS), despues esta el file system distribuido, sobre eso se instala Mesos. Una vez que tenemos esa etapa se deben instalar los frameworks (sistemas distribuidos) de Mesos que son como un puente entre nuestra aplicación y Mesos. Ejemplo de frameworks: Aurora, Marathon, Hadoop, Spark, etc. Una lista completa la pueden revisar aquí. Y después de eso montamos nuestra aplicación. Por eso la visión de Mesos es la de programar apps para el datacenter como si lo hiciéramos en nuestra computadora, porque la manera en que trabaja hace que los desarrolladores no se preocupen tanto por la parte de infraestructura.
La magia de Mesos
La manera en como aprovecha los recursos hace que las aplicaciones puedan sacar el máximo provecho al datacenter. Básicamente trabaja asi: todos los procesos están dentro de un contenedor y Mesos decide en qué servidor mandarlo, dependiendo de la necesidad de esa tarea (memoria, CPU). Con esto, toda la carga es distribuida y se evita la sobrecarga de servidores por algún pico en algún servicio en particular. Veamos esto en acción como lo muestran las siguientes imágenes:
Toda la información del proyecto esta en: http://mesos.apache.org/ y pueden seguir sus noticias en Twitter en @ApacheMesos y si les interesa asistir a sus conferencias, siganlos en la página de la Linux Foundation en http://events.linuxfoundation.org/events/mesoscon
November 30, 2021 at 5:31 am
Gracias por tu post, muy intersante. ¡Lastima que ya no actualices el blog!
December 11, 2023 at 7:02 pm
bdq7e2