Импортозамещение СУБД в Федеральном казначействе: переход ГИС ГМП на Postgres Pro Shardman

Импортозамещение СУБД в Федеральном казначействе: переход ГИС ГМП на Postgres Pro Shardman

 

Федеральное казначейство завершило перевод системы ГИС ГМП на отечественную СУБД Postgres Pro Shardman. Этот проект стал важным шагом в повышении технологической независимости финансовой системы страны и продемонстрировал готовность отечественных решений обслуживать критически значимые сервисы национального масштаба.

Заказчик

Федеральное казначейство отвечает за обеспечение исполнения бюджетов, организацию государственных и муниципальных платежей, ведение части государственных учётных и платёжных систем. Одним из ключевых инструментов является Государственная информационная система государственных и муниципальных платежей (ГИС ГМП).

Задачи заказчика

ГИС ГМП предназначена для централизованного размещения и получения информации, необходимой для уплаты государственных и муниципальных услуг, пошлин, штрафов и налогов. Система обеспечивает взаимодействие «администраторов начислений» (ведомств, формирующих счета) и финансовых организаций (банков, через которые граждане и юрлица производят оплату).

Показатели назначения ГИС ГМП:

  • до 300 тыс зарегистрированных участников;
  • до 25 млн документов в сутки;
  • до 700 тыс точек приема платежей (кассы);
  • до 75 млн операций в месяц с использованием СБП;
  • до 4800 обрабатываемых транзакций в секунду;
  • время ответа на запрос – не более 60 секунд.

История проекта

Ядром ГИС ГМП до недавнего времени являлась СУБД Oracle. Общий объём базы данных достигал 240 ТБ, из которых 180 ТБ приходилось на пользовательские данные и около 60 ТБ – на индексы.

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

Выбор решения, процесс миграции и оптимизации производительности

Федеральное казначейство предъявляло жёсткие требования к новой СУБД: поддержка критически больших объёмов данных (200+ ТБ), горизонтальное масштабирование, отказоустойчивость, соответствие регуляторным требованиям и перспектива роста до петабайтного уровня.

Выбор был сделан в пользу Postgres Pro Shardman – распределённой отечественной СУБД, способной обрабатывать данные объёмом до 2 ПБ. Адаптацию прикладного ПО и интеграционной платформы SmartVista Integration Platform выполняла компания «БПС Инновационные программные решения». Миграцию баз данных осуществляла компания PTЛабс.

Процесс миграции включал несколько этапов:

  1. Копирование накопленных данных и параллельный перенос изменений.

  2. Параллельная работа систем на Oracle и Shardman: «параллельный импорт» входящих данных и поэтапное переключение запросов на обновлённую версию с контролем производительности и корректности возвращаемых данных.

  3. Фактический переход на новую СУБД при сохранении возможности возврата на старую версию в случае выявления проблем на завершающих этапах.

  4. Вывод Oracle из эксплуатации.

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

Сложности и особенности реализации

Проект требовал не только замены СУБД, но и глубокой адаптации архитектуры, данных и прикладного ПО. Одним из ключевых вызовов стал выбор ключа шардирования. Потребовалась серьёзная аналитическая работа по анализу данных, функциональности системы и потоков данных, по результатам которой в качестве ключа шардирования был выбран уникальный идентификатор начисления (УИН). Для реализации этого решения потребовалась модификация структуры базы данных.

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

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

Также потребовалась доработка прикладного ПО: переписывание сложных SQL-запросов, а в некоторых случаях — разделение сложных операций на несколько последовательных шагов для учёта специфики распределённой среды.

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

Результаты

В результате проекта Oracle RAC был полностью заменён на кластер Postgres Pro Shardman, включающий 40 серверов (19 мастеров, 19 реплик и 2 резервных узла). Общий объём базы данных удалось сократить на 50 ТБ за счёт оптимизации структуры и пересмотра накопленных данных. Производительность системы выросла, количество отказов кратно уменьшилось.

Одновременно были обновлены версии прикладного ПО и операционных систем в соответствии с требованиями ФСТЭК. Также обеспечена высокая отказоустойчивость и возможность горизонтального масштабирования до уровней, необходимых для работы государственных систем.

«Проект, несмотря на свою исключительную сложность, является успешным: обновлённая система ГИС ГМП демонстрирует лучшую производительность и отказоустойчивость по сравнению с решением на СУБД Oracle. При этом переход на новую систему прошёл без остановки ГИС ГМП, что само по себе на рекордных объемах данных в сотни терабайт является действительно большим достижением», — отмечает Михаил Терехов, архитектор решений компании Postgres Professional.

Хотите рассказать о реализованном вами проекте миграции или внедрении СУБД Postgres Pro, а также стать нашим партнером?

Напишите нам: sales@postgrespro.ru

Получить консультацию

Пожалуйста, введите данные, чтобы мы могли связаться с Вами.


Согласие с обработкой персональных данных и Политикой конфиденциальности