Publié par

Il y a 4 années -

Temps de lecture 3 minutes

Devoxx – Mesos, the new operating system for your cluster

Lors de cette session, Sam Bessalah nous a présenté Apache Mesos. Ce projet est né du besoin de gérer plus efficacement les nœuds d’un cluster. Imaginons un cluster Hadoop, un autre pour Elasticsearch, etc. Sans outil approprié cela devient compliqué et cela augmente lorsque le nombre de machines à gérer devient important. En effet comment reprendre efficacement les nœuds en cas de problèmes ?

L’initiative est née chez Google avec le projet Omega, Apache Mesos est issu de cette étude.

Qu’est ce que Mesos ?

Mesos fournit une solution aux problématiques de :

  • détection des erreurs,
  • distribution et du monitoring de tâches,
  • gestion des ressources.

Pour simplifier, il faut voir Mesos comme un datacenter avec une seule machine. Ce dernier va agir comme une couche et interagir avec des machines physiques et virtuelles. Ces machines vont contenir des batchs, des applications Web, des systèmes de storage ou de distribution.

En terme de performance, Mesos peut gérer des miliers de nœuds.

Architecture

Voici une image représentant les différents composants :

archiMesos1.jpg

Zookeeper permet de faire la découverte et l’élection de nœuds. Nous avons également un master et des slaves :

  • Le master contient les frameworks.
  • Les slaves exécutent les tâches.

Les frameworks sont des applications possédant deux composants :

  • un scheduler : pour attribuer les ressources,
  • un executor : pour lancer l’exécution des tâches.

Afin de faire fonctionner des outils dessus, une API (Java, Scala, Go et autres) permet de faire l’implémentation adéquate. Certains de ces outils proposent déjà des implémentations (Elasticsearch, Hadoop, etc).

Les tâches sont des conteneurs linux. Initialement basé sur les cgroups, Mesos a le support natif avec Docker depuis la version 0.20.

Reprise sur erreurs

Que se passe-t-il lorsque le master ou un slave tombe ?

Concernant le master, ce dernier possède un Registrar qui loggue toutes les informations des tâches exécutées sur les slaves. Cela permet de garder la cohérence du système lors de la reprise sur erreurs. En parallèle Zookeeper va se charger de faire une réélection des nœuds masters et reprendre les tâches en cours.

Pour la reprise sur erreur des slaves, les tâches exécutées sont continuellement sauvegardées sur les disques locaux par le biais de checkpoints. Plus précisément ce sont les informations concernant les tâches (status, mises à jour, etc)

Executer des applications

A la base Mesos était prévu pour faire tourner des jobs Hadoop ou Spark, mais le besoin d’exécuter des applications plus classiques est arrivé. De cela sont nés des outils comme Marathon ou Aurora.

Sam nous conseille Marathon car les features sont actuellement plus avancées. Le principe est d’avoir un framework générique Mesos afin de faire tourner les applications. Ce dernier permet d’utiliser un init.d distribué pour les clusters. Cela a l’avantage d’exécuter des binaires linux (Tomcat par exemple) et de superviser les clusters.

Marathon est en réalité un PAAS privé offrant les services suivants :

  • La découverte de services,
  • Une API Rest pour les déploiements d’applications (une interface graphique est disponible),
  • Un système d’authentification et du SSL,
  • Du load balancing basé sur HAProxy.

Sam a terminé sa présentation en nous présentant Mesosphere qui fournit l’infrastructure nécessaire à la mise en place de Mesos avec un ensemble d’outils pré-configurés. Il a également évoqué le projet Kubernetes qui permet lui aussi d’organiser et de gérer des conteneurs Docker dans un cluster.

Publié par

Publié par Nicolas Jozwiak

Nicolas est delivery manager disposant de 12 ans d’expérience en conception et développement. Son parcours chez un éditeur avant son entrée chez Xebia lui a notamment permis de développer de solides compétences dans le domaine de la qualité et de l’industrialisation (tests, intégration continue, gestion de configuration, contrôle qualité). Bénéficiant d’une expérience très solide de mise en place des méthodes agiles et d’accompagnement d’équipes sur le terrain, il s’attache à mettre à profit quotidiennement son expérience qui est reconnue pour son approche pragmatique, proactive et pédagogique.

Commentaire

1 réponses pour " Devoxx – Mesos, the new operating system for your cluster "

  1. Publié par , Il y a 4 années

    Pour ceux qui veulent aller plus loin, voici une très bonne présentation de Benjamin Hindman, créateur de Mesos : http://blog.docker.com/2014/06/dockercon-video-cluster-management-and-containerization-at-twitter/

    Sinon pour la petite histoire, Mesos est un projet développé à Twitter par d’ancien de Google notamment qui voulait réimplémenter l’arme secrète de Google : Borg (l’ancêtre d’Omega) : http://www.wired.com/2013/03/google-borg-twitter-mesos/

  2. Publié par , Il y a 3 années

    Bonjour, je vous remercie d’abord pour l’article. Vous avez dit que « Pour la reprise sur erreur des slaves, les tâches exécutées sont continuellement sauvegardées sur les disques locaux par le biais de checkpoints. », je veux savoir est ce que cela signifie que lorsque un container qui tourne une base de données tombe en panne mesos va lancer un autre container avec les memes informations « données » que l’ancien container?
    Une autre question est ce que mesos gère la migration des containers « migration à chaux »?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.