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