Une introduction à la mésosphère

Qu’est-ce que la mésosphère?

Mesosphere est une solution logicielle qui étend les capacités de gestion de clusters d’Apache Mesos avec des composants supplémentaires pour offrir un moyen nouveau et novateur de gestion des infrastructures de serveur. En combinant plusieurs composants avec Mesos, tels que Marathon et Chronos, Mesosphere permet de dimensionner facilement les applications en résumant bon nombre des défis associés à la mise à l’échelle.

Mesosphere fournit des fonctionnalités telles que la planification d’applications, la mise à l’échelle, la tolérance aux pannes et l’auto-réparation. Il fournit également la découverte de services d’application, l’unification des ports et l’élasticité des points finaux.

Pour donner une meilleure idée de la façon dont Mésosphère fournit les fonctionnalités susmentionnées, nous expliquerons brièvement le rôle de chaque composant clé de Mésosphère, à commencer par Apache Mesos, et montrerons comment chacun est utilisé dans le contexte de 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 Mesosphere.

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

  • Extensibilité à plus de 10 000 nœuds

  • Isolement des ressources pour les tâches via des conteneurs Linux

  • Planification efficace des ressources de la CPU et de la mémoire

  • Maître hautement disponible via Apache ZooKeeper

  • Interface utilisateur Web pour surveiller l’état du cluster

Mesos Architecture

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:

  • * Master daemon *: fonctionne sur un noeud 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 aux frameworks

  • * Framework *: également appelée application Mesos, est composée d’un scheduler, qui s’enregistre auprès du maître pour recevoir la ressource offers, et d’un ou plusieurs executors, qui lance tasks sur les esclaves. Marathon, Chronos et Hadoop sont des exemples de frameworks Mesos.

  • * Offre *: 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 infrastructures enregistrées.

  • * Tâche *: unité de travail planifiée par un framework et exécutée sur un nœud esclave. Une tâche peut être une commande, un script bash, une requête SQL ou un travail Hadoop.

  • * Apache ZooKeeper *: logiciel utilisé pour coordonner les nœuds principaux

image: https: //assets.digitalocean.com/articles/mesosphere/mesos_architecture.png [Mesos Architecture]

  • Remarque: * “ZK” représente ZooKeeper dans ce diagramme.

Cette architecture permet à Mesos de partager les ressources du cluster entre des applications présentant un niveau de granularité élevé. 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 quelle offre utiliser. Une fois que le planificateur d’infrastructure a décidé des offres qu’il souhaite utiliser, il indique à Mesos quelles tâches doivent être exécutées et ce dernier les lance sur les esclaves appropriés. Une fois les tâches terminées et les ressources utilisées libérées, le cycle d’offre de ressources se répète afin de pouvoir planifier davantage de tâches.

La haute disponibilité

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

Au moins trois nœuds maîtres sont requis 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, ce qui permet de maintenir le quorum avec deux nœuds maîtres hors ligne.

Pour plus d’informations sur Apache Mesos, visitez its page de documentation officielle.

Un aperçu de base du marathon

Marathon est un framework pour Mesos conçu pour lancer des applications de longue durée et, dans Mesosphere, remplace un système traditionnel + init +. Il comporte 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œud, les contrôles de l’intégrité des applications, une API pour la scriptabilité et la découverte de services, ainsi qu’une interface utilisateur Web conviviale. Il ajoute ses fonctionnalités de redimensionnement et d’auto-guérison à l’ensemble des fonctionnalités de Mésosphère.

Marathon peut être utilisé pour démarrer d’autres frameworks Mesos, et il peut également lancer tout processus pouvant être démarré dans le shell standard. Comme il est conçu pour des applications de longue durée, il garantit que les applications qu’il a lancées continueront de s’exécuter, même en cas d’échec du ou des nœuds esclaves sur lesquels elles s’exécutent.

Pour plus d’informations sur Marathon, visitez la page its 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, qui facilite l’orchestration des travaux, qui sont des ensembles de tâches. Il comprend une API qui permet la création de scripts pour les tâches de planification et une interface utilisateur Web pour une utilisation simplifiée.

Dans Mesosphere, Chronos complimente Marathon car il fournit un autre moyen 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 travaux sur plusieurs nœuds esclaves Mesos et fournit des statistiques sur les échecs et les succès des travaux.

Pour plus d’informations sur Chronos, visitez la page its GitHub.

Un aperçu de base de HAProxy

HAProxy est une solution d’équilibrage de charge et de proxy inverse à code source libre. Il peut être utilisé dans Mesosphere pour acheminer le trafic réseau depuis des hôtes connus, généralement des maîtres Mesos, vers les services exécutés sur des nœuds esclaves Mesos. Les fonctions de découverte de service de Mesos peuvent être utilisées pour configurer dynamiquement HAProxy afin qu’il achemine le trafic entrant vers les nœuds esclaves d’endroit appropriés.

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

Conclusion

Mesosphere utilise des paradigmes d’infrastructure de serveur qui peuvent sembler peu familiers, car ils ont été conçus avec un accent particulier mis sur le clustering et l’évolutivité, mais nous espérons que vous avez maintenant une bonne compréhension de son fonctionnement. Chacun des composants sur lesquels il repose fournit des solutions aux problèmes couramment rencontrés lors de la mise en cluster 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 comment mettre en place une production prête à l’emploi Cluster Mesosphere sur Ubuntu 14.04!