architect/concept/family-architecture.md

type: concept
title: "Семейная архитектура платформы"
status: approved
version: 3.0.0
date: 2026-04-07
owner: architect


Семейная архитектура платформы


Два измерения семьи

Семья описывает два разных слоя — инфраструктуру и продукты:

ИНФРАСТРУКТУРА (чужое железо)     НАШИ ПРОДУКТЫ (живут на инфра)
──────────────────────────────    ──────────────────────────────
МАТЬ  = главный сервер            ОТЕЦ = Архитектор
ДОЧКА = дочерний сервер           СЫН  = Проектор + Кодер

Мать "рожает" дочек               Отец "воспитывает" сына
(деплой дочерних серверов)        (знания → исполнение)

Ключевое правило:
- МАТЬ и ДОЧКА — инфраструктура, не наш продукт (VPS, железо)
- ОТЕЦ и СЫН — наши продукты, живут поверх инфраструктуры


Три уровня модели

Уровень 1 — Части сервера (метафора, только в концепции)

Имя Слой Что Правило
МАТЬ Инфраструктура Главный сервер BASE + CORE, всегда
ДОЧКА Инфраструктура Любой дочерний сервер BASE, без CORE
ОТЕЦ Продукт Архитектор на главном сервере Всегда с МАТЕРЬЮ
СЫН Продукт Проектор на любом сервере На МАТЕРИ или ДОЧКЕ

Уровень 2 — Компоненты (внутри частей сервера)

Компонент Живёт в Что делает
Архитектор ОТЕЦ Создаёт и управляет знаниями платформы
Проектор СЫН Ведёт проект, исполняет через Кодера

Уровень 3 — Части компонентов

Часть Принадлежит Что делает
Кодер Проектор Выполняет код-задачи внутри сессии
Executor ДОЧКА Docker + БД + задеплоенный продукт клиента

Конфигурации развёртывания

Всё на одном сервере

Сервер
├── BASE (ОС, Docker, UFW, WireGuard)
├── CORE (Traefik, Authelia, Gitea)     ← МАТЬ
├── Архитектор                          ← ОТЕЦ
├── Проектор                            ← СЫН
│    └── Кодер
└── Executor (Docker + БД + продукты)

Два сервера

Главный сервер                    Дочерний сервер
├── BASE                          ├── BASE
├── CORE          ← МАТЬ          ├── Проектор      ← СЫН
└── Архитектор    ← ОТЕЦ         │    └── Кодер
                                  └── Executor

N серверов

Главный                    Дочка 1              Дочка 2
├── BASE                   ├── BASE             ├── BASE
├── CORE     ← МАТЬ        ├── Проектор  ← СЫН  ├── Проектор  ← СЫН
└── Архитектор ← ОТЕЦ      └── Executor          └── Executor

Принцип

BASE = ОС + Docker + UFW + fail2ban + WireGuard. На каждом сервере, всегда.
CORE = Traefik + Authelia + Gitea. Только на МАТЕРИ — без него платформа не работает.

ОТЕЦ всегда на МАТЕРИ. СЫН — на любом сервере. ДОЧКА — любой сервер кроме главного.


Схема сети

┌─────────────────────────────────────────────────────────────┐
│  ПРОКСИ (EU)  91.218.142.168                               │
│  SOCKS5  api.anthropic.com                                 │
└──────────────────────────┬──────────────────────────────────┘
                            SOCKS5 туннель
┌──────────────────────────▼──────────────────────────────────┐
│  МАТЬ (RF)  155.212.142.142  aipd.ru                      │
│                                                             │
│  BASE (всегда):                                             │
│    ОС · Docker · UFW · fail2ban · WireGuard hub             │
│                                                             │
│  CORE (всегда):                                             │
│    Traefik · Authelia · Gitea                               │
│                                                             │
│  OPS (опц.):                                                │
│    Uptime Kuma · Monitor · Backup · Vault                   │
│                                                             │
│  ОТЕЦ (опц.):                                               │
│    Архитектор                                               │
│                                                             │
│  СЫН (опц.):                                                │
│    Проектор                                                 │
│    └── Кодер                                                │
│                                                             │
│  Executor (опц.):                                           │
│    Docker + БД + продукты                                   │
└──────────────────┬──────────────────────────────────────────┘
                    WireGuard VPN (10.10.0.0/24)
       ┌───────────┴───────────┐
                              ▼
┌──────────────────────┐  ┌──────────────────────┐
│  ДОЧКА  zeai.ru         ДОЧКА  любой VPS   │
│  10.10.0.2               10.10.0.N           │
│                                              │
│  BASE (всегда)           BASE (всегда)       │
│                                              │
│  СЫН (опц.)              СЫН (опц.)          │
│    Проектор                Проектор          │
│    └── Кодер               └── Кодер         │
│                                              │
│  Executor (опц.)         Executor (опц.)     │
│    Docker + БД             Docker + БД       │
│    + продукты              + продукты        │
└──────────────────────┘  └──────────────────────┘

Стеки

Стек Прокси Мать Дочка По умолч.
BASE всегда
CORE (Traefik+Authelia+Gitea) всегда
OPS (Uptime+Monitor+Backup) опц. частично
ОТЕЦ (Архитектор) опц. n
СЫН (Проектор+Кодер) опц. опц. n
Executor (Docker+БД+продукты) опц. опц. n / y*

*На ДОЧКЕ Executor по умолчанию y — она существует именно для рантайма проектов.


Поток знаний

Отец — единственный источник знаний платформы. Сыновья на дочках получают знания по запросу.

ОТЕЦ (Архитектор на Матери)
  
   создаёт и хранит
  
БАНК ЗНАНИЙ (library/, architect/)
  theory/ standards/ patterns/ artifacts/
  
   отдаёт только нужное по запросу
  ├──────────────────────────────────┐
                                    
СЫН на Матери                    СЫН на Дочке
(Проектор + Кодер)               (Проектор + Кодер)
                                    
   нет знания?                       нет знания?
  └──────────► запрос к Отцу ◄───────┘
                    
                    
              Отец генерирует
              знание  в Банк
                    
              все Сыновья
              получают доступ

Правила потока знаний:

Ситуация Действие
Знание есть в Банке Сын берёт сам (git pull)
Знание техническое (язык, фреймворк) Сын находит сам (WebSearch)
Знание платформенное отсутствует Сын запрашивает Отца
Отец создаёт новый стандарт Попадает в Банк, доступен всем Сыновьям

Следствие для дистрибуции:
- Клиент получает СЫН (движок исполнения) — on-premise
- БАНК ЗНАНИЙ остаётся у Отца — как сервис
- Без Отца Сын работает, но не умнеет и не получает новые стандарты


Операционный документ

Детали установки, IP-адреса, текущий статус:
projects/platform-new/infra/DEPLOYMENT_FAMILY.md