Привет! Мы – команда сопровождения банковских телекоммуникаций Национального Расчетного Депозитария (Группа «Московская биржа»). В НРД мы отвечаем за сопровождение критичных информационных сервисов, которые используются на ежедневной основе при отправке платежей/финансовых сообщений через каналы платежной системы Банка России (ПС БР), SWIFT, системы передачи финансовой сообщений (СПФС), сдачи отчетности, взаимодействии с Федеральными органами исполнительной власти. В этой статье расскажем об успешном кейсе по импортозамещению такого значимого программного продукта, как Дельта (ПП Дельта).

Дельта — многопользовательская система передачи отчетности в Банк России. Изначально система работала на серверах под управлением Windows в связке с базой данных Oracle.

Оценив имеющуюся инфраструктуру и совместимость самой системы, а также проконсультировавшись с коллегами, которые отвечают за администрирование инфраструктуры и баз данных, приняли решение перейти на использование серверов под управлением Astra linux в связке с базой данных Postgres Pro на кластерной инфраструктуре.

Первым делом мы провели такую миграцию в тестовой инфраструктуре, развернув там конфигурацию Дельты, которая будет целевой для промышленной среды.

Само ПО переносится просто: достаточно перенести конфигурационные файлы в чистую инсталляцию на linux-сервере, не забыв скорректировать данные по БД. Установка Крипто-Про и утилиты Stunnel также выполняется стандартным образом для linux-сервера.

Основные сложности возникли при миграции базы данных Oracle —> Postgres Pro, ведь для удобства пользователей важно было сохранить все данные и получить структуру базы, идентичную той, что требуется для корректной работы системы и ее дальнейших обновлений.

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

Этой успешной формулой мы и хотим с поделиться. При миграции БД мы использовали open-source-утилиту Ora2Pg. Основные нюансы при переходе заключались в корректном переносе типов данных и работе конструкторов, которые ломались из-за несоответствия типов. В итоге мы выбрали перенос таблиц в готовые схемы, которые создаются при первичном запуске Дельты, учитывая перечисленные ниже особенности.

Часть данных перенеслась корректно:

UNCLE_CORE.databasechangelog -> public.databasechangelog

UNCLE_CORE.databasechangeloglock -> public.databasechangeloglock

DATA_NSI -> delta_ko_nsi

DATA_ELO -> delta_ko_psd

Остальные таблицы из UNCLE_CORE мы не переносили, за исключением таблиц с данными отчетов и упаковок, которые необходимы – report, tpkg_in, tpkg_in_file, tpkg_out, tpkg_out_file.

Эти таблицы мы перенесли в готовую схему uncle_core. Недостающие настройки, содержащиеся в остальных таблицах схемы, ввели вручную, благо, их не так много. После миграции выполнили ряд завершающих манипуляций:

  1. Почистили md5sum в таблице public.databasechangelog, они будут вновь заполнены автоматически при старте ПО

  2. Выполнили скрипт для переделки путей в таблицах report, tpkg_in, tpkg_out (замена '\' на '/')

  3. Корректно выставили сиквенсы <tab>_id_seq для таблиц report, tpkg_in, tpkg_in_file, tpkg_out – на последний id

В результате вышеперечисленных предпринятых шагов мы получили БД со структурой, полностью идентичной той, которую создает Дельта при старте с БД PostgreSQL, и содержащую все исторические данные из исходной БД Oracle.

На подготовительную работу и тестирование в итоге у нас ушло несколько месяцев, но вот час «Х» настал, и мы были готовы к миграции в промышленной среде, которая и была успешно проведена в один из выходных дней в ноябре 2024 года.

Что имеем сейчас?

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

Выводы

Импортозамещение ПО – зачастую непростой процесс, поэтому если у кого-то стоит аналогичная задача по импортозамещению Дельты, и вы не знаете, как к ней подступиться, то просто используйте наши наработки и сможете решить ее гораздо быстрее.

Комментарии (0)