Импортозамещение СУБД в Федеральном казначействе: переход ГИС ГМП на 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Лабс.
Процесс миграции включал несколько этапов:
- Копирование накопленных данных и параллельный перенос изменений.
- Параллельная работа систем на Oracle и Shardman: «параллельный импорт» входящих данных и поэтапное переключение запросов на обновлённую версию с контролем производительности и корректности возвращаемых данных.
- Фактический переход на новую СУБД при сохранении возможности возврата на старую версию в случае выявления проблем на завершающих этапах.
- Вывод Oracle из эксплуатации.
Общая продолжительность проекта составила более двух лет, из них большая часть времени ушла на модификацию прикладного ПО для работы с распределённой СУБД и отладку процедуры переноса данных.
Сложности и особенности реализации
Проект требовал не только замены СУБД, но и глубокой адаптации архитектуры, данных и прикладного ПО. Одним из ключевых вызовов стал выбор ключа шардирования. Потребовалась серьёзная аналитическая работа по анализу данных, функциональности системы и потоков данных, по результатам которой в качестве ключа шардирования был выбран уникальный идентификатор начисления (УИН). Для реализации этого решения потребовалась модификация структуры базы данных.
Для оптимизации производительности и устранения накопленных за годы эксплуатации проблем было принято решение по изменению формата хранения части данных: решено избавиться от нескольких дочерних таблиц и превратить их во вложенные структуры данных в родительской таблице.
Готовые инструменты миграции, такие как Debezium и Oracle GoldenGate не подошли под специфику проекта, поэтому было разработано собственное решение, способное переносить данные с учётом новой схемы и происходящих в Oracle изменений данных. Перенос выполнялся методом, обеспечивающим целостность данных - фрагментами с фиксацией результатов в журнале.
Также потребовалась доработка прикладного ПО: переписывание сложных SQL-запросов, а в некоторых случаях — разделение сложных операций на несколько последовательных шагов для учёта специфики распределённой среды.
Во время подготовки к миграции дополнительно выявлялись ошибки в накопленных за годы данных: некорректные форматы идентификаторов, расхождения в числовых полях, а также другие ошибки данных. Для обеспечения устойчивости были реализованы механизмы обработки и фиксации подобных случаев.
Результаты
В результате проекта Oracle RAC был полностью заменён на кластер Postgres Pro Shardman, включающий 40 серверов (19 мастеров, 19 реплик и 2 резервных узла). Общий объём базы данных удалось сократить на 50 ТБ за счёт оптимизации структуры и пересмотра накопленных данных. Производительность системы выросла, количество отказов кратно уменьшилось.
Одновременно были обновлены версии прикладного ПО и операционных систем в соответствии с требованиями ФСТЭК. Также обеспечена высокая отказоустойчивость и возможность горизонтального масштабирования до уровней, необходимых для работы государственных систем.
«Проект, несмотря на свою исключительную сложность, является успешным: обновлённая система ГИС ГМП демонстрирует лучшую производительность и отказоустойчивость по сравнению с решением на СУБД Oracle. При этом переход на новую систему прошёл без остановки ГИС ГМП, что само по себе на рекордных объемах данных в сотни терабайт является действительно большим достижением», — отмечает Михаил Терехов, архитектор решений компании Postgres Professional.
Хотите рассказать о реализованном вами проекте миграции или внедрении СУБД Postgres Pro, а также стать нашим партнером?
Напишите нам: sales@postgrespro.ru