Bien connaître Mesosphere Marathon
Mesosphere Marathon est un système de gestion de conteneurs, avec d’importantes capacités de dimensionnement, qui permet aux entreprises de déployer et d’automatiser les technologies Apache Mesos et Docker.
Marathon est une plateforme Open Source d’orchestration de conteneurs pour les environnements de production pour Apache Mesos et l’outil Datacenter Operating System (DC/OS) de Mesosphere. La plateforme supporte les déploiements d’applications en conteneur et favorise l’intégration continue et la gestion d’environnements Cloud.
Pourquoi utiliser Marathon ?
Marathon propose plusieurs runtimes de conteneurs, et supporte à la fois Apache Mesos (via cgroups) et les conteneurs Docker.
Le système automatise certains processus qui sont généralement effectués à la main. Il propose une interface Web qui permet par exemple de lancer et de contrôler les images Docker ou encore de mettre à jour les applications (et leurs configurations) en cours.
Une fonction clé de cette plateforme d’orchestration de conteneurs est sa capacité à éliminer les interruptions de services. Le système dispose d’un mode haute-disponibilité par défaut qui maintient les applications opérationnelles même lorsqu’une instance devient indisponible. Pour cela, le système fait tourner plusieurs instances de Marathon qui pointent vers un ensemble Zookeeper. Ce dernier détermine automatiquement un leader quand l’instance leader en place tombe.
Marathon offre des possibilités en matière de contrôle et d’optimisation de l’exécution d’une application. Il permet par exemple de distribuer une tâche sur plusieurs nœuds (pour la tolérance aux pannes) ou encore d’exécuter toutes les tâches d’une application sur un seul nœud. Les utilisateurs peuvent contrôler l’état de santé d’une application via HTTP et TCP. Les métriques sont collectées dans un répertoire sur lequel on peut effectuer des requêtes, ou via des outils comme Graphite, DataDog et StatsD.
Mesophere Marathon propose aussi un bus d’événements qui rend le système automatiquement réactif – par la programmation et de façon personnalisée - à d’éventuelles modifications au niveau des applications.
L’une de ses caractéristiques est de s’appuyer sur une architecture dynamique de plug-ins pour faciliter son intégration dans les environnements d'entreprises. Côté sécurité, l’authentification des utilisateurs et le contrôle d’accès par rôle y ont été intégrés.
Marathon est pré-installé avec Mesosphere DC/OS, et peut ainsi mieux passer à l’échelle. Ce tandem permet enfin de gérer des systèmes très complexes qui fonctionnent sur des clusters partagés ou encore des applications Web ou des microservices.
Lorsqu’il est installé au côté de DC/OS, Marathon propose d’autres fonctions, comme le routage IP virtuel (qui permet d’équilibrer automatiquement les charges et le reroutage en cas de défaillance) et un vrai multi-tenant.
Cela s’adresse à quelles entreprises ?
Généralement, les entreprises utilisent Marathon avec DC/OS pour administrer des conteneurs sur des centaines ou des milliers de nœuds dans un cloud public, dans leur propre datacenter ou dans des environnements hybrides. Azure Container Service de Microsoft s’appuie par exemple sur Mesophere Marathon pour son moteur d’orchestration de conteneurs – il peut être dimensionné sur plusieurs milliers de conteneurs.
En plus des conteneurs Docker, Mesosphere Marathon peut lancer presque toutes formes d’applications, y compris des applications reposant sur la JVM ou encore des scripts Ruby. Cela permet de passer d’une architecture dite legacy à des systèmes bâtis sur des conteneurs.
Marathon est Open Source et disponible sur le site de Mesosphere. Une page GitHub permet de centraliser les demandes et le rapport de bugs. Il existe également un Google Group « marathon-framework » .