Декомиссия монолита: импортозамещение решения с монолитной архитектурой, построенном на иностранной СУБД, вендор которой ушел из РФ
- Заказчик:
- ПАО Московская Биржа
- Руководитель проекта со стороны заказчика
- Поставщик
- Unitarius
- Год завершения проекта
- 2024
- Сроки выполнения проекта
- апрель, 2021 — ноябрь, 2024
- Масштаб проекта
- 94000 человеко-часов
- Цели
-
Перевести устаревшую систему с проприетарного на OpenSource технологический стек.
-
Осуществить редизайн архитектуры системы, обеспечить переход с монолитной архитектуры на микросервисную.
-
Реализовать поэтапное и бесшовное внедрение нового решения.
-
- Результаты
-
Произведен редизайн архитектуры KYC профиля клиента. Выработана новая архитектура с учетом перехода на Low-code BPM платформу (хВРМ).
-
Обеспечен бесшовный переход из старой системы в новую.
-
Разработан механизм синхронизации данных между новой и замещаемой системами.
-
Произведена миграция данных и выведена в бой существенная часть функциональности KYC профиля клиента из существующей legacy системы в новую.
-
Выполнена полная миграция всех данных в новую систему, включая исторические данные.
-
Добились существенного сокращения сроков и стоимости новых доработок за счет внедрения Low-code платформы хВРМ.
-
Уникальность проекта
Единая клиентская база данных представляет собой масштабное решение со сложными бизнес-процессами и сложными данными. В рамках проекта было реализовано импортозамещение решения с монолитной архитектурой, построенном на СУБД Oracle. Для этого осуществлен перевод системы с проприетарного на open source технологический стек и реализовано бесшовное внедрение нового решения.
При миграции со старой системы на новую использовался итерационный подход, при котором обе системы на протяжении всего перехода остаются в актуальном состоянии. Если при выполнении очередной итерации происходит сбой, то осуществляется возврат на предыдущий шаг итерации. Также подход позволил «на лету» внедрять новые бизнес-требования заказчика.
В рамках проектах был произведен редизайн архитектуры и выработана новая архитектура:
-
Переход с монолита на микросервисы.
-
Микросервисы сочетают или Pro-сode (Java и React) или Low-сode (xBPM) в зависимости от того, что лучше подходит для реализации требований.
- Проект решает задачи импортозамещения
- Да
- Использованное ПО
-
Low-code платформа хВРМ
-
Java
-
React
-
PostgreSQL
-
- Сложность реализации
Масштаб системы, которую нужно было трансформировать – около 1 000 000 строк кода. В качестве системы хранения использовался Oracle, который нужно было импортозаместить.
Перед трансформацией Система представляла собой:
-
Самодельный DAO слой на основе XML-based DSL с логикой в хранимых процедурах.
-
Почти любая сущность – это «документ» - таблица в 100000 колонок. Присланный клиентом устав юрлица, договор, заявка на оказание услуги, оповещение от биржи клиенту, сертификат ЭЦП – это всё «документы».
-
Большое количество логики в триггерах («постпроцессы»). Из application serverа на java не контролируется изменение всех объектов. Изменение любого объекта может произойти по триггеру.
При этом присутствовал существенный объем постоянно идущих доработок функциональности по бизнес-требованиям, которые исходят из десятка подразделений биржи. Как следствие – высокий уровень связности «всего со всем».
-
- Описание проекта
Единая клиентская база данных (ЕКБД) – это система управления инструментами, которыми торгует биржа, и участниками, которые подключены к торгам и могут выставлять заявки. Данные из ЕКБД поступают в торговые и клиринговые системы биржи. Характеризуется сложностью процессов и сложностью данных, которыми необходимо управлять.
Ключевой задачей проекта была необходимость перевести Единую клиентскую базу данных с проприетарного на open source технологический стек и реализовать поэтапное, бесшовное внедрение нового решения.
Был выбран стек PostgreSQL + Java + ReactJS и микросервисы, разворачивающиеся в кластере Kubernets. В качестве инструмента была выбрана платформа хВРМ за совместимость с базовым технологическим стеком и возможность реализации гибкого по функционалу решения с возможностью дальнейшего масштабирования, полностью кастомизированное под бизнес-процессы и бизнес-задачи биржи.
На платформе xBPM реализована подсистема управления KYC профилем клиента биржи (участника торгов или эмитента). В рамках проекта был произведен редизайн архитектуры и выработана новая архитектура с учетом перехода на Low-code BPM платформу.
Сотрудниками был разработан механизм синхронизации между новой и замещаемой системами и обеспечен бесшовный переход из старой системы в новую.
При миграции на новую систему был использован итерационный подход: функционал был разбит на бизнес-функции и миграция осуществлялась по каждой бизнес-функции отдельно. При этом пока не были перенесены все бизнес-функции обе системы работали одновременно и между ними выстраивалась онлайн интеграция по всем сущностям, которые имеются в системах. При этом в каждой итерации происходит переход лишь по какой-либо одной бизнес-функции систем, затрагивающей узкий набор сущностей.
1. Разработка и тестирование:-
Бизнес-функции для новой системы в виде отдельного микросервиса.
-
Встраивания UI нового микросервиса в UI старой системы в режиме feature toggle.
-
Процедуры миграции данных из старой системы в новую по набору сущностей микросервиса.
-
Онлайн интеграционных потоков от старой системы к микросервису и от микросервиса к старой системе.
- Процедуры сверки старой и новой систем по набору сущностей, относящихся к микросервису.
3. Перевод пользователей к вводу данных в новом микросервисе (переключение feature toggle).
4. Выгрузка актуальных данных из новой системы в старую БД для обеспечения временной обратной совместимости с существующими потребителями информации на период миграции.
Также по запросам биржи была доработана платформа xBPM:
-
добавлена поддержка бизнес-истории;
-
расширили механизм встраивания через iFrame;
-
доработан механизм аутентификации и авторизации для соответствия стандартам Биржи;
-
добавлена поддержка REST API и Swagger;
-
оптимизирована производительность UI.
-
- География проекта
РФ