2014-01-31 1 views
0

Я работаю в пространстве DevOps и в настоящее время поддерживаю чрезмерно сложную систему CI. Целью является тест & сертифицировать несколько артефактов Java против тестов для каждого артефакта и артефактов друг против друга. У нас есть несколько экземпляров Jenkins и сложные пользовательские рабочие процессы, но они имеют одно и то же ограничение: отсутствие управления ресурсами. Мы закончили с кучей чисто технических рабочих Jenkins, чтобы справиться с этими ограничениями, но они не идеальны, и начальный рабочий процесс стал слишком раздутым.Оценка Activiti как непрерывного интеграционного оркестра

Здесь я прошу вашей экспертизы о применимости движка Activiti BPM к процессу CI.

У нас есть следующие проблемы с текущим процессом:

  • Облако узлы могут быть переданы, из одной Дженкинс работы на другую. Если рабочий процесс был завершен посередине (скажем, функциональные тесты не удались по вновь созданному артефакту), тогда мы должны освободить эти узлы.
  • Работа может потреблять несколько ресурсов сами по себе - базы данных, среды из нескольких узлов и т.д. Эти ресурсы должны быть освобождены, когда рабочий процесс будет завершен

В идеале, мы должны быть в состоянии определить этапы рабочего процесса в некоторых DSL и привязать ресурсы к этим шагам. Позже, во время выполнения рабочего процесса, механизм рабочего процесса сможет определить, когда сначала потребуются ресурсы, и запросить их непосредственно перед этим шагом (в соответствии с типом ресурса) из соответствующего пула/поставщика.

После того, как каждый шаг будет завершен, механизм рабочего процесса будет тем, что я называю «сбор мусора» над ресурсами. Он мог вычислять (на основе предоставленного DSL) список шагов, которые по-прежнему доступны из текущего состояния, и список ресурсов, привязанных к этим шагам. После этого можно было бы создать список (в настоящее время выделенные ресурсы МИНУС нужны будущие ресурсы). Этот список пойдет на сбор мусора.

С такой «сборкой мусора» я стараюсь избегать чрезмерно сложной логики управления жизненным циклом ручного ресурса, который будет встроен в определение рабочего процесса и раздует его. Я хочу иметь четкие и понятные (и легко поддерживаемые) рабочие процессы.

Считаете ли вы, что это легко сделать с помощью Activiti или любого другого двигателя BPM?

ответ

1

Andrev,

Это может быть выполнено с ограниченным усилием. Мы создали аналогичные рабочие процессы для обеспечения качества окружающей среды, используя открытый источник BPMS Затмение Stardust http://www.eclipse.org/stardust/

С наилучшими пожеланиями

Роб

Смежные вопросы