Archivist

Декларативная платформа оркестрации резервного копирования

Большинство систем резервного копирования либо превращаются в набор shell-скриптов и cron-задач, либо требуют внедрения тяжёлых монолитных решений со своими агентами, протоколами и экосистемой. Со временем такие системы становятся всё сложнее сопровождать, а понять, как именно был создан конкретный бэкап, оказывается практически невозможно.

Archivist решает эту проблему иначе.

Это не ещё одна программа для резервного копирования, а control-plane, который управляет уже существующими и проверенными инструментами. Вместо собственной реализации дампов, шифрования или загрузки в облако он оркестрирует стандартные утилиты вроде pg_dumpmysqldumpzstdages5cmd и OpenSSH sftp, превращая их в единый воспроизводимый процесс.

Каждый бэкап проходит один и тот же детерминированный пайплайн, а результатом становится не только архив, но и набор метаданных, позволяющий в любой момент восстановить полную историю его создания.

Основная идея

Archivist построен вокруг простой инженерной мысли: не стоит переизобретать инструменты, которые уже хорошо делают свою работу.

Вместо этого система отвечает только за:

  • планирование резервного копирования;
  • запуск доверенных CLI-утилит;
  • контроль выполнения;
  • аудит операций;
  • проверку целостности;
  • публикацию артефактов;
  • централизованное управление агентами.

Всё остальное остаётся за специализированными инструментами.

Такой подход позволяет использовать привычную инфраструктуру, не привязываясь к закрытым форматам хранения данных или собственным протоколам обмена.

Архитектура

Проект состоит из трёх компонентов.

Archivist Server управляет расписанием, хранит состояние системы, распределяет задания между агентами и предоставляет HTTP API.

Archivist Agent работает непосредственно на серверах, самостоятельно получает задания через pull-модель и выполняет pipeline резервного копирования без необходимости открывать входящие порты.

Archivist CLI позволяет администраторам запускать резервное копирование вручную, проверять конфигурацию, просматривать состояние системы и исследовать историю выполненных задач.

Что делает проект интересным

При разработке основной упор сделан не на количество возможностей, а на предсказуемость поведения.

Каждый запуск формирует полностью воспроизводимый набор артефактов: архив, контрольную сумму SHA-256 и manifest с описанием всех использованных инструментов, параметров и профилей. Это позволяет спустя месяцы понять, каким именно образом был получен конкретный бэкап.

Система использует декларативную конфигурацию, валидирует её ещё до запуска, работает по pull-модели без входящих соединений к агентам и публикует подробные метрики для Prometheus. Все операции проходят через единый детерминированный pipeline, что значительно упрощает сопровождение и расследование инцидентов.

Для кого предназначен

Archivist ориентирован на инженеров, сопровождающих собственную инфраструктуру.

Он подходит для резервного копирования PostgreSQL, MySQL, файловых систем и других источников данных в инфраструктуре любого масштаба — от одного сервера до распределённых площадок. Благодаря использованию стандартных инструментов его легко интегрировать в существующую экосистему без замены уже работающих процессов.

Текущий статус проекта

Тестирование