Une introduction à la Mésosphère

Qu’est-ce que la Mésosphère

Mésosphère est une solution logicielle qui étend les capacités de gestion de cluster d’Apache Mesos avec des composants supplémentaires pour fournir une manière nouvelle et novatrice de gérer les infrastructures de serveur. En combinant plusieurs composants avec Mesos, tels que Marathon et Chronos, Mesosphere permet de faire évoluer facilement les applications en éliminant de nombreux défis associés à la mise à l’échelle.

Mesosphere fournit des fonctionnalités telles que la planification des applications, la mise à l’échelle, la tolérance aux pannes et l’auto-guérison. Il fournit également la découverte de services applicatifs, l’unification de ports et l’élasticité du point final.

Pour donner une meilleure idée de la façon dont la Mésosphère fournit les fonctionnalités susmentionnées, nous expliquerons brièvement ce que fait chaque composant clé de la Mésosphère, en commençant par Apache Mesos, et montrerons comment chacun est utilisé dans le contexte de la Mésosphère.

Un aperçu de base d’Apache Mesos

Apache Mesos est un gestionnaire de cluster open source qui simplifie l’exécution d’applications sur un cluster de serveurs évolutif et constitue le cœur du système Mésosphère.

Mesos offre de nombreuses fonctionnalités que vous attendez d’un gestionnaire de cluster, telles que:

  • Évolutivité jusqu’à plus de 10 000 nœuds
  • Isolation des ressources pour les tâches via des conteneurs Linux
  • Planification efficace des ressources en CPU et en mémoire
  • Maître hautement disponible via Apache ZooKeeper
  • Interface utilisateur Web pour surveiller l’état du cluster

Architecture Mesos

Mesos a une architecture composée de démons maîtres et esclaves et de frameworks. Voici une ventilation rapide de ces composants et quelques termes pertinents :

  • Démon maître : s’exécute sur un nœud maître et gère les démons esclaves
  • Démon esclave: s’exécute sur un nœud maître et exécute des tâches appartenant à frameworks
  • Framework : également appelée application Mesos, elle est composée d’un planificateur, qui s’enregistre auprès du maître pour recevoir des offres de ressources, et d’un ou plusieurs exécuteurs, qui lance des tâches sur des esclaves. Des exemples de frameworks Mesos incluent Marathon, Chronos et Hadoop
  • Offre : une liste des ressources CPU et mémoire disponibles d’un nœud esclave. Tous les nœuds esclaves envoient des offres au maître, et le maître fournit des offres aux frameworks enregistrés
  • Tâche: unité de travail planifiée par un framework et exécutée sur un nœud esclave. Une tâche peut être n’importe quoi, d’une commande ou d’un script bash, à une requête SQL, à un travail Hadoop
  • Apache ZooKeeper : logiciel utilisé pour coordonner les nœuds maîtres

Architecture Mesos

Remarque : « ZK » représente ZooKeeper dans ce diagramme.

Cette architecture permet à Mesos de partager les ressources du cluster entre des applications avec un haut niveau de granularité. La quantité de ressources offertes à un cadre particulier est basée sur la politique définie sur le maître, et le planificateur de cadre décide laquelle des offres à utiliser. Une fois que le planificateur de framework décide des offres qu’il souhaite utiliser, il indique à Mesos quelles tâches doivent être exécutées et Mesos lance les tâches sur les esclaves appropriés. Une fois les tâches terminées et les ressources consommées libérées, le cycle d’offre de ressources se répète afin que davantage de tâches puissent être planifiées.

Haute disponibilité

La haute disponibilité des maîtres Mesos dans un cluster est activée grâce à l’utilisation d’Apache ZooKeeper pour répliquer les maîtres afin de former un quorum. ZooKeeper coordonne également l’élection du leader principal et gère la détection du leader parmi les composants Mesos, y compris les esclaves et les frameworks.

Au moins trois nœuds maîtres sont nécessaires pour une configuration hautement disponible – une configuration à trois maîtres permet de maintenir le quorum en cas de défaillance d’un seul maître – mais cinq nœuds maîtres sont recommandés pour un environnement de production résilient, permettant de maintenir le quorum avec deux nœuds maîtres hors ligne.

Pour en savoir plus sur Apache Mesos, visitez sa page de documentation officielle.

Un aperçu de base de Marathon

Marathon est un framework pour Mesos conçu pour lancer des applications de longue durée et, dans la Mésosphère, remplace un système traditionnel init. Il dispose de nombreuses fonctionnalités qui simplifient l’exécution d’applications dans un environnement en cluster, telles que la haute disponibilité, les contraintes de nœuds, les vérifications de l’état des applications, une API pour la scriptabilité et la découverte de services, et une interface utilisateur Web facile à utiliser. Il ajoute ses capacités de mise à l’échelle et d’auto-guérison à l’ensemble de fonctionnalités de la mésosphère.

Marathon peut être utilisé pour démarrer d’autres frameworks Mesos, et il peut également lancer n’importe quel processus qui peut être démarré dans le shell normal. Comme il est conçu pour les applications de longue durée, il garantira que les applications qu’il a lancées continueront de s’exécuter, même si le ou les nœuds esclaves sur lesquels elles s’exécutent échouent.

Pour en savoir plus sur Marathon, visitez sa page GitHub.

Un aperçu de base de Chronos

Chronos est un framework pour Mesos qui a été développé à l’origine par Airbnb en remplacement de cron. En tant que tel, il s’agit d’un planificateur complet, distribué et tolérant aux pannes pour Mesos, ce qui facilite l’orchestration des tâches, qui sont des collections de tâches. Il comprend une API qui permet de scripter des tâches de planification et une interface utilisateur Web pour une utilisation facile.

Dans Mesosphere, Chronos complimente Marathon car il fournit une autre façon d’exécuter des applications, selon un calendrier ou d’autres conditions, telles que l’achèvement d’un autre travail. Il est également capable de planifier des tâches sur plusieurs nœuds esclaves Mesos et fournit des statistiques sur les échecs et les succès des tâches.

Pour en savoir plus sur Chronos, visitez sa page GitHub.

Un aperçu de base de HAProxy

HAProxy est un équilibreur de charge open source populaire et une solution de proxy inverse. Il peut être utilisé dans la Mésosphère pour acheminer le trafic réseau des hôtes connus, généralement des maîtres Mesos, vers les services réels qui s’exécutent sur les nœuds esclaves Mesos. Les capacités de détection de service de Mesos peuvent être utilisées pour configurer dynamiquement HAProxy pour acheminer le trafic entrant vers les nœuds esclaves backend appropriés.

Pour en savoir plus sur les capacités générales de HAProxy, consultez notre Introduction à HAProxy.

Conclusion

Mesosphere utilise des paradigmes d’infrastructure de serveur qui peuvent sembler inconnus, car il a été conçu avec un fort accent sur le clustering et l’évolutivité, mais j’espère que vous avez maintenant une bonne compréhension de son fonctionnement. Chacun des composants sur lesquels il est basé fournit des solutions aux problèmes couramment rencontrés lors du clustering et de la mise à l’échelle d’une infrastructure de serveur, et Mesosphere vise à fournir une solution complète à ces besoins.

Maintenant que vous connaissez les bases de la mésosphère, consultez le prochain tutoriel de cette série. Il vous apprendra à configurer un cluster de mésosphère prêt pour la production sur Ubuntu 14.04!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.