Definition

Mesos

Apache Mesos est un outil Open Source de gestion de cluster qui reprend certains des concepts historiquement utilisés par les outils de gestion de cluster du monde HPC et permet d’allouer aux applications les ressources (CPU, mémoire, réseau…) dont elles ont besoin sur le cluster. Mesos est notamment conçu pour piloter le déploiement à grande échelle d’applications distribuées telles que Hadoop, Spark, Kafka, ElasticSearch, mais aussi toute forme d’application distribuée interfacée avec l’un des gestionnaires de ressources supportés.

Apache Mesos est une technologie née au sein de l'AMPLab de l’Université de Berkeley (sous le nom originel de "Nexus") qui a été « durcie » chez Twitter et AirBnB, puis adoptée par la fondation Apache comme l'un de ses projets coeurs.

Comme la plupart des grands projets libres, Mesos est soutenu par une société commerciale : Mesosphere qui a bâti un OS complet pour datacenters autour de Mesos. L'un des co-fondateurs de Mesosphere, Benjamin Hindman, était l'un des étudiants en PhD qui a participé au développement initial de Mesos à Berkeley.

Mesos se déploie sur des clusters de machines (physiques ou virtualisées) faisant tourner Linux ou Mac OS X (et bientôt Windows). Le but de la technologie est d’abstraire les ressources offertes par les différents nœuds du cluster et de les exposer via un mécanisme de contrat à des schedulers supportés (Scheduler Hadoop, Scheduler MPI, Scheduler batch Chronos ou Marathon de Mesosphere). Les contrats sont utilisés par les schedulers pour accepter ou non les offres de ressources faites par Mesos. Le mécanisme permet d’allouer de façon fine les ressources disponibles sur le cluster aux différentes applications..

Mesos met en œuvre un concept de contrôleur maître et d’esclaves. Le maître agit comme un broker chargé de distribuer les ressources à l’échelle du cluster et il instancie à la volée des esclaves qui sont chargés d’exécuter les différentes tâches requises par les applications. Le maitre s’interface via un jeu d’API avec les schedulers des frameworks applicatifs afin de jouer son rôle de broker. Le maitre décide de l’allocation des ressources aux différents frameworks en fonction des politiques définies par l’entreprise.

Architecture d'Apache Mesos

Mesos permet de gérer plusieurs dizaines de milliers de nœuds au sein d’un même cluster et offre une tolérance élevée aux pannes via des mécanismes de réplication du maitre et des esclaves (le tout étant coordonné via Zookeeper). Les tâches sont typiquement exécutées au sein de conteneurs (Docker ou Linux cgroups). Notons qu’en l’état, Mesos supporte les environnements Linux et Mac OS X, mais que les travaux menés par Mesosphere avec Microsoft permettront le support des environnements Windows et Azure.

Cette définition a été mise à jour en mars 2016

En savoir plus Mesos

Pour approfondir sur Administration et supervision du Cloud