Наразі ми розробляємо архітектуру нашої нової хмарної установки Apache Mesos. Мета - об'єднати наші системи, перемістивши різні стеки на одну і ту ж архітектуру. Основні навантаження - це аналітика великих даних за допомогою Apache Spark та нашої корпоративної інфраструктури, включаючи веб-сервери, поштові сервери тощо.
Ідея полягає в тому, щоб запустити наші веб-сервіси в Docker-контейнерах, що працюють над одним із доступних планувальників для Mesos (Marathon / Chronos, Aurora або Singularity). Таким чином, це була б перша рамкова група Mesos. Поруч із нами ми мали б структуру Apache Spark та кілька фреймворків для зберігання даних. Це була б друга група кадрів Mesos. Ми виберемо специфіку після запуску їх паралельно для тестування.
Однак ми не можемо вирішити, на якій основі запустити Месос. В ідеалі ми хочемо виконати його якомога ближче до металу. Ми також хочемо використовувати рішення для оркестрації, щоб переконатися, що демони Mesos & Framework завжди запущені / перезапущені під час відмови. Ми розглядаємо такі варіанти:
1) Запуск Mesos & фреймворків як докерних контейнерів у мінімальній ОС. У цьому відношенні ми зараз схиляємось до CoreOS та Fleet.
2) Запуск Mesos & фреймворків безпосередньо на серверах Ubuntu / Debian. Для цього варіанту ми схиляємось до Формана та Лялечки.
Щодо питання, ми хочемо визначити рішення, яке за важливістю:
- є найменш складним для налаштування
- є найпростішим для обслуговування та постійного оновлення
- має найменші накладні витрати
Раніше ми не працювали з CoreOS, але саме такий варіант ми, здається, прямуємо. Одне велике (суб'єктивне) питання, яке у мене є, це те, що ми запускаємо Mesos на Docker-контейнерах, а потім запускаємо Docker-контейнери на Mesos. Це здається мені "нечистим" і неправильним. Це розгляд без поваги?
Аналогічна думка стосується надмірності між шарами. Щоб пояснити, звідки я берусь, я вважаю за краще, якби Mesos був фактичною ОС, яка просто працює прямо на металі. Здається, що незалежно від того, якою основою ви користуєтесь, ви отримуєте однаковий функціонал на більш ніж одному шарі архітектури (наприклад, CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos). Це неминуче?
Чи є інші хороші варіанти запустити шар нижче Mesos, який ми не розглядали, маючи на увазі наші критерії?