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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

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

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

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

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

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

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

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

По состоянию на 2022 год количество активных экземпляров Platform V Pangolin превысило 6 тыс., из которых более 1600 — в промышленной эксплуатации. Число инсталляций составило 8721, на базе продукта работают более 380 приложений Сбера.  

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

СУБД также установлена в 79 компонентов Платформы поддержки развития бизнеса, из которых 25 относятся к Mission Critical, а 37 — к Business Critical. Количество инстансов баз данных в этих компонентах превышает 640 экземпляров.

Сегодня 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 прикладных решений на базе Platform V для масштабируемой архитектуры

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

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

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

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

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

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

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

2. Stand-in

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

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

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

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

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

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

4. ORM

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

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

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

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

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

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

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

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

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

Итоги

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

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

Источник: https://habr.com/ru/company/sberbank/blog/691616/


Интересные статьи

Интересные статьи

Работая программистом и будучи отцом двух мальчиков неминуемо задумываешься над тем, как будут твои дети жить в технологическом мире и как будут им пользоваться. И, как любой айтишник, я конечно же хо...
В рамках сотрудничества российские стартапы получат необходимые ресурсы, чтобы создавать высокотехнологичные решения с международном потенциалом, востребованные у клиентов и инвесторов.Microsoft в Рос...
Когда весь мир внезапно и не по доброй воле перешел на удаленку, даже завзятые скептики признали, что электронный документооборот — вещь полезная и нужная в корпоративном хозяйстве. Есл...
Ниже моя история прохождения тестирования ISQTB Foundation Level, переживания, пробы, ошибки и советы по эффективной подготовке, актуальные для 2021 года. ...
Мы в журнале The Economist очень серьёзно относимся к визуализации данных. Каждую неделю у нас публикуется около 40 графиков в печатной и онлайновой версиях, а также в приложениях. Мы везде стрем...