📐 Куб выживания (The Survival Cube)
«Куб выживания» — это первый и главный графический артефакт AfRel. Он служит для стратегического позиционирования: показывает, где система находится сейчас и куда она должна прийти с точки зрения ресурсных ограничений.
Назначение
Куб выживания — это трёхмерная система координат для описания состояния системы и её целей.
Он позволяет:
- Зафиксировать текущее состояние системы в измеримых величинах.
- Определить целевое состояние как вектор (или траекторию) движения.
- Визуализировать стратегию выживания: сжатие, расширение, улучшение качества или их комбинации.
Оси координат
X: Количество (Scale, Volume)
- число обслуживаемых сущностей (пользователи, сервисы, запросы, контракты).
- Единицы: штуки, RPS, строки кода, количество модулей.
- Может быть сжатием (уменьшение X) или расширением (увеличение X).
Y: Качество (Quality, Density)
- эффективность на единицу количества.
- Единицы:
latency (мс), throughput (RPS), availability (%), error rate (%), MTBF .
- Повышение Y = улучшение свойств, понижение Y = деградация.
Z: Ресурсы/Деньги (Resources/Money)
- стоимость достижения цели или поддержания состояния.
- Единицы: доллары, человеко-часы, затраты на облако, ROI.
- Отрицательный Z (убыток, инвестиции) допустим, но требует плана возврата.
Точки и векторы
- Текущая точка A=(X_cur, Y_cur, Z_cur) — состояние до начала работ.
- Целевая точка B=(X_targ, Y_targ, Z_targ) — желаемое состояние.
- Вектор AB — стратегия движения.
Примеры векторов:
- Сжатие с качеством:
- ΔX<0, (меньше количество)
- ΔY>0, (выше качество)
- ΔZ<0 (в моменте тратим ресурсы, чтобы сжать и улучшить).
- Экстенсивное расширение:
- ΔX>0, (количество растёт)
- ΔY<0, (качество падает)
- ΔZ<0 (в моменте растём количеством с ускорением).
- Инвестиции в качество при стабильном масштабе:
- ΔX=0, (количество прежнее)
- ΔY>0, (качество растёт)
- ΔZ<0 (улучшаем, тратя ресурсы в моменте).
Недопустимые и опасные области
X < 0 в абсолютном значении невозможно (не бывает отрицательного числа сервисов).
Однако относительное изменение ΔXΔX может быть отрицательным (сжатие).
Z < 0 (убыток) допустимо временно, но требует явного плана возврата к Z≥0Z≥0.
X = 0 означает отсутствие сущностей (например, процесс не обслуживает ни одного клиента) — допустимо как временное состояние (миграция, ночной простой), но постоянное X = 0 означает смерть процесса.
Падение Y ниже минимально допустимого SLA — нежизнеспособное состояние.
Графическое представление
Куб с подписанными осями X, Y, Z.

Точки:
- A (исходное состояние)
- B (промежуточное состояние)
- C (целевое состояние)
Вектор/траектория — стрелка или ломаная линия (если путь не прямой).
Пояснительная записка к каждому кубу обязательна (ссылается на артефакт b1).
Пример (для цели b1 — сжатие с качеством)
Исходная точка
- X = 10X = 10 сервисов,
- Y = 200Y =200 мс (latency),
- Z = 500k Z = 500k $/год (затраты).
Целевая точка
- X = 3X = 3 сервиса,
- Y = 100Y = 100 мс,
- Z = 350k Z=350k $/год.
Вектор
- ΔX = −7 ΔX = −7,
- ΔY = −100 ΔY = −100 мс,
- ΔZ = −150k ΔZ = −150k $/год (экономия).
На кубе это изображается как диагональ вниз-влево-вперёд (если Z — вертикальная ось, направленная вверх для улучшения, то экономия — движение вниз по Z).