Разделы

postgrespro ПО Бизнес Импортонезависимость

С Oracle на Postgres Pro: как «Айбим» провела миграцию АИС «Московской государственной экспертизы»

Решение о переходе на Postgres Pro компания приняла еще в 2021 году — обусловлено оно было даже не вопросом импортозамещения, еще не так остро стоящим на тот момент, а несопоставимо высокой стоимостью владения системой на платформе Oracle по сравнению с реализацией на СУБД Postgres Pro. 

Заказчик

«Московская государственная экспертиза» — государственное автономное учреждение города Москвы. Является организацией субъекта Российской Федерации — города федерального значения Москвы, подведомственной Комитету города Москвы по ценовой политике в строительстве и государственной экспертизе проектов. Компания уполномочена проводить госэкспертизу проектной документации и результатов инженерных изысканий.

Технологический партнер

За техническую реализацию проекта миграции отвечала компания «Айбим» — разработчик программного обеспечения и поставщик информационных технологий для автоматизации процессов строительства. Компания оказывает профильные консалтинговые услуги в сфере строительства, что позволяет развивать глубокую экспертизу в сфере разработки собственных ИТ-решений, ориентированных на рынок девелопмента.

Задачи заказчика и история проекта

Задача одной из информационных систем «Московской государственной экспертизы» города Москвы (АИС «Норматив») — обеспечение всего строительного комплекса Москвы актуальной информацией о составе и стоимости строительно-монтажных работ. Информационная система является критической для всего градостроительного комплекса мегаполиса, так как на основе ее данных производится оценка всех строительных объектов и работ, финансируемых из бюджетных средств. Кроме того, АИС «Норматив» — это единый источник данных для всего коммерческого программного обеспечения, которое применяется для составления строительных смет.

Особенность АИС в том, что решение выполняет одновременно и транзакционные, и аналитические функции. В системе хранится историческая информация о ценах на ресурсы и строительные работы за многие годы, при этом в системе также проводится мониторинг текущих цен, их анализ, агрегация и расчет. Вся бизнес-логика и алгоритмы расчетов реализованы на стороне базы данных.

Решение о переводе системы с СУБД Oracle на СУБД Postgres Pro Standard было принято еще в 2021 году. Изначально к такому решению руководство организации пришло по причине несопоставимо высокой стоимости владения и реализации отказоустойчивой архитектуры на платформе Oracle по сравнению с СУБД Postgres Pro (на стадии планирования проекта стоимость отличалась примерно в 3 раза).

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

Главной целью проекта было сохранение достоверности информации, которая переносится из старой базы данных в Postgres Pro. Важно было сохранить целостность данных, не допустить потерь в процессе миграции, полностью перенести бизнес-логику системы в неизменном виде и избежать простоя.

Выбор решения

Выбор СУБД на основе PostgreSQL был практически безальтернативным, а использование именно отечественной системы управления базами данных Postgres Pro Standard от российского разработчика СУБД Postgres Professional было обусловлено следующими факторами:

  • наличие аналогов системных пакетов Oracle в Postgres Pro;
  • доступность пакетов установки;
  • наличие качественной технической документации на русском языке;
  • возможность получения профессиональной технической поддержки от вендора в режиме 24/7;
  • присутствие СУБД Postgres Pro Standard и ее сертифицированной ФСТЭК версии в реестре российского ПО.

Postgres Pro Standard — редакция СУБД Postgres Pro с возможностями инкрементального резервного копирования. Поддерживает секционирование таблиц, усовершенствованный полнотекстовый поиск, работу с покрывающими индексами, утилиту pg_probackup, расширение pgpro_pwr, а также целый ряд модулей, значительно увеличивающих функциональность системы и облегчающих работу с ней. Включена в единый реестр российского ПО. Доступна сертифицированная ФСТЭК версия.

Процесс миграции

Объем данных для миграции был относительно небольшим и составлял порядка 100 ГБ, но использование партиционирования, наличие более чем 150 функций и процедур и использование агрегационных и аналитических функций языка PL/SQL для реализации бизнес-логики потребовали особо внимательного подхода к планированию миграции системы.

Помимо этого, переход на СУБД Postgres затрудняло наличие большого количества бизнес-критичных и одновременно сложных отчетов, реализованных на платформе Oracle XML Publisher, источником данных для которых была СУБД Oracle.

Проект миграции был реализован по следующему сценарию:

  • Миграция метаданных (определений таблиц, индексов, ограничений и т.д.) с помощью утилиты Ora2Pg с последующей корректировкой полученных скриптов.
  • Миграция бизнес-логики с Oracle PL/SQL на PL/pgSQL c помощью Ora2Pg и дальнейшая ручная проверка и адаптация исходного кода.
  • Миграция данных с помощью Ora2Pg (выполнялась в нерабочее время, что позволило избежать простоя).
  • Незначительная доработка сервера приложений, которая обеспечила работу информационной системы одновременно с двумя базами данных Oracle и Postgres Pro.
  • Опытная эксплуатация, которая включала в себя параллельную работу в двух системах, на Oracle и Postgres Pro, с перекрестной сверкой данных. Это позволило выявить оставшиеся ошибки миграции и внести корректировки в код, а также проверить корректность формирования отчетности.
  • В рамках отдельного этапа выполнялись работы по оптимизации производительности, в частности, связанные с различиями работы двух СУБД с партиционированными таблицами.
  • Заключительный этап: повторная миграция, включающая только данные, с последующим запуском в промышленную эксплуатацию.

Сроки осуществления миграции

Процесс миграции: 6 месяцев.

Опытная эксплуатация с участием пользователей системы: 2 месяца.

В середине 2023 года были успешно завершены работы по переводу информационной системы АИС «Норматив» на СУБД Postgres Pro Standard 15.

Результаты и ключевые цифры проекта

На текущий момент автоматизированная информационная система «Норматив» введена в промышленную эксплуатацию и полностью функционирует на СУБД Postgres Pro Standard 15 с реализацией бизнес-логики на языке PL/pgSQL.

Во внутреннем контуре системы работает несколько сотен сотрудников. При этом заказчик отметил увеличение скорости работы некоторых функций, реализованных в Postgres Pro Standard, по сравнению со старой СУБД.

Михаил Лапин, «1С-Рарус»: Доля иностранных CRM на рынке сейчас не превышает 30%
Маркет

СУБД Postgres Pro является источником данных для системы формирования отчетности на платформе Oracle XML Publisher, для замены которой также уже найден отечественный аналог, и перспектива следующего проекта миграции — лишь вопрос времени.

Гибкая расширяемость СУБД Postgres Pro Standard, благодаря наличию различных пакетов, библиотек и инструментов разработки, позволила уменьшить количество переписанного кода на стороне бизнес-логики.

Всего в рамках проекта было перенесено около 100 ГБ данных.

Объем кода составил 11 пакетов, 152 функции и процедуры, около 100 таблиц, порядка 20 тысяч строк и 20 представлений.

Рекламаerid:LjN8JxzDpРекламодатель: компания ООО «ППГ»ИНН/ОГРН: 7729445882/1157746074518Сайт: https://postgrespro.ru/