type: concept
title: "Семейная архитектура платформы"
status: active
version: 1.0.0
date: 2026-03-30
owner: architect
Платформа строится по семейной модели: Мать → Отец → Дети.
Каждый член семьи имеет чёткую роль. Роли не пересекаются.
Суть: издательство. Создаёт, хранит, является источником истины.
mать.internal
├── git primary ← основной репозиторий
├── git зеркало А ← резерв 1
├── git зеркало Б ← резерв 2
├── library/ ← все компоненты платформы
├── system/ ← все агенты и сервисы
├── architect/ ← методология и стандарты
└── @architect.agent ← живёт здесь
Правила:
- Мать не доступна напрямую из интернета
- Мать не доступна детям напрямую — только через Отца
- Все зеркала git хранятся на Матери
- Архитектор работает только на Матери
Суть: книжный магазин + охранник. Раздаёт из кэша, защищает периметр.
отец.internal (единственный публичный IP)
├── VPN (WireGuard) ← единственный вход в сеть
├── DNS (CoreDNS) ← внутренние имена серверов
├── git кэш/зеркало ← раздаёт детям
├── мониторинг ← следит за всей семьёй
└── алерты ← уведомления если кто упал
Правила:
- Отец — единственная точка входа из интернета
- Дети получают компоненты от Отца (не от Матери)
- Отец синхронизируется с Матерью автоматически
- Если Мать упала — Отец раздаёт из кэша, дети работают
Суть: читатели. Берут знание у Отца, применяют в своей области.
дочка.internal
├── нужные компоненты ← git pull от Отца
├── @projector.agent ← или другой агент
└── projects/ ← свои данные проекта
Правила:
- Дочка клонирует только нужные компоненты (не всё)
- Зависимости объявлены в index.yaml
- Дочка не пишет в git Матери напрямую
- Обновление: git pull от Отца
ИНТЕРНЕТ
│
↓
ОТЕЦ ← единственный публичный вход
(публичный IP)
/ \
VPN DNS
│
│ внутренняя сеть (.internal)
│
├──→ МАТЬ ← закрыта, только внутри
│ (git, library)
│ ↓ синхронизация
│ ОТЕЦ кэш ← раздаёт детям
│
├──→ ДОЧКА А ← проектор
├──→ ДОЧКА Б ← исполнение
└──→ ДОЧКА В ← новый инстанс
Архитектор обновил компонент на Матери
↓
Мать синхронизирует Отца (автоматически)
↓
Дочки делают git pull от Отца
↓
Мать никогда не трогают дочки напрямую
1. Рождение → git clone от Отца (нужные блоки)
2. Подключение → VPN через Отца
3. Работа → использует компоненты локально
4. Обновление → git pull от Отца
5. Мониторинг → Отец следит за состоянием
Дочка устанавливает не отдельные компоненты а блоки — наборы компонентов.
@projector-блок
├── @projector.agent
├── @doctor.agent
├── scheduler
└── library/templates
@coder-блок
├── @coder.agent
├── @doctor.agent
└── library/connectors
@full-блок
├── @projector-блок
└── @coder-блок
На одном сервере может быть несколько блоков.
Отец держит DNS для всей семьи:
мать.internal ← материнский сервер
отец.internal ← управляющий сервер
проектор.internal ← инстанс проектора
исполнение.internal ← исполнительный сервер
Каждый сервер смотрит на DNS Отца:
nameserver отец.internal
| Ситуация | Последствие |
|---|---|
| Мать упала | Отец раздаёт из кэша — дети работают |
| Отец упал | Дети работают локально — нет обновлений и мониторинга |
| Дочка упала | Остальные не затронуты |
| Всё упало | git зеркала на Матери — восстановление с резерва |
| Семья | Платформа | IT аналог |
|---|---|---|
| Мать | хранилище знания | origin сервер |
| Отец | защита и раздача | CDN + bastion |
| Дети | применение знания | edge инстансы |
| Блок | набор умений | npm пакет |
| git pull | обучение | package install |
Версия: 1.0.0
Дата: 2026-03-30