Arenadata Cluster Manager (ADCM) 101: Полное руководство
Arenadata Cluster Manager (ADCM) — это ключевой инструмент управления всеми продуктами Arenadata. Он отвечает за развертывание, конфигурацию, масштабирование, мониторинг, обновление и удаление компонентов таких как ADB (Greenplum), ADPG (PostgreSQL), ADQM (ClickHouse), Catalog, Harmony MDM, LogSearch и Streaming Platform.
ADCM включает в себя:
- Web-интерфейс
- REST API
- CLI
- Архитектуру на базе Bundle (описание ролей и действий)
Также его компоненты иногда упоминаются под названиями adb control, adc arenadata, или просто Arenadata Cluster Manager.
Архитектура ADCM
Компоненты
- ADCM Core — центральный сервер управления
- ADCM Agent — агент, устанавливаемый на управляемые узлы
- Bundle — архив с YAML-описаниями ролей, действий и параметров
- Job Executor — выполняет Ansible/Bash скрипты
- State Machine — система управления жизненным циклом сервисов
Поддерживаемые сценарии
- Управление кластерами (от 1 до 100+ узлов)
- Работа с зависимыми компонентами (например, PostgreSQL + MDM)
- Параллельное выполнение задач по ролям и группам
- Интеграция с LDAP, Git, внешними Monitoring-системами
Установка и запуск
Установка
sudo rpm -ivh adcm-<latest>.rpm sudo systemctl enable --now adcm firewall-cmd --add-port=8000/tcp --permanent && firewall-cmd --reload
- UI доступ: http://<host>:8000
- Login: admin, Password: admin
Создание Inventory и хостов
- Добавление хостов вручную или через CSV/JSON
- Установка ADCM Agent на каждый узел (автоматически или вручную)
- Проверка подключения и SSH-доступа
Работа с Bundle'ами
Что такое Bundle?
Bundle — это архив, содержащий описание:
- Ролей (roles/): master, segment, replica и т.д.
- Действий (actions/): install, start, stop, upgrade
- Параметров (config.yaml): настройки по умолчанию
- UI-интерфейсов (adcm_meta.yaml): структура полей в веб-интерфейсе
Загрузка Bundle
- Через UI: Upload Bundle
- Через API или CLI: adcm bundle upload path/to/bundle.tar.gz
Жизненный цикл компонента
Этапы установки продукта
- Import Bundle
- Create Cluster (ADB Cluster, ADPG Cluster и т.д.)
- Assign Roles to Hosts (master, segment, api...)
- Configure Parameters (порты, JVM, PGDATA, логика ingestion)
- Run Action: install
- Run Action: start
Обновление компонентов
- Minor update: upgrade через встроенный action
- Major update: export конфигурации → удаление → установка новой версии
Работа через CLI
Установка CLI
pip install adcm-client
Примеры команд
adcm host list adcm cluster create --name adb-cluster adcm action run --cluster adb-cluster --action install
REST API
- URL: http://<host>:8000/api/v1/
- Аутентификация: Token-based
-
Основные endpoints:
- /cluster/, /host/, /service/, /action/
- /task/, /job/, /log/
- Используется для интеграции с CI/CD (Jenkins, GitLab CI)
Мониторинг и аудит
Логи
- UI отображает stdout/stderr по каждому заданию
- Job history доступна в Tasks → Jobs
Интеграция с Monitoring
- Метрики можно отправлять в Prometheus
- Поддержка Exporter'ов: node_exporter, adb_exporter, postgres_exporter
Аудит
- Все действия фиксируются в Job Log
- Поддержка подписей через Webhook
Best Practices
- Использовать роли строго по назначению (не ставить master и replica на один узел)
- Создавать Host Groups для однородных машин
- Делать snapshot конфигураций (YAML export) перед обновлениями
- Изолировать ADCM на выделенном узле
- Хранить свои Bundle в Git + versioning
Заключение
ADCM — мощная и централизованная система управления всей платформой Arenadata. Гибкая архитектура на базе Bundle, API-доступ, интеграция с мониторингом и поддержка автоматизации через CLI делают его ключевым инструментом для DevOps и администраторов. Управление ADB, ADPG, ADQM, MDM, Catalog и другими компонентами становится предсказуемым и стандартизированным.



