Российские компании сегодня вынуждены импортозамещать зарубежное ПО, в том числе продукцию Microsoft. Насколько реально отказаться от СУБД Microsoft SQL Server? Опыт реализации проекта в ГК «Агат» показывает, что его замена на PostgreSQL и Linux не уменьшает производительность и отказоустойчивость ИТ-систем крупных компаний.
Отечественный бизнес вынужден отказываться от использования западного программного обеспечения – причем, не только прикладного и профессионального, но и общего назначения, такого, как системы управления базами данных (СУБД). Опыт ООО «Протон», реализовавшей проект смены СУБД MS SQL на PostgreSQL в ГК «Агат» показал –MS SQL можно заменить на PostgreSQL – OpenSource – решение, развиваемое при активном участии российской компании Postgres Professional и включенное в реестр российского программного обеспечения. Сегодня инсталляция PostgreSQL беспроблемно работает в ГК «Агат» при 2,5 тыс. одновременных сеансах в 1С.
ГК «Агат» (это один из крупнейших российских автодилеров, имеющий 57 дилерских центра в двенадцати регионах России) заказала в компании «Протон» смену СУБД Microsoft SQL Server на PostgreSQL еще в 2018 году. Проект давно реализован, и накоплен большой опыт по решению возникающих проблем.
Как рассказал начальник технического блока компании «Протон» Денис Курманов, в 2018 году в России было сложно найти решения такого масштаба – в стране было мало «боевых» инсталляций 1С на PostgreSQL даже в не столь крупных компаниях. Изначально при интеграции PostgreSQL с 1С возникли проблемы. Эта СУБД оказалась более требовательной к качеству написанного для 1С кода, и даже незначительные ошибки, которые без проблем пропускал MS SQL, могли приводить к существенной деградации производительности системы и даже простоям. Специалисты 1С в то время уже тестировали свои типовые решение на совместимость с PostgreSQL, но в системе 1С ГК «Агат» было много самописных блоков. Кроме того, ГК «Агат» использует Систему управления автодилерским предприятием (СУАП) собственной разработки, которая включает в себя СРМ, систему оперативного учета, работу с первичной документацией и много других подсистем. Их также нужно было адаптировать к PostgreSQL. Тестировать и исправлять их коды при адаптации к PostgreSQL приходилось самостоятельно. Сегодня необходимая для этого информация имеется на профильных информационных ресурсах и на Портале информационно-технологической поддержки компании 1С. В 2018 году инженерам компании «Протон» многое приходилось изобретать самостоятельно.
«После проведения пилотного проекта на тестовом контуре, мы приступили к его реализации на типовых конфигурациях 1С, – вспоминает Денис Курманов. – Брали по нескольку баз данных бухгалтерии или зарплаты, переносили их, выявляя ошибки до тех пор, пока базы не закончились. После переноса типовых конфигураций взялись за самописные блоки. Какое-то время системы работали параллельно. И лишь, когда всё было перенесено и протестировано, вывели Microsoft SQL Server из эксплуатации».
Всего на реализацию проекта ООО «Протон» потратило около года. Длительность проекта, по словам Дениса Курманова, была связана со спецификой бизнеса ГК «Агат». Если бы компания использовала только типовые решения, процесс переписывания и тестирования кода можно было бы исключить. В последние годы компания 1С проводит большую работу по интеграции своей системы с PostgreSQL и Linux. А потому инсталляция 1С на Свободном ПО существенно упростилась. Последняя платформа 1С ERP 8.3.20 работает под Linux и с PostgreSQL стабильно. Поэтому в настоящее время в малых компаниях, по опыту успешно реализованных специалистами ООО «Протон» проектов, сменить Microsoft SQL на PostgreSQL можно за один-два дня.
Одновременно со сменой технологического стека с Microsoft SQL Server на PostgreSQL была перестроена архитектура ИТ-системы ГК «Агат», которая ранее была развернута на отдельных (standalone) серверах. Сейчас это кластеризированое отказоустойчивое решение, включающее отказоустойчивый кластер серверов приложений 1С и отказоустойчивую кластеризацию СУБД с асинхронной репликацией.
Мы попросили Дениса Курманова дать несколько советов по реализации проектов перевода других крупных компания с MS SQL на PostgreSQL. По его словам, важно прежде всего, сразу правильно спроектировать систему, заложив в нее нужный уровень отказоустойчивости. Перед аудитом конфигурации 1С на предмет ее готовности переноса на PostgreSQL специалисты должны внимательно изучить техническую документацию 1С в части СУБД. И нужно решить, как будет организован процесс мониторинга новой системы. ООО «Протон» для этого выполнила собственную разработку на микросервисной архитектуре, которая собирает и визуализирует все данные. Подсистема мониторинга состоит из следующих компонентов:
· RAS\RAC
Компоненты платформы 1С, которые установлены на каждом центральном сервере кластера. Используются для управления и мониторинга;
· Zabbix
Использует RAS\RAC для сбора метрик с центрального сервера кластера 1С и автообнаружения ресурсов (новых баз данных);
Информирует по инцидентам и автоматически создаёт заявки в системе управления GANDIVA (также разработка ООО «Протон» при срабатывании триггеров;
· Grafana
Визуализирует данные телеметрии полученные от Zabbix. (Возможно, другие разработчики выберут иное решение).
И последнее. Перед завершением проекта обязательно провести пилотный проект с нагрузочным тестированием. Если выполнить все эти рекомендации, то по мнению Дениса Курманова, большинства типовых проблем с переходом СУБД на PostgreSQL компания сможет избежать.