Декларативная платформа оркестрации резервного копирования
Большинство систем резервного копирования либо превращаются в набор shell-скриптов и cron-задач, либо требуют внедрения тяжёлых монолитных решений со своими агентами, протоколами и экосистемой. Со временем такие системы становятся всё сложнее сопровождать, а понять, как именно был создан конкретный бэкап, оказывается практически невозможно.
Archivist решает эту проблему иначе.
Это не ещё одна программа для резервного копирования, а control-plane, который управляет уже существующими и проверенными инструментами. Вместо собственной реализации дампов, шифрования или загрузки в облако он оркестрирует стандартные утилиты вроде pg_dump, mysqldump, zstd, age, s5cmd и OpenSSH sftp, превращая их в единый воспроизводимый процесс.
Каждый бэкап проходит один и тот же детерминированный пайплайн, а результатом становится не только архив, но и набор метаданных, позволяющий в любой момент восстановить полную историю его создания.
Основная идея
Archivist построен вокруг простой инженерной мысли: не стоит переизобретать инструменты, которые уже хорошо делают свою работу.
Вместо этого система отвечает только за:
- планирование резервного копирования;
- запуск доверенных CLI-утилит;
- контроль выполнения;
- аудит операций;
- проверку целостности;
- публикацию артефактов;
- централизованное управление агентами.
Всё остальное остаётся за специализированными инструментами.
Такой подход позволяет использовать привычную инфраструктуру, не привязываясь к закрытым форматам хранения данных или собственным протоколам обмена.
Архитектура
Проект состоит из трёх компонентов.
Archivist Server управляет расписанием, хранит состояние системы, распределяет задания между агентами и предоставляет HTTP API.
Archivist Agent работает непосредственно на серверах, самостоятельно получает задания через pull-модель и выполняет pipeline резервного копирования без необходимости открывать входящие порты.
Archivist CLI позволяет администраторам запускать резервное копирование вручную, проверять конфигурацию, просматривать состояние системы и исследовать историю выполненных задач.
Что делает проект интересным
При разработке основной упор сделан не на количество возможностей, а на предсказуемость поведения.
Каждый запуск формирует полностью воспроизводимый набор артефактов: архив, контрольную сумму SHA-256 и manifest с описанием всех использованных инструментов, параметров и профилей. Это позволяет спустя месяцы понять, каким именно образом был получен конкретный бэкап.
Система использует декларативную конфигурацию, валидирует её ещё до запуска, работает по pull-модели без входящих соединений к агентам и публикует подробные метрики для Prometheus. Все операции проходят через единый детерминированный pipeline, что значительно упрощает сопровождение и расследование инцидентов.
Для кого предназначен
Archivist ориентирован на инженеров, сопровождающих собственную инфраструктуру.
Он подходит для резервного копирования PostgreSQL, MySQL, файловых систем и других источников данных в инфраструктуре любого масштаба — от одного сервера до распределённых площадок. Благодаря использованию стандартных инструментов его легко интегрировать в существующую экосистему без замены уже работающих процессов.
Текущий статус проекта
Тестирование