Как open-source побеждает «кровавый энтерпрайз»: битва за BPMS

    Шестеренки современного банка крутятся в соответствии с финансовыми бизнес-процессами. Они сложнее обычных — это правило работает для всего, к чему вы добавите определение «финансовые». С одной стороны, все усложняют регуляторы, бессчетное количество согласований и вовлеченных сторон. С другой — неповоротливые монолитные BPMS (Business Process Management System). В этом посте мы расскажем, как успешно забросили одну такую систему и ушли в гибкий и функциональный open source.



    Программисты отображают бизнес-процессы с помощью разных нотаций. Сейчас стандартом является BPMN (Business Process Model and Notation) — это XML-файлы с привязанными к ним изображениями. Для работы с этой нотацией создаются продукты BPMS  — монолитные проприетарные системы, которые стараются вместить в себя максимум инструментов для разработки BPM: от редактора пользовательского интерфейса до системы контроля версий.

    Расширить их могут только разработчики, которые уже давно работают с этими системами. В энтерпрайзных BPMS предусмотрены REST API, то есть к системам можно обращаться и получать в ответ данные. Но модификация и глубокая настройка самой BPMS практически невозможны. Работать с такими BPMS возможно только через ограниченный производителем набор инструментов — проприетарную систему контроля версий, компилятор, деплоер — обычно для каждой крупной BPMS разрабатывается целый набор. Эти инструменты развиваются медленно, от релиза к релизу могут сохраняться одни и те же проблемы, поскольку в работе задействовано не так много человек, как в случае с open source. В целом, возможности энтерпрайзных BMPS и потребности их пользователей совпадают очень редко.

    В рекламе таких систем говорят про сквозной workflow, говорят, что бизнес сам может менять BPM-процессы на лету. Но на самом деле такое не под силу даже аналитикам — справятся лишь разрабы.


    Бизнес-процесс состоит из пользовательских и сервисных задач, последовательности которых ведут к конечной остановке. В BPMS через такие схемы можно отслеживать время выполнения бизнес-процессов, а также разные бизнес-показатели — например KPI.

    Изменения разного масштаба в бизнес-процессы нам приходится вносить частенько. Раньше у нас был BPM-процесс для клиентских менеджеров, которые сидят в дополнительных офисах. В 2015 году мы часть офисов закрыли, а менеджеров перевели на выездную работу. Это потребовало больших изменений в BPM-процессах, нужно было вводить другие роли, действия. Или, например, изменился регламент службы экономической безопасности, и вместо двух согласующих теперь стало три.

    Сначала мы вносили изменения через BPMS IBM Lombardi. Собрав типичные недостатки систем своего класса, она отличалась еще и отсутствием упорядоченной документации. Создавалось впечатление, что после покупки Lombardi Software софтверный гигант взглянул на аморфное облако сопроводительных статей и решил ничего не трогать. И даже перечитав всю документацию, нельзя было сделать многие вещи. Например, вызвать REST-запрос с HTTPS-аутентификацией по пользовательскому сертификату. К счастью, поиски альтернативы увенчались успехом.

    Camunda решает проблемы


    После работы с IBM BPM мы пришли к тому, что разные группы пользователей должны уметь менять бизнес-процессы. Что-то незначительное в онлайн-режиме могут вносить обычные сотрудники бизнес-подразделений. Системные аналитики изменяют последовательность задач в бизнес-процессах. Новые интеграции, изменения в UI и программный код остаются на стороне разработчиков. А чтобы поддерживать такую гибкость, вся BPMS должна быть развернута на микросервисах.

    Такой подход мы можем обеспечить с помощью open-source BPMS Camunda. Она представляет собой форк проекта Activity, который группа разработчиков решила сделать более продаваемым. Они привели в порядок документацию и стали развивать Camunda отдельно, зарабатывают на продаже поддержки.

    BPMS Camunda позволяет редактировать бизнес-процессы с помощью обычного Java и поддерживает разделение на микросервисы. Переход BPMS на микросервисы дает сразу несколько преимуществ:

    • Избавление от монолита. Мы можем разделить бизнес-процессы по сегментам, связывая их между собой с помощью Rabbit MQ или Kafka через очереди. Бизнес-процессы можно менять изолированно друг от друга, накатывать изменения, не дожидаясь полного релиза.
    • Избавление от сервера бизнес-процессов.
    • Масштабирование. Если под нагрузкой начинает падать какой-то из серверов, то его можно клонировать. При пиковых нагрузках можно легко нарастить производительность, запустив несколько экземпляров бизнес-процессов в разных сервисах.
    • Версионность. Если, например, необходимо обновить версию Java, можно поднять несколько микросервисов с разными версиями Java и параллельно запустить новую версию. В каждом микросервисе могут быть не только разные версии софта, но и разные языки.

    В будущем мы планируем перевести на Camunda один из крупнейших наших бизнес-процессов —  корпоративное кредитование. Здесь все гораздо сложнее чем у физлиц и даже чем у малого/среднего бизнеса. Применяется не продуктовая, а лимитная схема кредитования, лимиты ограничены по времени, заемщики обычно входят в более крупные организации типа холдингов, а холдинги еще во что-то. Лимиты определяются отдельно для каждой из этих структур, и в каждой структуре есть свои согласующие, состав которых постоянно меняется. Получаем бизнес-процесс из сотен стадий. Мы смогли изменить его с помощью Camunda и решили остаться на ней. Даже если разработчики решат сейчас закрыть проект, текущих возможностей системы хватит еще года на три.

    Наша первая версия Camunda стояла на Websphere и по сути мало чем отличалась от IBM Lombardi. Сами приложения, к которым обращался сервис, мы решили написать на Spring Boot. Они деплоились на Tomcat и самостоятельно не работали. Потом оказалось, что Camunda может работать на Tomcat, была разработана версия для Spring Boot. Там же уже стала доступна полноценная микросервисная архитектура. Все приложения, с которыми работал бизнес-процесс, были реализованы на микросервисной архитектуре на основе Spring Cloud.

    Затем выяснилось, что быстро менять функциональность можно не только в сервисах, которые обслуживают бизнес-процесс. Сам движок BPM можно подключить к любому springboot-приложению в виде библиотеки.

    Camunda как микросервис

    Возник вопрос: сколько микросервисов поднимать? Можно было делать на каждый процесс один сервер, и там расположить все микросервисы, либо под каждую задачу сделать свой микросервис и в нем отдельный бизнес-процесс. Второе было бы удобнее, но пришлось бы организовать взаимодействие процессов, разбросанных по отдельным микросервисам. Мы попробовали несколько вариантов и остановились на решении, когда несколько микросервисов отвечает за определенную тематику и там сгруппированы несколько процессов. Общение происходит либо через REST, либо через Rabbit MQ. Сейчас еще запустили пилот на Kafka.

    Перспективы BPMS


    Бизнес-процессы не только отображают бизнес-воркфлоу, но реагируют на события, происходящие в остальных системах. У нас эти события аккумулирует отдельное подразделение Big Data. По итогам анализа этих событий создаются новые бизнес-процессы или изменяются уже существующие — это происходит постфактум, с периодичностью, например, раз в сутки.

    В идеале бизнес-процессы должны переходить к тому, чтобы изменяться в режиме онлайн — например при увеличении спроса на определенные услуги автоматически приоритезировать их выполнение и перераспределять ресурсы. Этого можно достичь с помощью автоматизации, взаимодействия, например, Kafka и Camunda, но это вопрос как минимум нескольких лет. Пожалуй, сейчас в сторону изменений в онлайн-режиме больше всего продвинулся полностью онлайновый английский Monzo Bank. И мы тоже над этим работаем.

    Промсвязьбанк

    81,00

    Компания

    Поделиться публикацией

    Похожие публикации

    Комментарии 19
      +2
      Ну попали же вы с камундой ))
        0
        Почему?
          0
          Поделитесь историей о граблях, интересно же!
            0

            Чего ж попали то? Вы Оракловскими или САПовскими монстрами пользовались? Камунда супер, если уже BPM приспичело внедрять. (А это уж еотдельный вопрос)

            +3
            Makes sense.
            И поинт «любой аналитик сможет сам менять БП чуть ли не мышкой» – 100% рекламный буллшит
              +2

              Не совсем но на 90% буллшит. Аналитики и заказчик используют диаграммы в BPMN нотации для обсуждения и разработки новой функциональности. Но за разработчиками последнее слово в том чтобы сделать схемы исполняемыми. И дело тут не только в схемах BPMN. Мало какое изменение процесса не за трагивает доработку UI или сервисного слоя.

                0
                Истинно так.
                Работал я с подобной BPMS — все равно нужны и ПМ и архитекторы и программисты и тестировщики и сисадмины. И в качестве вишенки на торте — все это делается именно мышкой.
                0
                Насколько Camunda заточена на Java? Насколько сложно было бы возложиться на нее в MS ориентированной среде?
                  +2

                  Есть REST API который можно вызывать из любой среды. Систему можно запускать как внешний сервис и загружать новые версии процессов через API.

                    0
                    Т.е. по-прежнему как минимум одно из передаточных звеньев остается с человеческим лицом, так следует понимать. Жаль, я думал уже Model Based Software Development где-то случилось.
                    Ну, подождем.
                  0
                  рано или поздно все равно все приходит к тому что програмист делает эти бизнес процессы и все что к ним относится
                    0
                    Первые строки BPM-сервиса БП Симулятор писались в головном офисе Промсвязьбанка на Славянской площади сразу после выхода jQuery.
                      –1
                      большой сотовый оператор тоже решил на камунде пилить! в итоге m.hh.kz/vacancy/23628686 эта вакансия пол года висит не закрытой! камунда этот тот же активити но с плюшками! камунда форк активити! для нормальной rnterprise поддержки нужно платить им! opensource opensourcom! но когда ваш тех долг вырастет тогда и ясно будет нужна ли была ли вам камунда или нет!
                        0

                        Вы правы по поводу поддержки. OSS релизы не так часто как фиксы багов так что тут либо обходить либо бакпортить фиксы в последний релиз. Коммерческая версия есть с поддержкой но она стоит заметно дешевле IBM BPM и т.п. Тут ещё стоит заметить что IBM BPM это suite а Camunda и Activiti это engine.

                          0

                          По поводу вакансии — можно нанимать тех кто знает Activiti или тех кто знает IBM BPM опыт совместимый. Или если в команде уже есть спецы по Camunda то можно разработчикам дать нужны знания довольно быстро.

                            0

                            Форк был много лет назад. Это не активити давно… Камунда и форкнулась тогда что-бы остатьСя тру БПМ.
                            А активити тащили в направлениое RuleEngine если я правильно помню. Активити потом купила большая контора и пилила под себя иногда.

                            0
                            there is no silver bullet!
                              0
                              > Общение происходит либо через REST, либо через Rabbit MQ. Сейчас еще запустили пилот на Kafka.

                              REST он только для CRUD, думаю у вас больше RPC вызовов, либо очередь в которую класть что-то вроде JSON-RPC, либо что-то вроде gRPC.
                                0
                                Простите, но вот немного режет слух фраза:
                                BPMN (Business Process Model and Notation) — это XML-файлы с привязанными к ним изображениями.
                                Все таки вроде это именно как больше нотация. Вот у меня лежит в заднем кармане джинс салфетка с бпмн моделью.

                                А в целом да, есть и отечественные разработки. Но что удивило — так это полное отсутствие интеграции.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое