Я пытаюсь оборачивать голову Apache Mesos и нуждаюсь в разъяснении по нескольким пунктам.
Мое понимание Mesos заключается в том, что он является исполняемым, который устанавливается на каждом физическом/виртуальном сервере ( "node" ) в кластере и затем предоставляет Java API (каким-то образом), который обрабатывает каждый отдельный node как коллективный пул вычислительных ресурсов (CPU/RAM/и т.д.). Следовательно, для программ, кодирующих Java API, они видят только один набор ресурсов и не должны беспокоиться о том, как/где этот код развертывается.
Итак, для одного, я мог бы быть принципиально неправильным в моем понимании здесь (в этом случае, пожалуйста, поправьте меня!). Но если я нахожусь в цель, то как Java API (предоставляемый Mesos) позволяет Java-клиентам использовать эти ресурсы?!? Может ли кто-нибудь дать конкретный пример Мезоса в действии?
Update
Взгляните на мой ужасный рисунок ниже. Если я правильно понимаю архитектуру Mesos, у нас есть кластер из 3-х физических серверов (phys01
, phys02
и phys03
). В каждом из этих физических объектов работает хост Ubuntu (или что-то еще). Через гипервизор, скажем, Xen, мы можем запускать 1+ виртуальных машин.
Мне интересны Docker и CoreOS, поэтому я буду использовать их в этом примере, но я предполагаю, что то же самое можно было бы применить к другим неконтейнерным настройкам.
Итак, на каждой виртуальной машине мы имеем CoreOS. Выполнение на каждом экземпляре CoreOS является исполняемым/сервером Mesos. Все узлы Mesos в кластере видят все под ними в виде единого пула ресурсов, а артефакты могут быть произвольно развернуты в кластере Mesos, а Mesos определит, какой экземпляр CoreOS фактически будет использовать их.
Работа над Mesos - это "структура Mesos", такая как Marathon или Kubernetes. Внутри Кубернете находятся различные контейнеры Докера (C1
- C4
).
Является ли это понимание Месоса более или менее правильным?