architect/arh/concept/family-architecture.md

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