30.10.24

Обновления октября – Camunda 7.22 и Camunda 8.6

10 мин · Обучающие

Всем привет! 


На связи Мстислав, архитектор решений компании Реюнико и сегодня я расскажу об изменениях, вышедших в октябрьских обновлениях Camunda Platform. Изменения представлены в порядке убывания полезности / важности на основе субъективной оценки автора :-).


Camunda 8.6


Движок


Воскрешение Execution Listeners. Это одно из самых ожидаемых нововведений процессного ядра Camunda 8. Execution Listeners (листенеры, дословно – "слушатели исполнения") появились в Camunda 7 и реализовывались как делегатный код на Java, выражение JUEL или скрипт (JavaScript, Groovy). Назначение листенеров – спрятать техническую логику, чтобы она не усложняла диаграмму процесса. С их помощью удобно менять статусы связанных с процессом бизнес-объектов, отправлять уведомления участникам процесса, работать с контекстом процесса и вообще выполнять разные технические действия, неочевидные для бизнес-пользователей.


В Camunda 8, по причине её архитектурных особенностей, листенеры реализуются… вы угадали – точно так же, как и обычные Service Task, в виде Job Worker'ов. 


Как и в Camunda 7, листенеры могут быть установлены на любой элемент BPMN – шлюз (gateway), событие (event), активность (activity), поток выполнения (sequence flow) и даже на сам процесс! Благодаря листенерам становится возможным вызывать бизнес-логику в таких элементах как, например None Event и Manual Task.

Camunda 8 Execution Listeners


Листенеры могут быть установлены на два события, выполняемые:


  • Start – перед элементом BPMN;

  • End – после элемента BPMN.


Camunda 8 Execution Listeners


Пока бизнес-логика, вызываемая в листенере, не будет выполнена, процесс приостановит свое исполнение.


В отличие от задач, листенеры имеют определенные ограничения, ознакомиться с которыми можно здесь.


В целом, это одна из наиболее полезных возможностей, появившихся в 8.6. Ждем с  нетерпением возвращения Task Listeners!


Camunda Process Test (CPT)  – новая библиотека для разработчиков Java / Spring Boot, позволяющая тестировать описания процессов удобнее, чем уже существующая Zeebe Process Test. В целом стиль написания тестов стал больше похож на Camunda BPM Assert, использующуюся в Camunda 7.


Self Managed


Лицензирование


Как и обещалось ранее, лицензионная политика в отношении Self Managed Camunda 8 поменялась фундаментально. В версиях 8.0-8.5, процессный движок Zeebe можно было свободно использовать в продуктивной среде (для использования Operate, Tasklist и прочего требовалась Enterprise лицензия). Начиная с версии 8.6 для запуска практически всех компонентов Camunda 8 (включая Zeebe) в  промышленную эксплуатацию нужна лицензия. Для сред разработки лицензия не требуется (free for development/non-production purposes).


Предполагается, что эти изменения упорядочат и упростят лицензирование компонентов Camunda 8, а также позволят предоставлять пользователям всю платформу в виде единой сборки (single binary), например для целей тестирования и разработки. 


Camunda 8 Run  


Теперь разработчикам будет проще развернуть собственную "песочницу" Camunda 8 – по аналогии с 7-й версией платформа доступна в виде единой сборки, включающей в себя как кластер Zeebe, так и вспомогательные компоненты (Operate, Tasklist, коннекторы и Elasticsearch). 


Требования к среде – наличие Java 21+ и Desktop Modeler. Сборка доступна для платформ: Linux, MacOS (M1, Intel), Windows. Качаем более чем гигабайтный архив и надеемся, чтобы рабочий ноутбук не помер от нагрузки: Waiting for Elasticsearch to start. N retries left.


Camunda 8 Run Fail to run


Operate


Появились новые важные фичи, облегчающие работу оператора.


  • Batch Instance Modification – массовое изменение экземпляров процесса. 

  • Автоматический маппинг элементов описаний процесса при миграции (Automapping for process instance migration) – реанимирован функционал, имевшийся в Camunda 7 Enterprise Cockpit. Он позволяет автоматически сопоставить элементы исходной и целевой моделей процесса при разработке инструкций для миграции.


Camunda 8 Migration Mapping



Tasklist


Теперь можно устанавливать приоритеты пользовательских задач. Задать приоритет для пользовательских задач реализуемых как Zeebe User Task на этапе моделирования (extension-элемент zeebe:priorityDefinition). Приоритет представляет собой целочисленное значение от 0 до 100 (по-умолчанию = 50).


Поменять приоритет созданных задачи можно непосредственно в Tasklist.


Camunda 8 User Task Priority


Web Modeler


  • Появилась возможность просматривать используемые в модели переменные процесса с указанием имени переменной, типа, области видимости и связанного с ней элемента BPMN. Со слов вендора эта фича также доступна в Desktop Modeler, но в свежей версии 5.28 обнаружить её не удалось.

  • Можно просмотреть изменения XML в привязке к версии модели (майлстоуну).

  • Функции Undo/Redo теперь выведены на панель инструментов.

  • Синхронизация с GitHub.



Camunda 7.22


А как же обстоят дела со старой доброй Camunda 7, спросите вы?


Вендор заботливо предупреждает, что Camunda 7 кончится (end of life) через год, в октябре 2025 года с релизом 7.24. С этого момента новые версии выходить перестанут. Security-патчи будут доступны для Enterprise-клиентов в зависимости от типа соглашения о поддержке до 2027 или 2030 гг.  


  • Обновлены поддерживаемые среды (наиболее примечательны поддержка Tomcat 10 и Spring Boot 3.3)

  • Docker-образ Camunda 7 Run теперь включает в себя минимально необходимые настройки для включения SSO с использование Spring Security OAuth2.

  • Исторические экземпляры задач можно отбирать по новому полю root process ID – это позволяет отобрать все задачи, запущенные в рамках дочерних процессов по процессу-родителю (ACT_HI_PROCINST.RESTARTED_PROC_INST_ID_).

  • Для задач как в рантайме, так и в истории добавлено поле TASK_STATE_, что позволяет отследить, как менялся статус задачи (Created, Updated, Completed, etc)

  • Для HTTP-коннектора теперь можно обрабатывать ошибки 4xxx и 5xxx без написания дополнительных скриптов.



Как обновиться на последнюю версию? Задайте вопрос на нашем форуме.