type: standard
aspect: policy
title: "ПОЛИТИКА УПРАВЛЕНИЯ ИНФРАСТРУКТУРОЙ"
version: 1.0.0
date: 2026-02-19
status: active
ПОЛИТИКА УПРАВЛЕНИЯ ИНФРАСТРУКТУРОЙ
Версия: 1.0.0
Дата: 2025-11-27
Статус: Стандарт
Уровень: У0 (Концепция)
НАЗНАЧЕНИЕ
Этот документ определяет системную политику управления всеми инфраструктурными ресурсами платформы.
1. МОДЕЛЬ РЕСУРСОВ
1.1 Два типа хранилища
┌─────────────────────────────────────────────────────────────────────┐
│ ХРАНИЛИЩА │
├─────────────────────────────┬───────────────────────────────────────┤
│ СЕРВЕР (SSD) │ HUB (S3) │
├─────────────────────────────┼───────────────────────────────────────┤
│ Тип: Горячее хранилище │ Тип: Холодное хранилище │
│ Скорость: Высокая │ Скорость: Средняя │
│ Объём: Ограничен (~30 GB) │ Объём: Безлимитный │
│ Цена: Дорого (~20 руб/GB) │ Цена: Дёшево (~2 руб/GB) │
│ Назначение: Runtime │ Назначение: Persistence │
└─────────────────────────────┴───────────────────────────────────────┘
1.2 Три сущности на сервере
┌─────────────────────────────────────────────────────────────────────┐
│ СЕРВЕР │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ INFRA │ │ DOCKER │ │ WORKSPACE │ │
│ │ Система │ │ Контейнеры │ │ Платформа │ │
│ ├──────────────┤ ├──────────────┤ ├──────────────┤ │
│ │ /etc/ │ │ containers │ │ /opt/claude- │ │
│ │ /var/ │ │ volumes │ │ workspace/ │ │
│ │ /root/ │ │ images │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ Роль: Операции Роль: Приложения Роль: Управление │
└─────────────────────────────────────────────────────────────────────┘
2. ПРИНЦИП РАЗДЕЛЕНИЯ
2.1 Главное правило
╔═══════════════════════════════════════════════════════════════════╗
║ СЕРВЕР = КОД + RUNTIME ║
║ HUB = ДАННЫЕ + АРХИВЫ + БЭКАПЫ ║
╚═══════════════════════════════════════════════════════════════════╝
2.2 Матрица размещения
| Тип ресурса |
Сервер |
Hub S3 |
Обоснование |
| Исполняемый код |
✅ |
❌ |
Нужна скорость |
| Docker контейнеры |
✅ |
❌ |
Runtime |
| Docker images |
✅ |
✅ backup |
Runtime + архив |
| Активные БД (volumes) |
✅ |
❌ |
Скорость записи |
| Дампы БД |
❌ |
✅ |
Persistence |
| Конфиги системы |
✅ |
✅ backup |
Runtime + архив |
| Python venv |
✅ (один) |
❌ |
Runtime |
| Данные проектов |
❌ |
✅ |
Объём |
| Изображения |
❌ |
✅ |
Объём |
| Прайсы, Excel |
❌ |
✅ |
Объём |
| Архивы версий |
❌ |
✅ |
Persistence |
| Шаблоны |
❌ |
✅ |
Редко нужны |
| Логи (свежие) |
✅ |
❌ |
Диагностика |
| Логи (>7 дней) |
❌ |
✅ |
Архив |
2.3 Критерии размещения
На сервере если:
- Нужен быстрый доступ (<1ms)
- Используется в runtime
- Меняется часто (>10 раз/день)
- Размер <100 MB
На S3 если:
- Доступ редкий (<1 раз/день)
- Не нужен в runtime
- Большой размер (>10 MB)
- Нужно долгое хранение
3. СТРУКТУРА ХРАНИЛИЩ
3.1 Сервер
/
├── etc/ # Системные конфиги
├── var/
│ ├── lib/docker/ # Docker runtime
│ ├── log/ # Свежие логи (<7 дней)
│ └── backups/dev-pro/ # Локальный буфер бэкапов
│
├── root/ # Конфиги приложений
│ ├── .ssh/ # SSH ключи
│ ├── pim-drupal/ # Drupal файлы
│ └── ...
│
└── opt/claude-workspace/ # WORKSPACE
├── CLAUDE.md # Главный конфиг
├── platform/ # Код платформы
├── projects/ # Код проектов (без данных!)
│ ├── pirotehnika/
│ ├── lider/
│ └── seller1/
├── infra/ # Скрипты инфры
├── architect/ # Методология
├── system/ # Агенты
└── .venv/ # ОДИН общий venv
3.2 Hub (S3)
hub/ # Симлинк → $DATASPACE/
│
├── servers/ # ПО СЕРВЕРАМ
│ └── dev-pro/ # Этот сервер
│ ├── backups/ # Бэкапы
│ │ ├── postgres/ # Дампы БД
│ │ │ └── YYYY-MM-DD/
│ │ ├── configs/ # Конфиги системы
│ │ └── workspace/ # Архивы workspace
│ │
│ └── logs/ # Архив логов
│
├── projects/ # ПО ПРОЕКТАМ (данные)
│ ├── pirotehnika/
│ │ ├── data/ # Рабочие данные
│ │ │ ├── prices/ # Прайсы
│ │ │ ├── images/ # Изображения
│ │ │ ├── certificates/ # Сертификаты
│ │ │ └── exports/ # Экспорты
│ │ └── archive/ # Архивы версий кода
│ │
│ ├── lider/
│ └── seller1/
│
├── platform/ # ПЛАТФОРМА
│ ├── archive/ # Архивы версий
│ │ ├── v1/
│ │ └── v2/
│ └── templates/ # Шаблоны
│
└── shared/ # ОБЩИЕ РЕСУРСЫ
├── templates/ # Шаблоны проектов
└── libraries/ # Общие библиотеки
4. ПОЛИТИКА БЭКАПОВ
4.1 Что бэкапится
| Ресурс |
Частота |
Retention |
Куда |
| PostgreSQL (все БД) |
Ежедневно 02:00 |
30 дней |
S3/servers/dev-pro/backups/postgres/ |
| Конфиги системы |
Еженедельно + при изменении |
90 дней |
S3/servers/dev-pro/backups/configs/ |
| Workspace (код) |
Еженедельно вс 03:00 |
30 дней |
S3/servers/dev-pro/backups/workspace/ |
| Docker images |
При изменении |
3 версии |
S3/servers/dev-pro/backups/docker/ |
| SSH ключи |
Еженедельно |
90 дней |
S3/servers/dev-pro/backups/configs/ssh/ |
| Логи |
Ежедневно (>7 дней) |
90 дней |
S3/servers/dev-pro/logs/ |
4.2 Что НЕ бэкапится
- Docker volumes (бэкапим через pg_dump)
- Python venv (восстанавливается из requirements.txt)
- node_modules (восстанавливается из package.json)
- Кеши (apt, pip)
- Временные файлы
4.3 Поток бэкапа
┌─────────────┐ pg_dump ┌─────────────┐ rclone ┌─────────────┐
│ PostgreSQL │ ──────────────▶│ /tmp/ │ ─────────────▶│ S3 Hub │
│ (Docker) │ │ dump.sql │ │ /backups/ │
└─────────────┘ └─────────────┘ └─────────────┘
│
gzip + удаление
локальной копии
4.4 Восстановление
# PostgreSQL
rclone copy s3:hub/servers/dev-pro/backups/postgres/YYYY-MM-DD.sql.gz /tmp/
gunzip /tmp/YYYY-MM-DD.sql.gz
docker exec -i <container> psql -U postgres < /tmp/YYYY-MM-DD.sql
# Workspace
rclone copy s3:hub/servers/dev-pro/backups/workspace/latest.tar.gz /tmp/
tar -xzf /tmp/latest.tar.gz -C /opt/
# Конфиги
rclone copy s3:hub/servers/dev-pro/backups/configs/latest.tar.gz /tmp/
tar -xzf /tmp/latest.tar.gz -C /
5. ЖИЗНЕННЫЙ ЦИКЛ ДАННЫХ
5.1 Состояния данных
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ ACTIVE │────▶│ BACKUP │────▶│ ARCHIVE │────▶│ DELETED │
│ (сервер) │ │ (S3) │ │ (S3) │ │ │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
Runtime Восстановление Долгое хранение Очистка
Горячие Тёплые Холодные
5.2 Retention политика
| Тип |
Active |
Backup |
Archive |
Delete |
| БД дампы |
— |
30 дней |
— |
>30 дней |
| Конфиги |
всегда |
90 дней |
— |
>90 дней |
| Код |
текущий |
30 дней |
версии |
никогда |
| Логи |
7 дней |
90 дней |
— |
>90 дней |
| Данные проектов |
— |
— |
всегда |
вручную |
6. МОНИТОРИНГ И АЛЕРТЫ
6.1 Метрики
| Метрика |
Порог |
Действие |
| Диск сервера |
>85% |
Очистка кешей, логов |
| Диск сервера |
>95% |
Срочная очистка |
| Последний бэкап |
>24h |
Алерт |
| S3 доступность |
недоступен |
Алерт |
6.2 Проверки
# Ежедневно автоматически:
- Проверка свободного места
- Проверка возраста бэкапов
- Проверка доступности S3
# Еженедельно вручную:
- Проверка целостности бэкапов
- Тест восстановления
7. ОПЕРАЦИИ
7.1 Перенос данных на S3
# Данные проекта
rclone move $WORKSPACE/projects/pirotehnika/data/ \
beget-s3:hub/projects/pirotehnika/data/ --progress
# Симлинк hub/ уже создан в корне workspace
# hub/ → $DATASPACE/
7.2 Очистка сервера
# Кеши
apt-get clean
rm -rf /root/.cache/pip/*
# Старые логи
find /var/log -name "*.gz" -mtime +7 -delete
# Docker мусор
docker system prune -f
7.3 Синхронизация
# Hub → Сервер (данные для работы)
rclone copy beget-s3:hub/projects/pirotehnika/data/prices/ \
/tmp/prices/ --progress
# Сервер → Hub (результаты)
rclone copy /tmp/exports/ \
beget-s3:hub/projects/pirotehnika/data/exports/ --progress
8. ОТВЕТСТВЕННОСТЬ
| Роль |
Отвечает за |
| Архитектор |
Политика, структура, стандарты |
| Инфра-агент |
Реализация скриптов, мониторинг |
| Платформа |
Соблюдение политики в коде |
9. СВЯЗАННЫЕ ДОКУМЕНТЫ
| Документ |
Описание |
infra/@infra-dev-pro/CLAUDE.md |
Конфигурация сервера |
infra/policies/BACKUP.md |
Детали реализации бэкапов |
architect/concept/SYSTEM_HIERARCHY.md |
Иерархия системы |
CHANGELOG
| Версия |
Дата |
Изменения |
| 1.0.0 |
2025-11-27 |
Первая версия |
Статус: Стандарт
Следующий review: 2025-12-27