Ко всем новостям

Как мы разработали Platform V Kintsugi — инструмент для сопровождения реляционных СУБД и сопутствующей инфраструктуры

Публикации в СМИ
Технологии
14.03.2024

Источник: Хабр "Одно, чтоб править всеми: как мы сделали хаб для сопровождения СУБД"

1e8ca760d0a29db875e54620c4d29b94.jpg

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

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

Графические инструменты управления базами данных: с чего всё начиналось

Инструменты управления базами данных начали развиваться в 1970-х годах. Первые системы работали через командную строку и, несмотря на эффективность, были довольно неудобными для обычных пользователей, так как требовали знания SQL.

1980-е: dBase

С развитием компьютеров и ПО системы управления базами данных шагнули в сторону визуализации. Одним из первых графических инструментов управления базами данных стала программа dBase III, выпущенная в 1984 году. Она позволяла создавать и редактировать базы данных с помощью графического интерфейса без знаний SQL.

3c21360704e86f37142a06e20556f22d.png

Хотя возможности dBase были ограничены, а программа не подходила для работы с большими базами данных, простота и доступность сделала этот инструмент очень популярным. Графический интерфейс позволял пользователям легко создавать и редактировать таблицы, а также выполнять различные операции с данными: сортировать, фильтровать и т. д.

Со временем dBase развивался: появлялись новые функции, например, отчёты и поддержка многопользовательской работы. Самыми популярным версиями стали dBase III и dBase IV. Но из-за того, что разработчик долго не портировал их на Microsoft Windows, у программы появились сильные конкуренты, такие как FoxBase (FoxPro). DBase вскоре прекратила развитие, компания была выкуплена Borland и дальше затерялась в череде поглощений.

1990-е: FoxPro (FoxBase)

Ещё один графический инструмент для управления базами данных, созданный Fox Software в 1984 году. В 1992 компанию выкупила Microsoft, которая сменила название на FoxPro. Программа стала одним из первых инструментов, предлагавших визуальный подход к созданию и изменению баз данных.

Снимок экрана 2024-03-26 в 18.04.44.png

Функциональность FoxBase один в один повторяла dBase II, но, по утверждениям разработчика, работала быстрее. После слияния с Microsoft продукт начал активно развиваться и в итоге превратился в мощный инструмент, который мог работать с большими и сложными базами данных. FoxBase обладала продвинутой функциональностью: поддерживала многопоточность, позволяла работать с разными типами данных и создавать сложные отчёты. К недостаткам можно было отнести сложности с эксплуатацией и высокую стоимость.

Несмотря на свои недостатки, FoxPro остаётся важной вехой в истории графических инструментов для управления базами данных. Его влияние можно увидеть, например, в Microsoft Access, который использует многие из идей и технологий FoxPro. К тому же этот инструмент некоторое время закрывал нишу СУБД для Macintosh, так как MS Aсcess не поставлялся для этой ОС.

После нулевых: Microsoft Access и другие

Настоящий прорыв в области графических инструментов управления базами данных произошёл в 1992 году с выпуском Microsoft Access — первой программы, которая позволяла создавать базы данных через графический интерфейс, без написания кода. MS Access также предоставляла набор инструментов для анализа данных и стала очень популярной.

В 2000-х годах графические инструменты для СУБД стали ещё более мощными и удобными. У них появилась специализация: теперь продукты создавались под конкретные сценарии использования. Добавились новые инструменты: для создания форм, генерации отчётов, работы с данными в режиме реального времени, сопровождения и много другого (больше деталей с разбивкой по категориям можно найти здесь).

Сегодня на рынке существует множество графических инструментов для различных СУБД, таких как MS SQL Server, Oracle Database, MySQL и т. д. Каждый из них имеет свои преимущества и недостатки, поэтому выбор инструмента зависит от конкретных потребностей пользователя и типа СУБД, которую он использует. К примеру, для Oracle существуют несколько признанных инструментов. Среди них Oracle Enterprise Manager Cloud Control (EMCC) — решение для управления облачными сервисами и ресурсами, разработанное компанией Oracle. Оно предоставляет инструменты для автоматизации, мониторинга, безопасности и оптимизации облачных сред, а также позволяет управлять ими в масштабе всего предприятия. С помощью Oracle EMCC можно контролировать развертывание, обновление и масштабирование приложений, а также отслеживать их производительность и анализировать метрики. В условиях сложной инфраструктуры и большого количества нагруженных баз инструмент практически не имеет конкурентов. Доходит до того, что инженеры, не заставшие «консольную», эпоху, выполняют через него все действия, практически не переходя в консоль БД. Конечно, Oracle предоставляет также и IDE для написания кода, например, pl/sql developer, который де-факто является стандартом для разработчиков на территории СНГ. Отдельно стоит упомянуть прекрасный инструмент Toad for Oracle, который, однако, по традиции более распространён в западных компаниях.

За рамками статьи остаётся огромное количество менее специфичного ПО для работы, диагностики и мониторинга СУБД: Grafana, Zabbix, Prometheus, различное ПО для работы с логами, которое хоть и не специализируется на конкретных СУБД (а зачастую и вообще на СУБД), но отлично выполняет свои функции. А я хочу сделать акцент на графических инструментах для наиболее распространённой в РФ СУБД PostgreSQL и, в частности, для целевой СУБД Сбера Platform V Pangolin.

Обзор современных графических инструментов для работы с СУБД PostgreSQL

За время развития PostgreSQL появилось огромное количество инструментов для управления этой СУБД как от самого сообщества, так и от различных вендоров ПО. Перечисление всех продуктов заняло бы не одну статью, потому здесь приведу список наиболее популярных и интересных решений в РФ.

pgAdmin 4

Бесплатный и открытый инструмент для управления базами данных PostgreSQL. Позволяет создавать таблицы, индексы, запросы и другие элементы базы данных, а также визуализировать данные и генерировать отчёты. Появился в 1998 году и с тех пор стал одним из самых популярных инструментов для управления базами данных PostgreSQL. PgAdmin имеет простой и интуитивно понятный интерфейс, который делает его лёгким в использовании даже для новичков. Может быть развёрнут в контейнере или на компьютере пользователя как серверное приложение.

81e236bc621736cbdedc671ac39df4cb.png

Существует коммерческая версия pgAdmin, развиваемая компанией EnterpriseDB — Postgres Enterprise Manager. Решение с разными интересными доработками, среди которых:

  • Расширенная диагностика.
  • Помощник по работе с логами.
  • Профилирование запросов.
  • Возможность управления конфигурацией и др.

dBeaver

Бесплатная программа с открытым исходным кодом для управления базами данных. Мощный инструмент, поддерживающий множество различных баз данных, включая MySQL, PostgreSQL, SQLite и другие. DBeaver активно развивается, регулярно выходят релизы с обновлениями и доработками.

a3efb4733f6bf737a8267ade5a5e0677.png

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

Относительно недавно компания-разработчик dBeaver начала развивать CloudBeaver — онлайн-платформу для разработчиков и администраторов баз данных, которая позволяет работать с несколькими СУБД в одном интерфейсе. В CloudBeaver можно управлять различными базами данных — MySQL, PostgreSQL, SQLite и другими — с любого устройства и из любой точки мира, выполнять SQL-запросы, создавать и редактировать таблицы, просматривать структуру баз данных и многое другое. Платформа также предлагает облачное хранилище и обеспечивает высокую степень безопасности и надёжности.

Tantor Labs

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

Платформа является клиент-серверным приложением для обслуживания СУБД. Основные возможности:

  1. многофункциональная консоль управления;
  2. автоматическая адаптивная настройка кластера PostgreSQL;
  3. обзор системы;
  4. предупреждения и мониторинг;
  5. автоматические проверки работоспособности;
  6. аудит схемы;
  7. выполнение задач обслуживания через графический интерфейс;
  8. профилирование запросов;
  9. администрирование нескольких серверов в одном месте;
  10. лёгкая установка в периметре клиента.
8cf56288c1d968ff7288b1c96c5a84d8.png

Подробнее: https://tantorlabs.ru/products/platform

PPEM

Интегрированная административная панель управления СУБД Postgres Pro Enterprise. Основные возможности:

  • единая консоль с простым интерфейсом мониторинга и управления;
  • возможность выполнять основные административные действия из окна браузера;
  • централизация доступа ко всем экземплярам и базам данных;
  • навигация через единое меню с учётом иерархии объектов;
  • ролевая модель управления доступом пользователей PPEM;
  • вызов привычной утилиты psql прямо из консоли, что сочетает простоту графического интерфейса и гибкость командной строки.
9b1675bbf42c71fb567063a21c1c5bb0.png

Подробнее: https://postgrespro.ru/products/PPEM

ArenaData Cluster Manager

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

302918807c4eefd03348e3922b8778aa.png

Основные функции ADCM:

  1. Автоматическое развёртывание сервисов и приложений в кластере.
  2. Мониторинг состояния кластера и сервисов.
  3. Управление доступом и правами пользователей.
  4. Интеграция с другими продуктами Arenadata и сторонними решениями.
  5. Гибкая настройка политик и правил работы с кластером.
  6. Поддержка различных технологий и стандартов (например, Kubernetes, OpenShift, Apache Hadoop, Apache Spark и др.

Platform V Kintsugi — наше решение для централизованного управления инфраструктурой СУБД

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

Ключевые возможности продукта:

  • централизованное единое окно;
  • мониторинг и аналитика активности БД;
  • доступ к данным через SQL‑интерфейс;
  • аудирование всех событий в продукте сторонними средствами;
  • лёгкое горизонтальное масштабирование (от 1 до более чем 30 000 экземпляров, от 1 до более чем 1000 одновременных пользователей различного уровня доступа, без остановки сервиса или замедления работы — и аналогично в обратную сторону).

Для кого и почему мы разрабатываем Platform V Kintsugi

Изначально все работы в инфраструктуре и по СУБД можно разделить на два больших блока: run и change.

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

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

Какой бы профессиональной и мощной ни была команда сопровождения, входящих запросов всегда больше, чем людей, и очередь запросов пополняется быстрее, чем выдаётся решение. А специалистов, одинаково хорошо знающих прикладной код и код БД, как обычно, не хватает.

Вот типичный пример обслуживания СУБД во время очередного инцидента:

  • Пользователи обнаружили деградацию сервиса (в этот момент мысленно запускаем таймер).
  • Через полчаса‑час проблема добралась до команды, отвечающей за сервис (прошёл час с момента инцидента).
  • Предположим, что команда подобралась опытная и уже через полчаса находит проблему на уровне СУБД (уже полтора часа).
  • Сотрудники создают обращение к DBA. Невероятно круто, если в команде есть свои DBA, и они уже принесли первичный анализ, но так бывает не всегда. Понадеемся, что дело происходит не в час пик, и уже через 15 минут задача в работе (прошёл час и сорок пять минут).
  • Около получаса специалист пытается понять, что произошло, особенно, если он видит эту БД впервые (два часа пятнадцать минут с начала инцидента).
  • Теперь этап аналитики, и очень круто, если проблема вызвана обновлением или хорошо видна во view самой СУБД и решается отстрелом токсичных сессий. А если «сломалось само», то на поиск проблемы может уйти несколько часов (и тогда с начала инцидента до устранения прошло каких‑то четыре часа).

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

Нам нужно было максимально сократить этот этап: чтобы при обращении пользователя к продукту вся аналитика для БД и первичные рекомендации были готовы, тонкие места подсвечены, а сопровождение и команды разработки видели одну картинку и как можно быстрее принимали решение.

Основные функции Kintsugi

  • Общий дашборд по экземплярам (в планах развить в центральный хаб управления подключенными базами данных).
  • Общая панель конкретной СУБД, где пользователь может быстро получить текущее состояние БД.
  • Различные панели мониторинга.
  • Информация о производительности БД, аналог всем известного Oracle ASH с с гибкой возможностью фильтрации и поиска.
a2dc17ae9ca87b75bdf041769606a6ad.png
  • Интерфейс для выполнения запросов к базе данных с интерфейсом интроспекции, выполнения explain, а также базовые возможности по форматированию и комментированию кода.
098351172bd014486030f82c6c24c304.png

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

Platform V Kintsugi может интегрироваться со множеством сервисов крупного заказчика: различные авторизационные модели, аудит и сервисы безопасности и хранения учётных записей, сервисы журналирования и мониторинга. Наша практика показывает, что после внедрения инструмент становится центральным хабом сопровождения БД и упрощает сопровождение, диагностику и обслуживание баз данных.