Condor, OGE и Torque могут помочь вам, но только Condor имеет встроенное управление зависимостями с помощью инструмента DAGMan . DAGMan позволяет вам настроить направленный, ациклический график, который описывает ваш рабочий процесс, а менеджер позаботится о том, чтобы выполнять задания в вашем рабочем процессе и оценивать результаты « годен / негоден» на каждом этапе процесса. Кондор относительно независим от платформы, что означает, что DAGMan тоже, и вы, безусловно, можете запустить один дочерний шаг в AIX, когда родительский запущен в Linux или Windows. DAGMan не заботится о том, где выполняются задания, просто о том, что коды выхода проходят или не проходят
Любые советы по выбору программного обеспечения или лучше ли пойти с открытым исходным кодом или коммерческим?
С некоторыми оговорками, я думаю, что бесплатные сообщества в этом пространстве стоит посмотреть.
НГЕ сейчас в странном пространстве. Он больше не может запускать вариант GE, созданный Oracle, и Oracle больше не предоставляет код, который он записывает обратно в GE SCC, но существует несколько форков кода, которые существуют в качестве бесплатных проектов с открытым исходным кодом. В частности, Univa взяла на себя ответственность , нанимая бывших разработчиков Sun GE для продолжения работы над свободно доступным вариантом GE. У Grid Engine есть две вещи: проста в настройке, он может обрабатывать краткосрочные (<2 минуты) задания, не тратя много времени на планирование работ, что замедляет пропускную способность. Это большой недостаток в том, что не очень хорошая поддержка Windows. Некоторые из нас приложили некоторые усилия, чтобы перенести его на Cygwin много лет назад, но это точно не так хорошо, как в native.
Теперь Кондор - мой любимый из трех упомянутых вами технологий. Вокруг Кондора существует сильное сообщество, и программное обеспечение очень развито (> 20 лет). Встроенная поддержка ОС Windows и POSIX означает, что она отлично работает везде. Вышеупомянутый DAGMan - это лишь одна из многих замечательных вещей, которые поставляются с Condor. Это может быть сложное в настройке прикосновение, но как только оно будет запущено и запущено, оно станет надежным. Он обладает невероятно гибким языком для выполнения работы <-> машинного соответствия и построения правил использования для ваших ресурсов. Он также поддерживает динамическое выделение ресурсов на компьютерах, позволяя заданиям выбирать, сколько ресурсов компьютеров им нужно, а затем повторно объявлять разницу как доступную. Он поддерживает глобальные счетчики ресурсов, поэтому вы можете ограничиться такими вещами, как лицензии на программное обеспечение. И, конечно же, у него есть DAGMan, который является невероятно мощным инструментом для управления рабочим процессом. Недостатком Condor является то, что планирование непродолжительных работ может быть обременительным. В идеале вы хотите, чтобы задания выполнялись дольше 2 минут, в противном случае планирование начинает занимать большую часть времени работы в системе.
Крутящий момент немного больше ниши. Я знаю об этом меньше, я боюсь. Это больше похоже на Grid Engine, чем на Condor. @Warren упоминает о платных дополнениях, которые могут расширить возможности базового бесплатного Torque.
Если вы хотите опробовать эти три технологии и посмотреть, как они работают с вашими конкретными рабочими нагрузками, CycleCloud может ускорить создание защищенных виртуализированных пулов, которые предварительно сконфигурированы с помощью Condor, GridEngine или Torque, - поэтому не нужно тратить время на выяснение этих вещей. с вашей стороны. Было бы несколько долларов, чтобы раскрутить небольшие пулы каждой технологии и попробовать их с репрезентативной рабочей нагрузкой. (Отказ от ответственности: я работаю на Cycle Computing, мы делаем CycleCloud)
Хронос выглядит очень перспективно.
Я также добился большого личного успеха, используя Дженкинс в качестве замены хрон. Он прекрасно справляется с выполнением заданий на удаленных серверах. Вот рецензия на нее: http://www.22ideastreet.com/blog/2014/05/02/replace-local-cron-with-jenkins/
источник
В течение последних 4,5 лет я работал с платформой HP Automation Server (nee Opsware) и остальной частью пакета Business Technology Optimization (Network Automation, Operations Orchestration и т. Д.).
Для достаточно большой среды управление заданиями через SA является жизнеспособным (и желательным) инструментом. В сочетании с ОО, заданиями можно управлять с помощью управления изменениями, создания билетов и т. Д.
Вот не такая веселая часть: это дорого (очень дорого). Вы можете проверить некоторые предложения в аналогичном вопросе, который я задал некоторое время назад: инструменты управления и аудита FLOSS Server .
Я бы также сказал, что Torque / Maui / Moab (от Adaptive Computing ) очень крутые: не уверены в ценах, но они также очень гибкие инструменты.
Отказ от ответственности - я работаю на партнера HP BTO и Adaptive
источник
ВНИМАНИЕ! Совсем другое решение проблемы!
хрон является старым и неуклюжим в определенных условиях.
Если вы действительно ищете новые способы составления расписаний, я бы попробовал что-то событие, основанное на промежуточном программном обеспечении для обмена сообщениями. Подумайте RabbitMQ с клиентами на каждом сервере.
Зависимости между хостами можно решить с помощью «очередей уведомлений».
«Реальные» события, основанные на времени, немного сложнее, вот для чего и нужен cron (и он хорош, по крайней мере, в отношении небольших сред). Сложно заполучить идею - предотвратить взлеты. Как в: каждую ночь в 01:00 сделать снимок. Вы можете увидеть некоторые скачки нагрузки или множество неудачных входов в систему в этот самый момент через всю вашу инфраструктуру. Если у вас есть подход, основанный на очереди, вы получите, по крайней мере, некоторое отклонение бесплатно (хотя это не гарантировано - если в какой-то логике это не реализовано).
Суть в том, что без работы в реальном времени нельзя полагаться на такие вещи, как: да, мои резервные копии начнутся в 02:00, а если они все еще будут работать в 04:00, что-то не так. Что легче сделать, так это убедиться, что не выполняется одновременно 2 задания, которые мешают работе. Просто создайте блокирующий агент, который будет использовать только одну работу за раз.
Управляющей частью мог бы быть какой-то приятный веб-интерфейс, где задания можно было бы отправлять либо по требованию, либо - теперь он возвращается к «cron» или вашей любимой реализации - у java-кварцевого планировщика есть детализация по секундам AFAIK - для основанная на времени часть просто использует старый добрый cron :)
Пожалуйста, не принижайте меня за то, что я ОТ - это довольно грубая концепция, но поскольку вопрос не исключает денег, можно также потратить деньги, чтобы получить решение для точных внутренних требований, создавая что-то, а не тратя деньги, покупая что-то, где продавец думает, что это удовлетворяет некоторым требованиям :)
источник
Я использовал Espresso (Cybermation) из CA. Не уверен, что они сейчас это называют. Я также использовал UC4. Они оба работают, стоят больших денег (насколько я понимаю) и могут быть мишкой в обслуживании, но они делают то, что сказано на банке. / Edit - пропустил, что вы говорите, что коммерческие приложения слишком дороги. Я могу определенно согласиться, но для некоторых компаний это того стоит, особенно когда это для бизнес-приложений, которые делают деньги.
источник
Я работал с планировщиком заданий с открытым исходным кодом в качестве опции для замены 2000+ строк центрального crontab в производственной среде. С cron все стало так сложно, что мы не могли определить, какие были окна простоя или как справляться с межсерверными зависимостями. Этот продукт помог, но был немного сложен в настройке.
источник