Лучшая основа для развертывания Mesos

9

В настоящее время мы находимся в процессе разработки архитектуры нашей новой облачной установки Apache Mesos. Цель состоит в том, чтобы объединить наши системы, перенеся разные стеки на одну и ту же архитектуру. Основные рабочие нагрузки - это анализ больших данных с использованием Apache Spark и нашей корпоративной инфраструктуры, включая веб-серверы, почтовые серверы и т. Д.

Идея состоит в том, чтобы запускать наши веб-службы в контейнерах Docker, работающих поверх одного из доступных планировщиков для Mesos (Marathon / Chronos, Aurora или Singularity). Таким образом, это будет первая каркасная группа Mesos. Кроме того, у нас будет платформа Apache Spark и несколько баз данных для хранения данных. Это будет вторая группа платформ Mesos. Мы выберем специфику после запуска их всех параллельно для тестирования.

Однако мы не можем решить, на каком основании запускать сам Mesos. В идеале мы хотим запустить его как можно ближе к металлу. Мы также хотим использовать решение для оркестровки, чтобы гарантировать, что демоны Mesos & framework всегда запускаются / перезапускаются при сбое. Варианты, которые мы рассматриваем, следующие:

1) Запуск Mesos и фреймворков в виде док-контейнеров в минимальной ОС. В этом отношении мы сейчас склоняемся к CoreOS и Fleet.

2) Запуск Mesos и фреймворков непосредственно на серверах Ubuntu / Debian. Для этого варианта мы склоняемся к Форману и Кукольному.

Что касается вопроса, мы ищем решение, которое в порядке важности:

  • наименее сложный в настройке
  • проще всего поддерживать и обновлять
  • имеет наименьшие накладные расходы

Мы не работали с CoreOS раньше, но это вариант, к которому мы, похоже, движемся. Одна большая (субъективная) проблема, с которой я столкнулся, заключается в том, что мы запускаем Mesos на контейнерах Docker, а затем запускаем контейнеры Docker на Mesos. Это кажется "нечистым" и неправильным для меня. Это рассмотрение безосновательно?

Аналогичная мысль касается избыточности между слоями. Чтобы объяснить, откуда я, я бы предпочел, чтобы Mesos была настоящей ОС, которая просто работает прямо на вершине металла. Кажется, что независимо от того, какую основу вы используете, вы получаете одинаковую функциональность на нескольких уровнях архитектуры (например, CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos). Это неизбежно?

Есть ли другие хорошие варианты для запуска слоя ниже Mesos, которые мы не рассмотрели, учитывая наши критерии?

awishformore
источник
Это звучит сложно. Какова привлекательность Месоса в этом контексте?
ewwhite
Mesos хорошо дополняет большие данные / высокопроизводительные вычисления, такие как Spark или даже Hadoop, но я не вижу смысла вкладывать в это все , особенно веб или почтовые сервисы.
Майкл Хэмптон
@ewwhite Привлекательность в этом контексте заключается в том, что мы можем распределять доступные аппаратные ресурсы между всеми приложениями без необходимости разделения нашего кластера. Если мы запустим две конфигурации, нам придется вручную распределять ресурсы между ними.
awishformore
@MichaelHampton Мы считаем, что архитектуры Mesos - это путь для облачных вычислений, но я ни в коем случае не утверждаю, что это единственный ответ. Тем не менее, должно быть очевидно, что управлять кластером проще, чем управлять тем же кластером, плюс некоторые дополнительные функции на стороне.
awishformore
1
Это может стоить посмотреть: mesosphere.com/product - корпоративная версия, очевидно, будет пригодна для использования на голом металле.
Мэри

Ответы:

2

Настройка и запуск служб в Mesos может быть сложной или простой операцией, и вы должны сначала определить схему служб, под которой вы хотите запускать ее, в зависимости от ваших потребностей и целей, чтобы получить душевное равновесие, которое вы хотите.

Я запускаю установку из> 70 машин и различных сервисов под HAProxy для динамической балансировки нагрузки с помощью Mesos-DNS и Marathon, шлюза Api, Chronos, Jenkins, Docker, Collectd и Graphite, ...

Теперь, чтобы ответить на ваши прямые вопросы:

  • Mesos наименее сложен в настройке с использованием вашего «любимого» дистрибутива Linux, с которым вы наиболее знакомы.
  • Проще всего поддерживать дистрибутив, с которым вы больше всего знакомы.
  • Что касается накладных расходов, Mesos - это программная система, которая использует базовые библиотеки ОС и другие программные функциональные возможности, помимо своей собственной, и наличие Mesos в качестве ОС (работающей как с аппаратным, так и с программным обеспечением ...) является своего рода совершенно неправильной картиной.

Поэтому мой лучший ответ для вас - использовать ваш любимый дистрибутив Linux и включить Mesos или, если вы хотите узнать что-то новое и, возможно, быстро и без усилий, использовать DCOS и CoreOS с открытым исходным кодом .

Breign
источник