Перейти к основному содержимому

История СУБД Pangolin — ​как мы разрабатывали отечественную СУБД корпоративного уровня

Несколько лет назад Сбер принял стратегию, в которой поставил цель стать технологически независимым и начать постепенно отказываться от иностранного программного обеспечения. В качестве замены СУБД Oracle и MS SQL рассматривалась open source версия PostgreSQL. Однако при детальном анализе стало понятно, что в оригинальном PostgreSQL отсутствовала часть необходимой функциональности, которая могла бы обеспечить соответствие стандартам банка в области безопасности, отказоустойчивости и производительности. В Сбере действуют строгие требования, поскольку здесь работает множество высоконагруженных систем, в том числе высшего уровня критичности. В результате было решено разработать СУБД на основе PostgreSQL, ориентированную на корпоративный сектор.

В 2019 году в СберТехе началась работа над нашим решением. Разработчикам команды предстояло выполнить доработки под требования департаментов безопасности, архитектуры и других. Сегодня продукт содержит более 80 доработок PostgreSQL для усиленной безопасности, надежности, производительности и удобства сопровождения. СУБД Pangolin признана целевой в Сбере, это означает, что она служит основой для миграции всех существующих приложений и разработки новых. Уже несколько лет продукт используется и в других крупных компаниях. Всего в эксплуатации находится более 100000 инсталляций, и количество клиентов и внедрений продолжает расти.

В этой ретроспективе расскажем о том, как мы разрабатывали и кастомизировали отечественную СУБД корпоративного уровня.

История Pangolin

Этап первый: стартап. Первый пилот

Этап первый

Летом 2019 года в Сбере был запущен центр разработки СУБД PostgreSQL Sber Edition — так в самом начале назывался продукт (о том, как мы впоследствии выбрали название Pangolin дальше расскажем подробно). Команду разработки возглавил Михаил Семенов, для работы над проектом он перешел из Nexign, где тогда лидировал команду IoT-разработки. В кратчайшие сроки собрал команду из 15 человек и началась работа над пилотом.

На старте перед будущей командой стояли две задачи:

  • сделать доработки PostgreSQL под требования департаментов безопасности, архитектуры и других подразделений;
  • до конца года провести пилот ParallelRun — параллельную работу систем на Oracle и PostgreSQL.

Список требований к пилоту выглядел внушительным: было необходимо организовать георезервированный кластер высокой доступности с интеграцией во внутренние системы Сбера, выпустить доработки по безопасности — защиту от суперпользователя, функциональность для расширенного аудита, строгие парольные политики и многое другое.

Требования были реализованы. В мае 2020 команда защитила на архитектурном совете продукт и дорожную карту. СУБД Pangolin (все еще PostgreSQL Sber Edition) стала целевой реляционной СУБД Сбера.

Этап второй: первые внедрения и первая обратная связь

Этап второй

В июне 2020 года СУБД Pangolin появилась в инфраструктуре Сбера — начались первые инсталляции и миграции. В ближайшие два года количество инсталляций достигло 6000, из них 2000 — в ПРОМе. Команда выросла до 30 человек и стала делиться на группы. Появилась группа Delivery, которая стала отвечать за автоматизацию, DevOps, отвечающая за поставку решения клиенту, и команда третьей линии поддержки (L3). Сначала мы прошли через этап, где инженеры дежурят по очереди, а затем наладили работу L3 в режиме 24/7 с помощью найма инженеров из городов Дальнего Востока. К слову, о том, как сегодня работает наша команда сопровождения клиента можно почитать в этой статье.

Главные доработки этого этапа были направлены на усиление безопасности для работы с данными. Например:

  • двухфакторная аутентификация;
  • маскирование параметров запросов;
  • хранение сертификатов в формате PKCS#12 и возможность интеграции с системой хранения секретов;
  • возможность корректировки, фиксации и подмены планов запросов;

и многое другое.

Эти доработки позволили получить сертификат ФСТЭК России по 4 уровню доверия. Теперь команды Сбера могли использовать наш продукт в системах самого высокого уровня критичности.

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

Этап третий: первые внешние клиенты

Этап третий

В 2023 году количество инсталляций продукта внутри Сбера выросло до 20 000+, а команда — до 45 человек.

Западные вендоры начали уходить из России. Сроки сжались, а число требований по доработкам резко увеличилось. Начались первые внедрения у внешних клиентов.

Ключевые доработки:

  • генерация отчетов для детального анализа истории активности СУБД;
  • инструмент для анализа текущей активности СУБД;
  • сбор диагностической информации об экземпляре БД;
  • определение времени последнего изменения структуры объектов
  • мониторинг блокировок в реальном времени;
  • дополнительные представления для мониторинга (psql_diagpack);
  • очистка неиспользуемых файлов в табличных пространствах;
  • инструменты для отладки и контроля функций и процедур.

На этом этапе появилась команда технических писателей. Изначально документацию по продукту вели разработчики — сами разрабатывали функциональность, сами же и описывали ее. С выходом на внешний рынок мы больше не могли себе позволить обходиться без зрелой технической документации. Кстати, на Хабре есть статья о том, как мы шли к созданию команды по развитию технической документации.

Также на этом этапе у нас появился первый тимлид в разработке. Ранее Михаил Семенов совмещал управление командой с этой ролью. В составе L3 появилась команда SRE — инженеры на площадках клиентов.

И у нас сформировался отдельный продукт — Platform V Kintsugi. Это графическая консоль для управления нашей СУБД и любой СУБД, основанной на PostgreSQL. Это первый пример масштабирования через выделение функциональности в самостоятельный продукт. Забегая вперед, на следующем этапе мы выделили еще один продукт, о нем расскажем чуть дальше.

Этап четвертый: зрелость. Быстрый рост

Этот этап начинается в конце 2023 года и продолжается до сих пор. За один год команда выросла с 45 до 90 человек, а сейчас СУБД Pangolin делает больше 100 человек. Быстро росло и число инсталляций — в начале этапа было 70 000 инсталляций продукта, из которых 15000 — промышленные. Сейчас — более 100000 инсталляций.

Этап четвертый

Важные события этого этапа

СУБД Pangolin значительно усилилась функциональностью для работы в высоконагруженных системах. К примеру, добавилась возможность создавать глобальные индексы для партиционированных таблиц. Благодаря этой доработке продукт внедрили в процессинг Сбера — крайне высоконагруженную систему, которая обслуживает порядка 200 миллионов активных дебетовых и кредитных карт. Также команда продукта выполнила оптимизации ядра PostgreSQL под работу с 1С, в результате быстродействие улучшено более чем в полтора раза по сравнению с оригинальным PostgreSQL. Согласно результатам независимой экспертизы, СУБД Pangolin выдержала тест на 2400 пользователей «1С:Предприятие» в конфигурации «Документооборот» — что подтверждает готовность к стрессовым нагрузкам.

В 2023 году ФСТЭК России выпустила новые требования безопасности для СУБД. Команда продукта выполнила их и прошла испытания, по результатам которых летом 2024 года регулятор переоформил сертификат соответствия до 2028 года.

В 2024 году началась разработка еще одного выделенного продукта — инструмента резервного копирования и восстановления данных Platform V CopyWala. ПО развивается вместе с СУБД Pangolin и работает с PostgreSQL и всеми Postgres-like СУБД. В 2025 году продукт вошел в реестр российского программного обеспечения (РРПО).

И также стоит выделить доработки команды для удобства сопровождения, снижения порога входа в продукт для администраторов СУБД и для пользователей. К ним относятся: инструменты для автоматизации обновления, развертывания и настройки СУБД. Решение для облегчения миграции с PostgreSQL и Oracle. Инструмент трассировки сессии. Утилита для автоматической настройки производительности под конкретный сценарий. И многое другое.

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

Здесь находится техническая документация с руководствами для пользователей. База знаний с инструкциями по часто встречающимся запросам и частным кейсам например, здесь можно найти пошаговые руководства по сценариям обновления. А также на сайте можно пройти курс DBA1 по администрированию СУБД Pangolin — в него входит теория с примерами и практические задания с формой для самопроверки.

Помимо этого, у СУБД Pangolin есть образовательные программы для студентов вузов. Начиная с 2024 года студенты IT-специальностей МИФИ, МИСИС, ЮФУ и других ведущих технических вузов России учат основы PostgreSQL на базе СУБД Pangolin и при помощи Platform V Kintsugi. Обучение проходит в рамках IT Bootcamp, где студенты получают доступ к виртуальным машинам с предустановленными продуктами.

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


Любую версию СУБД Pangolin вы можете взять на тестирование — для этого нужно заполнить форму и подписать соглашение. А версию Platform V Pangolin Standard для работы с 1С можно скачать с сайта — самый быстрый способ попробовать продукт.

Также вы можете попробовать в облаке Platform V Kintsugi. И запросить через форму обратной связи тестовый дистрибутив Platform V CopyWala.

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