crossSvg

Переезжаем с Oracle и Microsoft SQL Server на Platform V Pangolin: опыт Сбера

Публикации в СМИ
28.11.2022

Источник: Хабр: "Переезжаем с Oracle и Microsoft SQL Server на Platform V Pangolin: опыт Сбера"

Привет, Хабр! На связи Михаил Семенов, лидер дивизиона баз данных в СберТехе, Артем Лаптев, руководитель эксплуатации продукта Platform V Pangolin в SberInfra, и Вячеслав Гавришин, руководитель команды развития Platform V Pangolin в SberInfra. 

В этом посте мы поделимся историей импортозамещения систем управления базами данных в Сбере и опытом миграции с MSSQL и Oracle на собственную СУБД Platform V Pangolin. Расскажем, как разрабатываем и кастомизируем отечественную СУБД уровня enterprise и какие решения помогли нам упростить процесс миграции и использовать продукт в микросервисной архитектуре банка.

Как появился Platform V Pangolin

Несколько лет назад Сбер утвердил новую стратегию развития, одним из векторов которой стала цифровая трансформация и постепенный отказ от иностранного программного обеспечения. 

В рамках стратегии в банке начали исследовать систему PostgreSQL, которая могла бы стать альтернативой уже используемым Oracle и MSSQL. Но open source продукт в его исходном виде проигрывал западным и не соответствовал стандартам банка в части безопасности хранения информации, надежности и удобства сопровождения. 

Было решено значительно расширить и доработать PostgreSQL, чтобы обеспечить полное соответствие требованиям крупного бизнеса и гарантировать отсутствие технологических гэпов относительно Oracle/MSSQL. В 2019 году в СберТехе появился собственный центр экспертизы и разработки, который должен был создать независимую СУБД корпоративного уровня — Platform V Pangolin. Название выбрали, исходя из важной функциональной особенности: по аналогии с жесткой броней, которой покрыто тело панголина, база данных должна была надежно защищать хранимую информацию. 

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

Несколько лет назад Platform V Pangolin был признан целевой СУБД в Сбере вместо Oracle и MSSQL.Тогда же команда продукта защитила roadmap развития, а еще спустя несколько месяцев начались первые инсталляции в банке.

Сегодня Platform V Pangolin используется в 188 банковских системах. Среди них 31 система уровня mission critical — это критически важные приложения, работающие в режиме реального времени, — и 63 системы business critical с высоким уровнем критичности, работающие в режиме 24/7/365. 

Platform V Pangolin — полностью независимая база данных, над развитием которой работает команда из 40 инженеров. В СУБД реализована функциональность, обеспечивающая, по сравнению с open source версией, значительно более высокий уровень надежности и безопасности:

  • Гибкое управление парольными политиками

Позволяет группировать пользователей по ролям и назначать различные парольные политики, контролировать соответствие задаваемых паролей назначенным парольным политикам и время жизни паролей.

  • Шифрование данных

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

  • Защита от привилегированных пользователей

Позволяет предотвратить доступ к пользовательским данным, хранящимся в базах данных Platform V Pangolin, со стороны неавторизованных лиц, в том числе администраторов сопровождения.

  • Расширенные возможности аудита

Обеспечивает неотключаемые и расширенные функции аудита действий пользователя с различным уровнем детализации, что позволяет настроить уровень аудита, соответствующий требованиям клиента.

  • Инструменты анализа производительности СУБД

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

  • Диагностический отчет

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

  • Отслеживание блокировок

Встроенный инструмент для оперативного анализа блокировок и причин их возникновения с целью принятия решения о дальнейших действиях в рамках сопровождения.

  • Отслеживание времени изменения объекта

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

  • Управление планами запросов

Позволяет оперативно и без влияния на существующую структуру объектов принудительно определять план выполнения SQL запроса, выполняемого как самостоятельный запрос, подготовленный запрос или запрос в составе PL/pgSQL-блока. А также без изменения текста запроса на стороне приложения корректировать план выполнения запроса на лету, на стороне сервера при его обработке.

  • Поддержка prepared statements для пула соединений

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

  • Управление пулом соединений

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

  • Секционирование таблиц

Оптимизировали скорость работы с секциями и добавлены автоматические обработчики создания новых секции по хешу и списку. Дополнительно предоставлена возможность строить (CREATE INDEX) и перестраивать (REINDEX) индексы для секционированных таблиц, не блокируя доступ к ним для других запросов.

  • Консоль администрирования для DBA — Kintsugi

Аналог Oracle Cloud Control, консоль администрирования для DBA — Kintsugi. Это полноценный инструмент, позволяющий решать задачи сопровождения и взаимодействия с базой данных. 

5 прикладных решений для масштабируемой архитектуры

Миграция на новые продукты в большинстве случаев невозможна без пересмотра IT-ландшафта. Нельзя просто заменить одну базу данных на другую. В парадигме монолитной архитектуры, где вопросы масштабируемости и надежности решаются на уровне дистрибутива, такая миграция — риск для стабильности бизнес-процессов. 

Устранить этот риск поможет смена архитектурной парадигмы разработки приложений и использование микросервисного подхода.

Мы прошли путь от сложной монолитной СУБД к новой архитектуре, в которой функциональность, призванная обеспечить доступность и производительность выносится за контур СУБД. Ниже рассказываем о пяти решениях, которые позволили нам реализовать новый подход в разработке. Многие из этих методов реализованы в инструментах и компонентах Platform V, облачной цифровой платформы Сбера для разработки бизнес-приложений. 

  1. Прикладной шардинг

По мере роста микросервисов и объема данных важно обеспечить масштабирование и при этом защититься от простоев системы.

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

Шардинг снимает ограничения на количество одновременно обрабатываемых запросов в кластере, увеличивая пропускную способность шины, сохраняет latency и обеспечивает высокую доступность. Реализовать метод поможет компонент платформы Platform V AppSharding.

f0716bf2ae3da267dac97950ed60f6ad.png

2. Stand-in

Любые обновления могут привести к простоям, в том числе в критических для бизнеса-системах.

Решение — stand-in база данных. В Platform V Pangolin это резервная БД, реализованная благодаря компоненту Platform V Data Transfer и поддерживаемая за счет логической репликации. При сбое производится автоматическое переключение и полное резервирование базы данных, что позволяет проводить обновления и технические работы с практически нулевым временем простоя.

bdc2d5ec51856cea88e729c59c924174.png

3. Оркестрация транзакций

Если у каждого сервиса приложения своя СУБД, в сложных бизнес-транзакциях, охватывающих несколько миксервисов, могут возникнуть проблемы с согласованием данных и процессов в них.

Решение — реализовать сложные транзакции как сагу, набор локальных транзакций. Каждая из них обновляет базу данных и публикацией запускать следующую локальную транзакцию. Управлением при этом занимается multi-instance оркестратор — в Platform V это Platform V Flow, компонент, который управляет всеми атомарными шагами, последовательно выполняя их или отказывая по мере необходимости.

Оркестрация транзакций и паттерн сага обеспечивают полную консистентность данных даже в условиях сбоев и гарантируют работу транзакций на всех уровнях.

e8acb5fd4d96d3f454fe49cdc8fa88bd.png

4. ORM

ORM-фреймворки связывают базы данных с объектно-ориентированными языками программирования, создавая «виртуальную объектную базу данных». Примеры — NET.Core, Hibernate, Django.

Суть в том, чтобы абстрагироваться от способа хранения объектов, с легкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удаленном сервере и оперируя на уровне модели простыми объектами. Но мы решили развить эту идею и создали на базе Platform V отдельный облачный инструмент — Platform V DataSpace. Он позволяет быстро создать слой доступа к данным на основе модели данных клиента, обеспечив разработчика продвинутым мониторингом и гибкими возможностями поиска и получения данных.

492288cd18bd02235141c72134d199e7.png

5. Облачное решение для хранения и управления данными

Для работы с объектами на уровне модели мы разработали Platform V DataSpace — инструмент, который позволяет абстрагироваться от уровня хранения данных.

Platform V DataSpace обеспечивает доступ к данным и к работе с объектной моделью, прикладную репликацию и интеграцию с корпоративной моделью данных, находящейся в аналитике. Такой подход позволяет снизить расходы на создание backend-инфраструктуры и сократить время на разработку бизнес-логики.

b386bab521a67a1c9990d612bc1a42d9.png

Как работает кастомизация и внедрение продукта в Сбере

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

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

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

Кстати, клиенты сами могут влиять на функциональность СУБД, в том числе участвуя в исследовании CSI (Customer Satisfaction Index, индекс удовлетворенности). Можно оценивать продукт, информированность о нем, сопровождение, оставлять комментарии по доработке и возможным ошибкам.

Итоги

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

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