Мезо Фреймворк

Я хочу распространять контейнеры Docker в кластере с помощью java и определять зависимости, чтобы, когда один контейнер будет готов, я мог проанализировать полученный результат в своем java-коде. Есть много фреймворков mesos, которые могут достичь этого, и я не уверен, какой из них выбрать: Marathon, Singularity, Chronos, Aurora.

Что я узнал до сих пор:

У Marathon действительно хороший клиентский API Java, но он используется для долгосрочных задач (не знаю, является ли это проблемой, потому что мои задачи не будут выполняться так долго), и я не думаю, что смогу определить такую ​​​​зависимость. Если бы я использовал марафон, мне пришлось бы опросить статус приложения. У Chronos нет java api (по крайней мере я не нашел). Так что я могу выбирать между Авророй и Сингулярностью.

Может ли кто-нибудь помочь и порекомендовать мне один из них для моего случая использования.


person Whatever    schedule 11.02.2015    source источник


Ответы (3)


Chronos (как и Marathon) написан на Scala, поэтому его легко интегрировать с любой JVM- основанное приложение. Более того, они оба (вероятно, все 4 на самом деле) имеют REST API, поэтому вы можете просто свернуть свои действия/запросы, независимо от языка реализации каждого приложения/службы.

В вашем случае вы, вероятно, предпочтете Chronos марафону, так как вы ожидаете, что ваши задачи будут завершены (а не перезапущены). Марафон предназначен для длительных (марафон, бег... понятно?) задач, поэтому он перезапустит неудачную/выполненную задачу. Chronos похож на распределенный cron с зависимостями, поэтому вы можете планировать свои задания, а затем добавлять зависимые задания для запуска после завершения предыдущих заданий, создавая произвольные DAG заданий.

Я позволю другим высказаться об Aurora и Singularity. Я думаю, что они оба поддерживают cron-подобные задания.

person Adam    schedule 12.02.2015

Apache Aurora добавил поддержку Docker в выпуск 0.7.0 за февраль и может управлять как долго работающими службами, так и cron с помощью одного и того же планировщика. Он также написан на Java.

Разработчик, предоставивший эту функцию, провел отличный технический доклад о том, как они планируют контейнеры Docker с помощью Aurora. Хотя примеры, представленные в докладе, предназначены для долго работающих служб, в конфигурацию задания нужно внести лишь небольшое изменение, чтобы указать службу вместо cron.

person Dave Lester    schedule 31.05.2015

Хронос для этого подходит. Вы можете создавать DAG зависимостей в Chronos. Однако он не предоставляет механизмов для передачи параметров из одного задания в другое. Вы должны сериализовать и десериализовать материал в БД или общем хранилище в кластере.

person Nitin Goel    schedule 12.02.2015