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

В настоящее время мы находимся в процессе разработки архитектуры нашей новой облачной установки 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, которые мы не рассмотрели, учитывая наши критерии?

1 ответ

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

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

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

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

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

Другие вопросы по тегам