Централізований control plane для бекапів баз даних — розклад, сховище, retention і live-логи в одному місці
Щоразу, коли я налаштовую бекапи баз даних, натрапляю на ту саму стіну.
Створити хмарний акаунт. Згенерувати API-ключі. Підняти бакет. Встановити pg_dump / mysqldump / mongodump на сервер (або сподіватися, що версії збігаються). Написати cron. Сподіватися, що на диску вистачить місця для тимчасового файлу. Вручну підключити політику зберігання.
Це працює — доки у вас не з’являться три бази, два регіони, і хтось запитає: «а можна подивитися логи бекапу в реальному часі?»
Тому я створив BackSpace — централізовану платформу керування бекапами для контейнеризованої й звичайної інфраструктури баз даних.
Працює в продакшені
Це не побічний проєкт, який пилиться на полиці. BackSpace уже обробляє реальні задачі бекапування:
| Метрика | Значення |
|---|---|
| Конфігурації бекапів | 25+ |
| Усього запусків | 6 500+ |
| Доступних копій | 400+ |
| Успішність | 99%+ |
| Зайнято сховища | 3+ ТБ |
| Сумарний розмір копій (за весь час) | 30+ ТБ |
30+ ТБ — це все, що записано в сховище за 6 500+ запусків: фактичні файли бекапів, а не оригінальний обсяг баз. Стиснення gzip увімкнюється окремо для кожної конфігурації; деякі рушії (наприклад, xtrabackup) стискають самі, інші зберігають логічні дампи як є. Там, де стиснення є, сирі дані за дампами зазвичай у
Для віддаленого виконання платформа тримає три керовані агенти — по одному в кожному регіоні: Європа (Франкфурт), США (Схід) і Азійсько-Тихоокеанський регіон (Сінгапур). Оберіть Віддалене виконання (BackSpace Agents)
— решту ми беремо на себе: платформа сама призначає найближчого вільного агента за іменем хоста вашої бази.
Для сховища оберіть BackSpace Storage як профіль — під капотом сумісність з S3, але керуємо ми. Без акаунта AWS, без API-ключів, без налаштування бакета. Кожне завантаження автоматично дзеркалиться між кількома незалежними хмарними провайдерами — багатохмарна надмірність без другорядних бакетів і скриптів синхронізації.

Що вміє платформа
BackSpace дає один центр керування, щоб:
- Планувати і запускати бекапи для різних баз даних
- Обирати, куди потрапляють копії (вбудоване хмарне сховище, власний S3/SFTP або локальні шляхи на агенті)
- Дивитися логи в реальному часі під час виконання завдання
- Автоматично застосовувати політики зберігання
- Отримувати сповіщення, коли щось ламається

Під капотом — сервер на Go (REST API + протокол агентів через WebSocket) і легкі агенти, які виконують бекапи через Docker.
Головна ідея: Docker у Docker, без утиліт на хості
Агентам BackSpace не потрібні клієнтські утиліти БД на сервері. Єдина жорстка вимога — Docker.
Коли стартує бекап, агент:
- Підтягує офіційний образ вашої СУБД і версії (
postgres:16,mysql:8тощо) - Піднімає короткоживучий контейнер з потрібною утилітою (
pg_dump,mysqldump,mongodump,redis-cli,clickhouse-backup, ...) - Підключається до stdout до старту контейнера
- Передає вивід через буфери в пам’яті — gzip, за бажанням шифрування Age, контрольна сума SHA256 — прямо в сховище
Без тимчасових файлів на диску агента. Дані йдуть із контейнера напряму в сховище — вони ніколи не потрапляють на диск агента. І немає розбіжності версій між pg_dump (чи іншого інстурменту) на хості і вашим продакшен-Postgres (чи іншою СУБД).
Ізоляція — це перевага, а не побічний ефект. Сервер залишається чистим.
Два способи запуску бекапів
Агенти BackSpace (віддалене виконання)
Оберіть BackSpace Agents, якщо не хочете нічого встановлювати у себе.
BackSpace запускає керованих виконавців на платформі. Коли спрацьовує завдання, ми автоматично:
- Визначаємо регіон за іменем хоста бази
- Обираємо найменш завантаженого виконавця в найближчому регіоні —
eu-frankfurt,us-eastабоap-singapore - Відправляємо завдання через WebSocket
База має бути доступна з наших воркерів. Віддалене виконання підтримує логічні бекапи (pg_dump, mysqldump, mongodump, redis-cli). Фізичні інструменти на кшталт pg_basebackup або xtrabackup потребують власного агента, який може монтувати томи з даними.

Власний агент
Для приватних мереж, баз на localhost або середовищ zero-trust — розгорніть легкий агент самі:
services: backspace-agent: image: ghcr.io/backspaceguru/backspace-agent:latest container_name: backspace-agent restart: unless-stopped environment: - AGENT_ID=your_agent_id - AGENT_TOKEN=your_agent_token - AGENT_NAME=production-cluster-1 - BACKEND_URL=https://app.backspace.guru volumes: - /var/run/docker.sock:/var/run/docker.sock - backspace-data:/data volumes: backspace-data:
Агент сам підключається до центру керування через WebSocket. Вхідні порти на файрволі відкривати не потрібно — агент дістається до ваших баз зсередини мережі.
Якщо БД прив’язана до 127.0.0.1, запустіть агент у network_mode: host і вкажіть 127.0.0.1 як хост в інтерфейсі.


Сховище: вбудоване або своє
BackSpace Storage
Оберіть BackSpace Storage як профіль сховища — доступно одразу в кожному робочому просторі. Під капотом сумісність з S3, але ви не приносите свій бакет чи облікові дані. Ми даємо точку завантаження; за лаштунками кожен бекап автоматично дзеркалиться між кількома незалежними хмарними провайдерами.
Це та сама інфраструктура, на якій сьогодні тримаються 3+ ТБ активного сховища на платформі — надмірність вбудована, а не прикручена зверху.
За бажанням шифрування Age виконується на вашому боці перед завантаженням. Дані залишаються зашифрованими під час передачі та у сховищі.

Власні сховища
Потрібен повний контроль? Підключіть сховище, сумісне з S3 (AWS, MinIO, Cloudflare R2, Wasabi), SFTP або локальні каталоги на агенті. Той самий потік передачі — ваш бакет.

Підтримувані бази даних
| СУБД | Інструменти |
|---|---|
| PostgreSQL | pg_dump, pg_dumpall, pg_basebackup (лише власний агент) |
| MySQL / MariaDB | mysqldump, mariadb-dump, xtrabackup (лише власний агент), mariabackup (лише власний агент) |
| MongoDB | mongodump |
| Redis | redis-cli (знімки RDB) |
| Valkey | valkey-cli (знімки RDB) |
| ClickHouse | clickhouse-backup |
У ClickHouse окремий шлях виконання — clickhouse-backup сам керує завантаженням, тому агент передає журнали, а не захоплює stdout.

Що робить центр керування
Ви налаштовуєте бекапи в веб-панелі. Сервер бере решту на себе:
- Розклад за cron з повторами та затримкою
- Політика зберігання — старі запуски автоматично прибираються після кожного успішного бекапу
- Журнали в реальному часі в інтерфейсі через WebSocket
- Сповіщення — Telegram, Discord, Slack, зашифровані вебхуки
- Статистика — частка успіху, пропускна здатність, тренди споживання сховища
Завислі завдання зупиняються самі. Історія залишається єдиним джерелом правди для кожної спроби бекапу.
Агенти не зберігають стан: вся конфігурація, розклади, облікові дані й історія запусків живуть у центрі керування.


Для кого це
Якщо ви крутите бази в Docker, на віртуалках або на кількох майданчиках — і втомилися склеювати cron, shell-скрипти та хмарні SDK — BackSpace зроблений під таку роботу.
Це не заміна плану аварійного відновлення вашого DBA. Це спосіб перестати заново збирати інфраструктуру бекапів щоразу, коли додається нова база.
Спробувати
- Додаток: app.backspace.guru
- Документація: docs.backspace.guru
- Сайт: backspace.guru
Панель v1.4.1 уже в продакшені. Якщо у вас власні агенти — оновіться до v1.4.0+ для повної сумісності з BackSpace Storage.
Я засновник — з радістю відповім у коментарях на питання про архітектуру, протокол агентів або що завгодно ще.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів