Копии, которые нельзя потерять и нельзя стереть
Homyak — это агенты, которые делают резервные копии серверов, и центральный сервер хранения, который проверяет целостность данных при приёме и хранении. Архитектура без лишнего: только то, что отвечает за сохранность копий.
Сильные стороны платформы
Семь принципов, на которых построен Homyak — от платформенной независимости до минимальной поверхности атаки.
Платформенная независимость
Серверная часть и агенты написаны на Go и собираются под Linux и Windows из единой кодовой базы. Сервер хранения не привязан к ОС защищаемых узлов — агенты специализируются под платформу (KVM/libvirt, MS SQL), протокол общий.
go · linux · windowsРежим «Копилка» (WORM)
Данные попадают в хранилище без возможности удаления со стороны агента. В протоколе нет операции стирания принятой копии: занятое имя файла отклоняется, перезапись невозможна. Удаление — только по серверной retention-политике или решением оператора.
append-only · write-onceКонтроль и целостность хранения
Контрольная сумма SHA-256 проверяется при приёме копии и периодически пересчитывается фоновым сканером уже сохранённых данных. Каждый файл сопровождается манифестом с суммой и описанием. Найденные расхождения попадают в integrity-лог и влияют на состояние здоровья.
sha-256 · manifest · rescanГибкость в настройках
Конфигурация — YAML, секреты — в .env. Настраиваются расписания (cron), политики хранения, параллелизм приёма, отдельные хранилища под агентов, ротация логов. Поведение меняется конфигом, без пересборки.
yaml · .env · cronКонтроль ИИ-системами из коробки
Полностью машиночитаемый интерфейс: REST API о состоянии и структурные JSON-логи. Это позволяет ИИ-агентам и LLM-наблюдателям опрашивать систему, интерпретировать события целостности и принимать решения без человеко-ориентированных адаптеров.
rest · json-logs · machine-firstБез интерфейса — меньше атак
Отсутствие веб-интерфейса — осознанное преимущество. Нет фронтенда — нет лишней кодовой базы, нет классических веб-уязвимостей и, как следствие, низкий уровень векторов атаки. Управление — через API и конфиги.
headless · low attack surfaceZabbix / Prometheus из коробки
Состояние агентов, heartbeat и здоровье сервера отдаются в формате, готовом к снятию метрик. Интеграция с Zabbix и Prometheus не требует доработок — мониторинг подключается сразу при развёртывании.
zabbix · prometheus · healthТехнологичный дизайн
Инженерный подход в продукте и в подаче: предсказуемое поведение, явные ограничения, документированная архитектура и готовность к доработкам под специализированные задачи заказчика.
engineering-gradeРежим «Копилка»: данные входят, но не выходят
«Копилка» — это модель хранения write-once. Агент только добавляет копии; удалить или подменить уже принятый файл он не может технически.
- Финализация через rename. Файл собирается во временный .partial и атомарно фиксируется; повторная запись под занятым именем отклоняется.
- Нет delete-операции для агента. Протокол агент→сервер не содержит запроса на стирание принятых данных.
- Удаление — только политикой. Срок жизни задаётся серверным retention (expires_at); по умолчанию копия живёт бессрочно.
- Скомпрометированный агент безопасен. Захват узла-источника не приводит к потере уже сохранённых копий.
// приём копии: write-once POST /api/v1/backups → <file>.partial # потоковая запись → sha256 == manifest? # сверка суммы → rename .partial → file # атомарная фиксация // повторная запись под тем же именем: return ErrFileExists // перезапись запрещена // удаление доступно ТОЛЬКО серверу: retention.expires_at → cleanup
Концепция решения
Разделение ответственности: агенты делают копии и передают их, сервер — проверяет, хранит и отдаёт состояние. Между ними — единый протокол.
Агент копирует
Специализированный агент снимает копию (KVM-домен, база MS SQL) и считает контрольную сумму.
Передача на сервер
Копия стримится на сервер хранения по защищённому протоколу с возобновлением загрузки.
Проверка и хранение
Сервер сверяет SHA-256, пишет манифест, фиксирует копилку и фоном перепроверяет данные.
Состояние по API
REST API и JSON-логи отдают здоровье, целостность и статус агентов — людям и ИИ-системам.
Краткое описание функционала
Что система делает сегодня — компактный набор, сфокусированный на сохранности копий.
🗄️ Централизованное хранение
Единый сервер хранения принимает копии от заранее настроенных агентов, раскладывает их по агентам и ведёт индекс всех копий с манифестами.
🔁 Фоновый контроль целостности
Планировщик периодически пересчитывает суммы хранимых копий, фиксирует «тихую» порчу данных и отражает её в integrity-логе и в health.
📦 Консолидированный слепок (staging)
Отдельный сервис собирает «слепок» — по одной актуальной копии на каждое задание — в отдельный каталог с описью, как буфер для выгрузки вовне.
⏱️ Retention и политики хранения
Срок жизни копий задаётся политикой; просроченные удаляются сервером по расписанию. Без политики — бессрочное хранение (копилка).
🖥️ Агент KVM/libvirt
Резервное копирование виртуальных машин: live-режим и cold-copy выключенных ВМ, учёт UEFI/NVRAM, по расписанию.
🧱 Агент MS SQL
Копии баз Microsoft SQL Server через нативный BACKUP DATABASE, потоковая передача крупных баз, состояние заданий.
# машиночитаемое состояние — для ИИ и систем мониторинга { "status": "degraded", "agents": { "ok": 12, "stale": 1 }, "integrity": { "problems": 0, "checked": 66 }, "storage": { "used_bytes": 184320000000 } } # снимается напрямую в Zabbix / Prometheus # события целостности — в integrity.log (JSON)
Мониторинг и контроль — для машин
Homyak спроектирован так, чтобы за ним наблюдали автоматизированные системы, а не оператор у экрана.
- REST API состояния — здоровье, целостность, статусы агентов, индекс копий.
- Структурные JSON-логи с отдельным каналом целостности и ротацией.
- Heartbeat агентов с детекцией «отвалившихся» источников.
- Zabbix и Prometheus подключаются из коробки, без дополнительного кода.
- ИИ-наблюдатели получают всё в машинном виде — без парсинга UI.
Готовность к доработкам под заказчика
Модульная архитектура (агенты ↔ общий протокол ↔ сервер хранения) позволяет добавлять новые типы агентов и бэкенды хранения под специализированные задачи.
Новые агенты
PostgreSQL, файловые деревья, произвольный command-output — добавляются как отдельные агенты поверх единого протокола.
Бэкенды хранения
v1 — файловое хранилище; архитектура заложена под расширение на объектное хранилище и ленту под требования заказчика.
Интеграции и выгрузка
Слепок staging и машинный API — точки интеграции с внешними системами архивирования и офсайт-хранением.
Вопросы, комментарии, обращения по продукту
Напишите нам — обсудим внедрение, доработки под вашу инфраструктуру и интеграции мониторинга. Документация и обновления — на homyak.interforum.su.