Meilleure fondation pour le déploiement de Mesos

9

Nous sommes actuellement en train de concevoir l'architecture de notre nouvelle configuration cloud Apache Mesos. L'objectif est d'unifier nos systèmes en déplaçant différentes piles sur la même architecture. Les principales charges de travail sont l'analyse des mégadonnées utilisant Apache Spark et notre infrastructure d'entreprise, y compris les serveurs Web, les serveurs de messagerie, etc.

L'idée est d'exécuter nos services Web dans des conteneurs Docker fonctionnant au-dessus de l'un des planificateurs disponibles pour Mesos (Marathon / Chronos, Aurora ou Singularity). Ce serait donc le premier groupe cadre Mesos. A côté, nous aurions le framework Apache Spark et plusieurs frameworks de base de données pour le stockage des données. Ce serait le deuxième groupe de frameworks Mesos. Nous choisirons les détails après les avoir tous exécutés en parallèle pour les tests.

Nous avons toutefois du mal à décider sur quelle base exécuter Mesos lui-même. Idéalement, nous voulons l'exécuter le plus près possible du métal. Nous voulons également utiliser une solution d'orchestration pour nous assurer que les démons Mesos et framework sont toujours en cours d'exécution / redémarrés en cas d'échec. Les options que nous envisageons sont les suivantes:

1) Exécution de Mesos et des frameworks en tant que conteneurs Docker dans un système d'exploitation minimal. À cet égard, nous nous tournons actuellement vers CoreOS et Fleet.

2) Exécuter Mesos et les frameworks directement sur les serveurs Ubuntu / Debian. Pour cette option, nous nous penchons vers Foreman et Puppet.

Quant à la question, nous cherchons à identifier la solution qui, par ordre d'importance:

  • est le moins complexe à configurer
  • est le plus facile à entretenir et à tenir à jour
  • a le moins de frais généraux

Nous n'avons jamais travaillé avec CoreOS auparavant, mais c'est l'option vers laquelle nous nous dirigeons. Un gros problème (subjectif) que j'ai avec ceci est que nous exécutons Mesos sur des conteneurs Docker puis nous exécutons des conteneurs Docker sur Mesos. Cela me semble "impur" et mal. Cette considération est-elle sans mérite?

Une pensée similaire concerne la redondance entre les couches. Pour expliquer d'où je viens, je préférerais que Mesos soit un véritable système d'exploitation qui fonctionne juste au-dessus du métal. Il semble que peu importe la base que vous utilisez, vous vous retrouvez avec la même fonctionnalité prévue sur plus d'une couche de l'architecture (c'est-à-dire CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos). Est-ce inévitable?

Y a-t-il d'autres bonnes options pour exécuter la couche sous Mesos que nous n'avons pas envisagées, en gardant à l'esprit nos critères?

awishformore
la source
Cela semble complexe. Quel est l'attrait de Mesos dans ce contexte?
ewwhite
Mesos complète bien le Big Data / HPC, comme Spark ou même Hadoop, mais je ne vois pas l'intérêt de tout mettre en dessous, en particulier les services Web ou de messagerie.
Michael Hampton
@ewwhite L'attrait dans ce contexte est que nous pouvons répartir les ressources matérielles disponibles entre toutes les applications sans avoir à séparer notre cluster. Si nous exécutons deux configurations, nous devrons répartir manuellement les ressources entre elles.
awishformore
@MichaelHampton Nous pensons que les architectures Mesos sont la voie à suivre pour le cloud computing, mais je ne prétends en aucun cas que c'est la seule réponse. Il devrait être évident, cependant, qu'il est plus facile de gérer sur un cluster que de gérer le même cluster plus quelques éléments supplémentaires sur le côté.
awishformore
1
Cela pourrait valoir le coup d'œil: mesosphere.com/product - l'édition entreprise sera apparemment viable pour être fournie sur du métal nu.
Mary

Réponses:

2

La configuration et l'exécution de services sous Mesos peuvent être une opération complexe ou facile, et vous devez d'abord définir un schéma de services que vous souhaitez exécuter sous celui-ci, en fonction de vos besoins et de vos objectifs, pour obtenir l'âme souhaitée.

J'exécute une configuration de> 70 machines et une variété de services différents sous HAProxy pour l'équilibrage de charge dynamique avec Mesos-DNS et Marathon, passerelle Api, Chronos, Jenkins, Docker, Collectd et Graphite, ...

Maintenant, pour répondre à vos questions directes:

  • Mesos est moins complexe à configurer en utilisant votre distribution Linux « favori » que vous connaissez le mieux.
  • La distribution la plus facile à entretenir est à nouveau la distribution que vous connaissez le mieux.
  • En ce qui concerne les frais généraux, Mesos est un système logiciel qui utilise les bibliothèques de système d'exploitation sous-jacentes et d'autres fonctionnalités logicielles à part la sienne et avoir Mesos comme système d'exploitation (fonctionnant à la fois avec le matériel et les logiciels ...) est une sorte d'image complètement fausse.

Donc, ma meilleure réponse pour vous est d'utiliser votre distribution Linux préférée et de mettre Mesos, ou si vous souhaitez apprendre quelque chose de nouveau et éventuellement rapide et sans effort, utilisez (open-source) DCOS et CoreOS .

Breign
la source