Импортозамещение СУБД: сравнение российских и open source решений
СУБД – самый дорогой и самый рискованный элемент в стеке импортозамещения. Лицензии Oracle и Microsoft SQL Server привязаны к курсу валют, а с осени 2014 года поставки и продление подписки стали непредсказуемыми. Госзаказчики уже получили прямые директивы отказываться от иностранного ПО там, где есть аналог. Вопрос не в том, заменять ли Oracle, а в том, на что и с какими издержками. Ниже – трезвая оценка вариантов без маркетинговых обещаний.
Что сегодня реально стоит на рынке
Полноценной коммерческой СУБД отечественной разработки, готовой заменить Oracle в высоконагруженном контуре, на март 2015 года нет. Из российских продуктов на слуху Линтер (РЕЛЭКС) – он давно сертифицирован ФСТЭК и ФСБ, применяется в защищённых системах, но по функциональности и экосистеме уступает Oracle и проигрывает в зрелости инструментария. ЛИНТЕР закрывает нишу защищённых АС, а не корпоративный OLTP с терабайтами данных.
Реальная альтернатива для большинства задач – PostgreSQL. Это зрелая open source СУБД с поддержкой транзакций, оконных функций, JSON и расширений. Версия 9.4, вышедшая в декабре 2014 года, добавила реплицируемые слоты и тип jsonb – этого достаточно для подавляющего большинства корпоративных приложений. Вокруг PostgreSQL уже формируется российский вендорский слой: компании предлагают платную поддержку, обучение и доработки ядра под отечественные требования. Для систем, где критична совместимость с MySQL-кодом, остаётся MariaDB – форк после поглощения MySQL компанией Oracle.
Критерии выбора, а не лозунги
Импортозамещение СУБД нельзя сводить к строке в реестре закупок. Оцените четыре фактора.
- Совместимость и миграция. Перенос с Oracle PL/SQL на PostgreSQL PL/pgSQL – это переписывание хранимой логики, а не экспорт дампа. Чем больше бизнес-логики в базе, тем дороже переход.
- Сертификация. Для ГИС и систем с персональными данными нужен сертификат ФСТЭК. Здесь у ЛИНТЕР преимущество; PostgreSQL требует сертифицированной сборки или наложенных средств защиты.
- Защита данных. Open source-ядро не отменяет требований к шифрованию хранимых данных – этот контур мы разбирали в материале про шифрование данных at rest.
- Поддержка и кадры. Команда, умеющая эксплуатировать PostgreSQL под нагрузкой, на рынке дефицитна. Заложите бюджет на найм или внешний контракт.
Архитектура важнее бренда СУБД
Менять Oracle на PostgreSQL «в лоб» под существующий монолит – значит перенести в новую базу все старые узкие места. Смена СУБД – повод пересмотреть архитектуру: вынести тяжёлую логику из базы в сервисы, разделить нагрузку, выделить отчётный контур от транзакционного. Наш годовой опыт перехода на микросервисы показал, что приложение, спроектированное вокруг абстракции хранилища, переживает смену СУБД без переписывания половины кода. Это снижает риск и стоимость импортозамещения на годы вперёд.
Решение по СУБД должно вытекать из общей дорожной карты, а не приниматься изолированно – мы описывали этот подход в стратегии импортонезависимости. Сначала классифицируйте системы по критичности и нагрузке, затем подбирайте СУБД под каждый класс.
Вывод
В 2015 году честный ответ такой: PostgreSQL – основа массового импортозамещения СУБД, ЛИНТЕР – для защищённых контуров с требованиями ФСТЭК, а единого «российского Oracle» пока нет. Выигрывает тот, кто меняет не бренд базы, а архитектуру вокруг неё. Смена СУБД – подходящий момент, чтобы заодно перестроить миграцию данных, аналитику и отчётность без потери производительности.