Autobase - платформа или лучше назвать инструмент автоматизации для простого и быстрого поднятия кластера PostgreSQL.
🏠 Архитектура согласно документации
📌 Основные компоненты
Для тех, кто не жаждет разбираться в тонкостях построения отказоустойчивого кластера, разработчиками системы были подготовлены ряд скриптов, Ansible конфигураций и сервисов, в том числе UI, благодаря которым процесс запуска свелся к нескольким несложным шагам.
🔨 Подготовка
- 3 виртуальные машины (2 CPU, 2 Gb RAM) на Debian 12 под ноды
- ставим ssh сервер
- пользователя добавляем в sudo
- на проде организовываем доступ через ключи (на тестовых можно обойтись и паролем)
- 1 виртуальная машина для консоли управления также на Debian 12
- ставим Docker
- все машины в одной сети (рекомендация разработчиков для поддержки функции мониторинга кластера)
🚀 Запускаем консоль управления
docker run -d --name autobase-console \
--publish 80:80 \
--publish 8080:8080 \
--env PG_CONSOLE_API_URL=http://192.168.1.135:8080/api/v1 \
--env PG_CONSOLE_AUTHORIZATION_TOKEN=secret_token \
--env PG_CONSOLE_DOCKER_IMAGE=autobase/automation:latest \
--volume console_postgres:/var/lib/postgresql \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/ansible:/tmp/ansible \
--restart=unless-stopped \
autobase/console:latest
- 192.168.1.135 - адрес виртуальной машины консоли (api сервис стартует рядом с ui и бд консоли, поэтому адрес один и тот же)
- 80 - порт ui
- 8080 - порт api сервиса
🔥 Создаем кластер
Идем в консоль по адресу машины на 80 порт.
- Для входа используем заданный при старте контейнера PG_CONSOLE_AUTHORIZATION_TOKEN.
- Create cluster - Your Own Machines.
- По умолчанию предлагается использовать 3 ноды. Их и заполняем информацией о созданных ранее виртуальных машинах.
- Выбираем метод авторизации и заполняем учетные данные.
- В поле Cluster VIP address указываем незанятый (!) адрес в сети, который будет использован как единая точка входа для кластера.
- Включаем балансировщик HAProxy load balancer
- Выбираем версию PostgreSQL
- Стартуем
- В разделе Operations можно отслеживать процесс исполнения через логи системы.
- В случае успешного запуска в разделе Clusters появится развернутый экземпляр с расширенной информацией и мониторингом состояния.
❗️❓ Резервное копирование и восстановление кластеров реализовано с помощью инструментов pgBackRest и WAL-G, однако управление из ui пока недоступно - в скором времени планируется внедрить, судя по планам и комментариям разработчиков.
✅ Таким образом можно развернуть PostgreSQL кластер с минимальным участием в настройке целого пласта зависимостей. Рассмотренное средство вполне способно стать бесплатной альтернативой облачным провайдерам кластеров баз данных для решения бизнес-задач, а доступная масштабируемость позволит справляться с возрастающей нагрузкой по мере ее возникновения, не испытывая при этом никаких трудностей.