[Перевод] Ivory v2.0.0 — за пределами Postgres

Ivory начинался как небольшой инструмент, упрощающий работу с кластерами PostgreSQL и Patroni.
Когда я начинал его делать, цель была довольно простой: иметь одно место, где можно увидеть состояние кластера, разобраться с проблемами, выполнить запросы, управлять нодами и выполнять операции Patroni, не переключаясь постоянно между браузером, терминалом, SSH-сессиями и клиентами баз данных.
Теперь Ivory помогает делать то же самое и упрощает работу с другими сложными системами баз данных: MongoDB, ClickHouse, Redis и т. д. А если вы захотите добавить любую другую базу данных, это легко сделать с помощью AI-агентов. Для этого есть специальный subagent.
Изменение архитектуры
В Ivory появилась новая базовая концепция: Keeper. Keeper — это универсальный управляющий слой, отвечающий за операции с кластером. Он может быть отдельным системой, работающим рядом с базой данных, или системой управления, встроенной непосредственно в движок БД. Patroni теперь — просто одна из реализаций Keeper. Это фундамент, который превращает Ivory из инструмента управления PostgreSQL/Patroni в инструмент управления кластерами баз данных.
За пределами PostgreSQL
Благодаря новой архитектуре в v2.0.0 появилась первая волна поддержки помимо Patroni.
Теперь у Ivory есть интеграции для:
PostgreSQL / Patroni
MongoDB
Redis
ClickHouse
ZooKeeper
etcd
Интеграции находятся на разных стадиях зрелости, но все они построены на одной идее: Ivory предоставляет общий интерфейс управления, а Keeper выполняет операции, специфичные для конкретной базы данных.
Например, MongoDB может использовать собственные replica set, а ClickHouse — ZooKeeper для координации репликации.
Это важно, потому что цель не в том, чтобы все базы данных выглядели одинаково. Базы данных разные. Их модели репликации, отказоустойчивости, конфигурации и эксплуатации тоже различаются. Ivory же предоставляет общий слой вокруг этих различий.
Деплой кластеров
Ещё одно крупное изменение v2.0.0 — развёртывание кластеров. Раньше Ivory в основном подключался к уже существующему кластеру. Теперь Ivory может сам создать кластер.
Вы можете развернуть новый кластер прямо из UI, включая ноды и их конфигурацию, вместо того чтобы сначала всё готовить вручную, а потом регистрировать готовый кластер.
Здесь пригодятся шаблоны. Шаблон описывает, как должен создаваться кластер. Вы один раз определяете Docker-образ и конфигурацию, а затем переиспользуете их при создании другого кластера. Вместо того чтобы повторять одни и те же шаги каждый раз, когда нужно новое окружение, вы просто разворачиваете ещё один кластер из шаблона.
Это особенно полезно для сред разработки и тестирования, где создание и удаление кластеров — обычная часть рабочего процесса.
Управление вертуальной машиной
Это изменение влияет и на то, как Ivory воспринимает ноды. Нода базы данных — это уже не обязательно просто база данных. Теперь в Ivory есть более общая модель: вертуальная машина, база данных и Keeper, который там работает.
Сегодня развёртывание основано на Docker через SSH, без необходимости в оркестраторе или отдельном агенте Ivory на каждой машине. Архитектура задумана так, чтобы в будущем можно было добавить другие платформы, допустим Кубернетис.
Управление пользователями
В v2.0.0 также добавлено управление пользователями прямо в Ivory. Администраторы теперь могут создавать пользователей и управлять ими на странице настроек. В сочетании с системой аутентификации и прав доступа Ivory это делает более практичным, запуск Ivory как общего сервиса для команды, а не только как локального инструмента. У разных пользователей могут быть разные права на кластеры, запросы, конфигурацию и другие операции. Это особенно важно, когда Ivory используется для управления продакшен-инфраструктурой.
Единое место для управления вашими кластерами
Направление развития Ivory становится всё яснее. Я не хочу, чтобы это был ещё один мониторинговый дашборд, который сообщает, что что-то не так. Я хочу, чтобы это было место, где вы можете что-то с этим сделать.
Развернуть кластер.
Проверить его состояние.
Изучить репликацию.
Посмотреть логи.
Проверить машину.
Выполнить диагностический запрос.
Перезапустить ноду.
Выполнить failover.
Изменить конфигурацию.
И всё это — не выходя из одного интерфейса.
Взгляд в сторону AI
Есть ещё одно направление, которое мне особенно интересно изучить: управление кластерами с помощью AI. Ivory уже предоставляет интерфейс, через который можно выполнять операции с кластерами. Следующий шаг — сделать эти возможности доступными AI-ассистентам через Model Context Protocol (MCP). План состоит в том, чтобы добавить в Ivory MCP-сервер, чтобы AI-ассистент взаимодействовал с инфраструктурой через Ivory, а не имел прямой доступ к базам данных и машинам.
Представьте, что вы спрашиваете:
«Почему эта реплика PostgreSQL отстаёт?»
Ассистент сможет изучить кластер, проверить статус репликации, посмотреть соответствующие метрики и логи и выполнить диагностические запросы.
Или:
«Проверь все мои кластеры и скажи, требует ли что-нибудь внимания.»
А в перспективе, при наличии соответствующих прав:
«Переключись на самую здоровую реплику.»
Важно, что AI будет работать через существующую модель аутентификации и прав доступа, а не получит неограниченный доступ к инфраструктуре.
Это пока не входит в v2.0.0. Поддержка MCP — планируемое направление для будущих версий. Но новая архитектура делает эту идею гораздо более реалистичной. Те же операции, что доступны человеку через UI, со временем могут стать доступными AI-агенту через чётко определённый интерфейс.
v2.0.0 — это по-настоящему начало нового этапа для Ivory. Архитектура Keeper — его фундамент. Больше баз данных, больше платформ развёртывания, больше операций с кластерами и, в перспективе, управление с помощью AI — всё это возможные направления дальнейшего развития.
Ivory — проект с открытым исходным кодом, доступный на GitHub.
Если вы работаете с PostgreSQL, MongoDB, Redis, ClickHouse или другой инфраструктурой баз данных, попробуйте его.
А если он окажется вам полезен, поставьте проекту ⭐ на GitHub. Это помогает людям находить проект и мотивирует меня продолжать его развивать.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.