Seidor
Mesosphere DC/OS

25 mars 2024

Mesosphere DC/OS

Révolution dans la gestion des clusters avec DC/OS

Aujourd'hui, tout administrateur système connaît Apache Mesos, mais peut-être pas autant la société Mesosphere et son projet DC/OS (DataCenter Operating System).

Pour ceux qui n'ont pas entendu parler d'Apache Mesos, sachez qu'il s'agit d'un logiciel de gestion de clusters qui fournit une isolation des ressources. Il permet d'exécuter plusieurs systèmes distribués sur un même cluster de machines et de partager les ressources de manière dynamique et efficace. Dans ce processus, les nœuds maîtres, esclaves et le bootstrap interviennent. Ces nœuds montent l'infrastructure et décident des rôles des autres nœuds.

Mesosphere a poussé le concept plus loin et a créé DC/OS, un système d'exploitation pour centres de données. DC/OS permet la gestion de plusieurs machines comme s'il s'agissait d'une seule. De plus, il automatise la gestion des ressources, facilite la communication entre les processus et simplifie l'installation et la gestion des services distribués. Ce système inclut une interface web intuitive et permet également d'interagir via CLI.

Nous n'exagérons pas en disant qu'il simplifie l'installation des services distribués. En quelques clics, nous pouvons disposer de plus de 40 services tels que Cassandra, Jenkins, Chronos, Kafka, Spark, Zeppelin, entre autres. Cependant, étant donné que DC/OS n'a pas encore un an de vie commerciale, avec le temps, il y en aura beaucoup plus.

Architecture de DC/OS

On ne peut pas dire que DC/OS est un système d'exploitation, car ceux-ci gèrent les ressources d'une seule machine. DC/OS est un système d'exploitation distribué qui abstrait les ressources d'un ensemble de machines et fournit des services communs.

Le noyau de DC/OS est composé de machines Mesos, les maîtres et les agents (esclaves). À un niveau plus élevé, nous avons les composants du système, tels que les services DNS et Marathon. À un niveau supérieur, nous avons la couche utilisateur où résident tous les processus et services.

Intégration avec Dockers

DC/OS est un système facilement intégrable avec la technologie des conteneurs. Cependant, pour l'intégration des microservices, un orchestrateur de dockers sera nécessaire.

Pour Mesos comme pour DC/OS en particulier, l'orchestrateur de conteneurs que nous devrons utiliser est Marathon, qui s'intègre facilement et crée une base solide sur laquelle les microservices et les applications web seront lancés.

En fait, DC/OS inclut déjà Marathon comme composant principal pour orchestrer à la fois les services avec dockers et les charges de travail qui ne fonctionnent pas avec des conteneurs. Marathon vous donne la possibilité de programmer des tâches infinies sur des milliers de nœuds en parallèle.

Évolutivité et haute disponibilité

Comme on peut s'y attendre, DC/OS est hautement évolutif, aussi bien manuellement en ajoutant et en supprimant les instances nécessaires qu'en configurant un modèle d'auto-scaling basé sur le nombre de sessions via le load balancer de Marathon.

DC/OS dispose d'une haute disponibilité, étant donné le nombre d'instances sur lesquelles il fonctionne, mais même pour les services qu'il gère, il est également possible de les configurer avec une haute disponibilité. Pour cela, Marathon surveille tous les services et en cas de panne, ils sont redémarrés.

Concepts de Sécurité

Étant donné que le noyau de DC/OS est basé sur Linux, le système applique toutes les meilleures pratiques de celui-ci. En outre, pour le niveau des services et des processus, trois zones de sécurité distinctes sont appliquées :

Zone d'administration : Zone accessible via HTTP/HTTPS et par SSH, qui fournit un accès aux nœuds maîtres. Elle sert également de proxy inverse pour les autres nœuds du cluster.

Zone privée : C'est un réseau qui n'est pas routable et qui n'est accessible que depuis la zone d'administration ou depuis la zone publique via le routeur edge. Dans cette zone, les nœuds agents (esclaves) sont généralement déployés.

Zone publique : C'est là où s'exécutent les applications nécessitant un accès public. Le routeur edge est celui qui envoie le trafic vers les nœuds agents situés dans le réseau de la zone privée.

DC/OS sur Amazon Web Services

Mesosphere met à disposition des utilisateurs un modèle CloudFormation pour la création et la configuration automatique de l'infrastructure, l'inconvénient étant qu'il ne s'agit pas d'une configuration personnalisée et qu'il ne vous donne que les options de choisir entre 1 ou 3 maîtres et dans quelle région vous souhaitez le déployer.

Nous vous recommandons de suivre la configuration avancée pour pouvoir déployer DC/OS à votre mesure.

En résumé, voici quelques avantages d'utiliser DC/OS et Mesos :

  • L'exécution de tâches avec des charges incrémentales à travers tout le cluster
  • Avoir une configuration au niveau global, sur les masters et les slaves, rend la configuration plus simple à administrer.
  • La facilité de lancer un service et/ou une application, en plus de nous offrir des propriétés telles que le scaling horizontal et la tolérance aux pannes.

En conclusion

DC/OS utilise Mesos en dessous pour l'exécution des tâches et des frameworks. Par défaut, lors de l'installation de DC/OS, Mesos est installé, car comme nous l'avons mentionné, DC/OS ajoute certaines fonctionnalités à Mesos.

Lorsque nous exécutons une tâche sur un agent Mesos, celui-ci utilise les cgroups (conteneurs de processus) pour restreindre l'utilisation du CPU et de la RAM, ce qui aide à empêcher une tâche de dépasser les ressources assignées.

Les frameworks dans Mesos sont une application qui utilise l'API de Mesos pour recevoir des offres de ressources de Mesos et répondre aux offres de ressources pour indiquer à Mesos d'exécuter des tâches si le framework nécessite des tâches à exécuter et que l'offre dispose de ressources suffisantes.

Il est important de préciser qu'un framework peut avoir une quantité "n" de tâches, nous pouvons le voir comme si un framework était le processus parent et qu'il avait des processus qui agiraient comme les enfants.