- PVSM.RU - https://www.pvsm.ru -
Привет, меня зовут Денис, я работаю в Тинькофф и занимаюсь BPM-системами. В этой статье я расскажу, как мигрировать с легаси систем а-ля IBM BPM на опенсорс движок процессов Camunda на примере большого процесса. А в конце приглашу вас на четвертый митап [1] по Camunda, который пройдет 27 февраля в Тинькофф, в Москве (м. Водный Стадион) вечером.
Идея про то, что через схемки можно программировать, хорошо продается [2], рынок растёт из года в год. Некоторые предприятия получают действительно классные результаты. [3]
Чтобы делать хорошие проекты и успешно продаваться, BPMS-системы, помимо “поедания” BPMN-файлов, еще должны уметь:
У нас в Тинькофф использовалась BPMS IBM BPM, которая помогала нам развиваться за счёт своей комплексности и приемлемого покрытия указанных фич. Но мы решили от неё отказаться.
Мы поняли, что от большого функционала BPMS системы мы используем только:
Прочие вещи были вынесены в другие системы, например:
Были и общие вопросы, которые нам не нравились:
Отдельно стоит сказать про проблему шумных соседей — лицензионные ограничения заставляли нас пихать множество продуктов в один кластер. Мы старались переиспользовать общий код внутри разных бизнесовых процессов, что создавало сложности с его модификацией.
Например, был код отправки смсок, которым пользовались 2 продукта — РКО и аутсорсная бухгалтерия. Раньше текст был захардкожен на уровне компонента, но теперь процессу “аутсорсной бухгалтерии” захотелось передавать текст смс-ки из процесса. А процессу РКО этого не хотелось, но изменения надо вносить везде.
Или банальные баги могли положить всю базу так, что множество продуктов не работало, хотя они не виноваты.
Почему выбрали Camunda мой коллега Николай писал в предыдущем посте.
Мы решили перенести крупный процесс из IBM (сначала, правда, потренировались на маленьком):
Это процесс открытия расчётного счёта в Тинькофф Бизнес. Такой процесс перенести за один подход не получалось, требовалось бы пауза на 3-4 месяца в разработке, что не очень подходит темпам развития бизнеса.
Мы решили переезжать по кускам и рефакторить всё, что попадется под руку. А чтобы решить проблему шумных соседей, мы сделали отдельное приложение, которое отвечало только за заявки на РКО.
На верхнем уровне процесс выглядит так:
Мы решили перестать делать новые фичи в старом приложении. Когда в беклоге появилась задача, мы старались идентифицировать квадратиккомпонентсервис к которому он относится и переписывали эту штуку с нуля в Camunda. Иногда по стоимости это было 1.2х (х — если бы делали в IBM), иногда — 3х или 5х.
После рефакторинга мы хотели просто выключить старое приложение, поэтому решили новые фичи делать в Camunda так, чтобы она вообще ничего не знала про IBM. Нам помогли две вещи:
В итоге мы сделали процесс в IBM, который запускает и получает результат от Camunda:
Сначала мы перенесли простые, одношаговые синхронные вызовы в Camunda и всё работало хорошо. После этого мы стали склеивать эти штуки в нормальные “бизнес-процессы”, где стало появляться ожидание от пользователей.
Пользователи могут делать свои задачи годами, поэтому у нас начала сыпаться куча задач на ручное исправление процессов из трешхолда. Победили так — просто стали учитывать тип конкретной задачи в Camunda и не учитывать трешхолд на задачах, где возможно долгое ожидание.
Некоторые куски кода были такие замороченные, что проще было написать с нуля и посмотреть “нормально ли работает”. Для этого ввели в IBM feature toggling со шлюзами. Направляли небольшой поток заявок в Camuda и смотрели ручками, всё ли ок.
В конечном счёте процесс в IBM состоял только из вызовов Camunda, а в Camunda была собрано 3 уровня процессов. Сами бизнес-процессы не сильно поменялись, поэтому у нас получилось перенести старые инстансы из IBM в Camunda на те же точки ожидания. И выключить IBM.
Если хотите переехать на Camunda с легси BPMS, то:
Такой подход помог нам сократить количество инцидентов в 14 раз, время регресса в 4 раза, дал возможность релизить день-в-день и сократил затраты на ручное тестирование в 4 раза. Сейчас над проектом работает 5 человек и делает такой же объем работы, как 9 человек с IBM. Надеюсь, результаты у вас будут не хуже.
27 февраля 2020 (четверг) в 19:30 по адресу Москва, Головинское шоссе 5А, бизнес-центр «Водный» проведём очередной митап по Camunda. Зарегистрироваться и прочитать про докладчиков можно по ссылке [1]. Приходите!
Автор: Денис Котов
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/346956
Ссылки в тексте:
[1] митап: https://meetup.tinkoff.ru/event/camunda-meetup-1/
[2] хорошо продается: https://www.cnews.ru/reviews/rynok_bpm_2018/articles/v_rossii_rastet_spros_na_bpm
[3] классные результаты.: http://bpmaward.ru/2019/01/23/hse/
[4] Источник: https://habr.com/ru/post/488692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=488692
Нажмите здесь для печати.