Tantor Labs

Платформа Тантор

Примечание

Коммерческое использование возможно только с письменного разрешения компании ОOO “Лаборатории Тантор”.

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

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

Tantor Platform

Рис.1 Основные компоненты Платформы и их назначение

Архитектура Платформы

Основу Платформы составляет клиент-серверная архитектура. Клиентская часть представляет собой веб-интерфейс, который позволяет администраторам управлять базами данных в браузере аналогично зарубежным продуктам. На Рисунке 1 можно было познакомиться со всеми компонентами Платформы, а теперь рассмотрим их взаимосвязи и принципы работы. Платформа состоит из нескольких модулей: серверная часть написана на языке Golang, серверный модуль рекомендаций конфигурации СУБД разработан на Python, а фронтенд на JS Angular. Ядром продукта является СУБД, основанная на PostgreSQL, которая была дополнена специальными расширениями для обработки «на лету» большого количества метрик из наблюдаемой СУБД. Сбор информации с администрируемой базы данных осуществляется через Агент. Это легковесное приложение, разработанное также на языке Golang, которое наблюдает не только за базой данных, но и за операционной системой в целом. Также плюсом агента является его возможность отправлять только изменившиеся данные на основе срезов и предагрегация данных с целью снижения объема сетевого трафика и нагрузки на серверную часть платформы Тантор. Связь между агентами, backend и keeper-серверами осуществляется с помощью брокера сообщений NATS (по протоколу HTTPS), который обеспечивает асинхронный обмен сообщениями и доставку данных в БД.

Как видно на схеме, данные поступают от агентов к NATS. Keeper сохраняет полученные данные и размещает их в OperDB. Существует также обратная связь от компонента Backend к агентам, которая реализована таким образом, чтобы агенту не требовалось открывать порты для входящих соединений. Агент сам приходит и забирает все поступившие команды из NATS, что повышает безопасность системы.

_images/image222.png

Рис.2 Схема архитектуры Платформы

Второй вариант - масштабирование базы данных Платформы: На Рисунке 3 можно увидеть схему масштабируемой Платформы на случай если требуется подключение сотен или тысяч наблюдаемых серверов. В таком случае можно использовать мультитенантную архитектуру, в которой наблюдаемые серверы разделены между несколькими серверами БД в платформе. Такая архитектура позволяет решать множество практических задач и масштабировать платформу для любой нагрузки. Платформа предоставляет обширный функционал для администрирования подключенных экземпляров СУБД и позволяет распределить их по рабочим пространствам, созданным пользователями системы, которые могут быть определены локально или во внешнем LDAP репозитории. В каждом пространстве будут находиться серверы всех подключенных СУБД. При входе внутрь сервера пользователь увидит панель инструментов с основными метриками, отображаемыми в режиме реального времени в удобной визуальной форме, а также все предупреждения о возможных неисправностях. Web-интерфейс также позволяет настроить конфигурацию PostgreSQL с использованием рекомендаций. Эта функциональность реализована с помощью модуля конфигурации, который рекомендует пользователю правильные параметры, основанные на данных, собранных с сервера БД. Применение параметров, не требующих перезагрузки сервера, также осуществляется через веб-интерфейс: запрос поступает в Backend и направляется соответствующему агенту, который выполняет команду и возвращает результат. Следует отметить, что выполнение любых команд агента учитывает нагрузку на сервер, то есть умный агент подождет перед выполнением операции, если СУБД перегружена.

_images/image223.png

Рис.3 Схема масштабируемой Платформы