Заказчик дал задание — перенести базу данных с Microsoft SQL на PostgreSQL. Казалось бы, банальная задача, ничего интересного, не так ли? Но это только на первый взгляд. Всё самое интересное, как всегда, в деталях.
Что такое Честный ЗНАК и зачем ему база данных
Базы данных редко существуют сами по себе, для красоты, и этот случай — не исключение. БД подключена к Creatio (бывшая bpm от Terrasoft), а в этой CRM работает колл-центр Честного ЗНАКа. Иными словами, все вопросы производителей товаров, которым нужна цифровая маркировка, отправляются именно туда.
Какие это товары? Уже сейчас это: все лекарства, табачная продукция, обувь, духи, фотоаппараты, шины, а эксперименты идут даже по таким товарам как, молоко, питьевая вода или, скажем, кресла-коляски.
А к 2024 году правительство обещает: почти все товары должны будут маркироваться.
Получается, что от эффективности работы колл-центра Честного ЗНАКа зависит даже появление продуктов на полках магазинов. Значит, всё должно работать как часы. Creatio и так-то не напоминает интуитивно понятный интерфейс, а проблемы с БД могут сделать работу операторов ещё сложнее. Чтобы они выполняли именно свою работу, а не воевали с CRM, проблем быть не должно.
Как выглядит схема работы?
- Условные производители шуб, лекарств, а скоро и почти чего угодно задаются вопросами по маркировке.
- Операторы колл-центра по телефону, почте или чату получают вопросы, обрабатывают их и дают компетентный ответ.
- Супервизоры и руководители групп следят за работой операторов, снимают показатели, как обрабатывают запросы, в случае необходимости оптимизируют процессы.
В общем, нормальный рабочий процесс, только зависит от него гораздо больше, чем от колл-центра какого-нибудь интернет-магазина.
А так как Честный ЗНАК — это ГЧП (государственно-частное партнёрство), желательно, чтобы издержки на это всё были пониже. В конце концов, что бизнес за свой счёт это внедряет, что госучастие — в любом случае эти самые издержки ложатся на плечи налогоплательщиков, а значит, нас.
Microsoft SQL платная, а среди бесплатных официально Creatio поддерживает только PostgreSQL. Уже очевидно, куда копать, а если вспомнить ещё и про импортозамещение, то с миграции можно ещё и получить приятный бонус.
Как мы побороли БД и помогли Честному ЗНАКу
Существующая БД не соответствовала ни одному из необходимых критериев.
За Microsoft SQL надо платить, а сама база время от времени подглючивала и подвисала. При этом база — огромная, грузилась часов по 10, и если в неё попадали трудноотлавливаемые ошибки и данные бились, то падала вся загрузка и по сути полдня улетали в трубу. А развернуть где-то эту базу невозможно, так как внутри идут связи между записями. Мало того: с БД работала не только сама CRM, той же базой пользовалась система Microsoft Power BI для построения отчётов и аналитики, а также чат-бот Banza с маркетплейса Creatio.
Получается, работу нужно было поделить на три больших блока: выискивать и править ошибки, чтобы убрать глюки, устранить подвисания, а потом перенести базу на PostgreSQL.
На помощь приходит наша команда: аналитик, разработчик, тестировщик и, конечно же, руководитель проекта. Работаем по эджайлу, двухнедельными спринтами, по результатам которых показывали заказчику, что было сделано. Конечно, у эджайла есть свои минусы, те же постоянно меняющиеся требования, например. Из-за этого иногда приходится переделывать огромные блоки работы, но всё равно оно того стоит.
Мы проводили анализ системы, смотрели бизнес-процессы, справочники, запросы в БД от системы. Попутно выявляли, какие требовались доработки, а также изменяли запросы от Power BI, ведь она использовала ту же базу. Приходилось постоянно оптимизировать эту БД, смотреть, где ошибки вылезают, ведь одна кривая запись роняет всю базу, а база, напомню, огромная и грузится 10 часов.
Ошибки почистили. Провели кропотливую работу, на помощь пришли код и скрипты. Провели анализ по зависаниям, сотворили кое-какую магию данных и под конец сработали как консультанты — оценив нагрузку, посоветовали добавить серверных мощностей. Это всё вместе в итоге и закрыло проблемы с зависаниями и падениями, а перенос чистой и доработанной системы на PostgreSQL остался уже по сути как очередной и не очень большой проект.
Итого: основная цель выполнена, деньги сэкономлены за счёт лицензий майкрософта, за которые больше не надо платить.
Самое время закругляться, пока что-нибудь не поломалось.