PhaseShift / первоисточник

Платформа оценки устойчивости IT-систем

Полная читаемая веб-версия белой книги от 29 августа 2026 года. Концепция и исследовательская гипотеза; не является обещанием предсказания любой аварии.

Белая книга

Платформа оценки устойчивости IT-систем

Статус: концепция / white paper

Версия: 0.1

Дата: 29 августа 2026

Рабочее название продукта: не определено


1. Резюме

Современные monitoring, APM и observability-системы хорошо отвечают на вопросы: что происходит сейчас, где выросла задержка, какой компонент перегружен, где появились ошибки и какой порог уже пересечён.

Предлагаемый продукт отвечает на другой вопрос:

Насколько IT-система в целом близка к потере устойчивости, даже если привычные operational-метрики ещё находятся в допустимых пределах?

Это коробочная on-premise платформа, полностью работающая во внутреннем контуре заказчика. На наблюдаемые серверы устанавливаются агенты. Они без изменения исходного кода приложений собирают системную, сетевую и процессную телеметрию, автоматически восстанавливают фактическую топологию зависимостей и передают данные в локальный аналитический контур.

Ключевая идея продукта — анализировать не только значения метрик, но и динамический отклик системы на естественно возникающие возмущения:

Продукт должен количественно оценивать:

  1. как быстро система возвращается к нормальному режиму;
  2. не увеличивается ли время восстановления;
  3. насколько сильно локальное возмущение распространяется по графу зависимостей;
  4. не становится ли система чувствительнее к одинаковым воздействиям;
  5. не меняется ли характер её динамики так, что это указывает на снижение запаса устойчивости.

Основная гипотеза:

У сложной IT-системы можно наблюдать динамические признаки снижения устойчивости до возникновения явного отказа, анализируя скорость восстановления, чувствительность и распространение естественных возмущений.

2. Проблема

Традиционный мониторинг измеряет состояние.

Например:

CPU                   72%
Memory                76%
Latency p99           320 ms
Error rate            0.8%
Queue depth           2 400
DB connections        83%

Эти значения полезны, но сами по себе не отвечают на вопрос, насколько система способна выдержать следующее возмущение.

Две системы могут иметь почти одинаковые CPU, latency и error rate, но находиться в принципиально разных состояниях.

Первая после кратковременного всплеска нагрузки возвращается к baseline за 3 секунды.

Вторая — за 40 секунд.

С точки зрения обычного dashboard они могут выглядеть одинаково. С точки зрения устойчивости — это две разные системы.

Поэтому объект наблюдения должен быть расширен:

Состояние системы
        +
Реакция на возмущение
        +
Распространение реакции
        +
Восстановление

3. От мониторинга состояния к наблюдению динамики

Базовая единица анализа продукта:

Возмущение → отклик → распространение → восстановление

Для каждого такого эпизода интересуют:

Именно такие эпизоды, а не бесконечный список отдельных метрик, должны стать главным аналитическим объектом продукта.


4. Почему здесь полезна метафора фазового перехода

Речь не идёт о том, что IT-система является термодинамической системой в строгом физическом смысле.

Физика нужна здесь как источник:

Во многих физических и математических динамических системах качественное изменение состояния происходит нелинейно.

Долгое время управляющий параметр меняется, но система внешне остаётся похожей сама на себя. Затем в окрестности критического режима небольшое дополнительное изменение приводит к качественно иному поведению.

IT-аналоги:

Задача продукта — исследовать, можно ли увидеть изменение динамики до очевидного operational failure.


5. Critical slowing down

Один из наиболее интересных эффектов теории динамических систем — critical slowing down.

При приближении к потере устойчивости система после малого возмущения может возвращаться к равновесию всё медленнее.

Условно:

Здоровая система

возмущение
    ↓
отклонение
    ↓
быстрое восстановление
Система с уменьшающимся запасом устойчивости

то же возмущение
    ↓
большее/длительное отклонение
    ↓
медленное восстановление

В IT это может проявляться как рост:

Поэтому Recovery Time / Recovery Rate — один из ключевых кандидатов на фундаментальную метрику продукта.


6. Что именно продаёт продукт

Продукт не должен позиционироваться как:

Позиционирование:

Платформа измерения устойчивости IT-систем.

Она должна отвечать:

Как меняется способность системы восстанавливаться после возмущений и насколько её текущее поведение отличается от собственного устойчивого режима?

Коммерческая ценность:

Увидеть деградацию устойчивости до того, как она проявится как очевидная авария.

7. Модель поставки

Базовая модель — полностью коробочное решение.

Все компоненты разворачиваются внутри инфраструктуры заказчика:

┌─────────────┐
│ Host Agent  │──┐
└─────────────┘  │
┌─────────────┐  │
│ Host Agent  │──┤
└─────────────┘  │
┌─────────────┐  │    ┌────────────────┐
│ Host Agent  │──┼───▶│ Collector/Event│
└─────────────┘  │    │ Bus            │
                 │    └───────┬────────┘
┌─────────────┐  │            │
│ Host Agent  │──┘            ▼
└─────────────┘       ┌──────────────────────┐
                      │ Analysis Engine      │
                      ├──────────────────────┤
                      │ Time-Series Storage  │
                      │ Event Store          │
                      │ Topology Graph       │
                      │ Analytical Storage   │
                      └──────────┬───────────┘
                                 ▼
                      ┌──────────────────────┐
                      │ Web UI / API         │
                      └──────────────────────┘

Данные не обязаны покидать контур клиента.

Это позволяет, при явном разрешении заказчика, работать глубже, чем типичный SaaS-продукт:


8. Архитектурные уровни

8.1. Host Sensor

На каждый наблюдаемый Linux-сервер устанавливается агент.

Его задача — видеть фактическое поведение ОС, процессов и сети.

Предпочтительная технологическая база:

Базовая ценность продукта не должна требовать изменения кода приложения или установки SDK в каждый сервис.


8.2. Интеграционные адаптеры

Дополнительные модули могут обогащать картину данными из:

Это не обязательная часть базовой установки. Это второй слой точности.


8.3. Collector

Collector принимает данные от агентов и приводит их к единой модели.

Пример унифицированного события:

timestamp
host
process
service
source
destination
protocol
operation
latency
status
resource_state
correlation_metadata

Collector должен поддерживать:


8.4. Динамический граф системы

Одна из центральных сущностей продукта — автоматически построенный граф реальных зависимостей:

Service A
   ↓
Service B ──▶ Redis
   ↓
Kafka
   ↓
Service C ──▶ PostgreSQL

Для каждой связи желательно знать:

Это не архитектурная схема, которую кто-то нарисовал вручную.

Это наблюдаемая динамическая топология работающей системы.


9. Что слушает агент

9.1. CPU

Не только общий процент:

Ключевое различие:

CPU высокий

и

система перестала успевать обслуживать работу

— не одно и то же.


9.2. Память


9.3. Диск и файловая система


9.4. Сеть

На уровне соединений:

Базовый режим не обязан читать payload.

В on-premise инсталляции расширенный L7-анализ может быть отдельным, явно включаемым модулем.


9.5. Процессы


9.6. Контейнеры и Kubernetes


10. Права агента

Права должны быть разделены по профилям.

Нежелательная архитектура:

один универсальный root-agent, который умеет всё.

Желательная:

минимальные привилегии для каждого сенсора и адаптера.

10.1. Базовый host profile

Может потребовать доступ к:

В зависимости от версии Linux и способа развёртывания могут использоваться capabilities вроде:

Конкретный security profile должен проектироваться отдельно под поддерживаемые ядра.


10.2. Расширенный сетевой профиль

Дополнительно может включать:

Чтение payload должно быть отдельной опцией с явным включением.


10.3. Database adapters

Предпочтительный режим:

Категории данных:


10.4. Kubernetes

Отдельный ServiceAccount с read-only RBAC для чтения:


11. События важнее сырых метрик

Продукт не должен превращаться в бездонное хранилище временных рядов.

Нужно автоматически выделять события-возмущения.

Пример:

12:00:03 traffic +18%
12:00:04 Service B latency +35%
12:00:06 DB active sessions +21%
12:00:08 queue depth +190%
12:00:15 retries +40%
12:00:28 traffic вернулся к baseline
12:01:12 queue вернулась к baseline

Из этого формируется объект:

Perturbation #84721

Likely trigger:
    traffic spike

Affected:
    Service B
    PostgreSQL
    Queue X

Peak response:
    +190%

Recovery time:
    69 sec

Propagation depth:
    3 hops

Residual state:
    none

Такие объекты — основа аналитики.


12. Формальная модель отклика

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

\[ X(t) = [x_1(t), x_2(t), ..., x_n(t)] \]

где компоненты — наблюдаемые параметры.

Возмущение:

\[ u(t) \]

Отклонение от baseline:

\[ \Delta X(t) = X(t) - X_{baseline}(t) \]

В простой локальной линейной аппроксимации:

\[ \frac{d\Delta X}{dt} = A\Delta X + Bu(t) \]

где матрица \(A\) описывает характер внутренней динамики системы.

Практическому продукту необязательно восстанавливать полную матрицу \(A\).

Можно оценивать её проявления:


13. Recovery Rate

Для отдельного сигнала после возмущения можно использовать приближение:

\[ x(t) = x_0 + A e^{-\lambda t} \]

где:

Характерное время:

\[ \tau = \frac{1}{\lambda} \]

Интерес представляет не только абсолютное значение, но и его тренд:

Week 1   τ = 4.2 s
Week 2   τ = 5.1 s
Week 3   τ = 7.8 s
Week 4   τ = 13.4 s

При этом CPU, RAM и SLA могут оставаться зелёными.


14. Автокорреляция

При замедлении восстановления соседние значения временного ряда могут становиться сильнее зависимыми.

Кандидат на дополнительный индикатор:

\[ \rho_1 = Corr(X_t, X_{t-1}) \]

Рост lag-1 autocorrelation сам по себе ничего не доказывает, но в сочетании с другими признаками может быть полезен.


15. Дисперсия и хвосты распределений

При деградации динамики среднее значение может почти не измениться.

Например:

mean latency    stable
p95             slowly increasing
p99             unstable
variance        increasing

Поэтому продукт должен внимательно анализировать:


16. Чувствительность

Можно оценивать отношение размера отклика к размеру возмущения:

\[ \chi = \frac{|\Delta Response|}{|\Delta Input|} \]

Пример:

Одинаковое изменение входящего трафика: +10%

Месяц назад:
latency +5%

Сегодня:
latency +22%

Система стала чувствительнее к одинаковому воздействию.

Это потенциально один из самых сильных признаков снижения запаса устойчивости.


17. Распространение возмущения по графу

Для события измеряются:

Пример:

Нормальный режим

API → DB

Возмущение локально.
Через 3 секунды затухло.
Деградирующий режим

API
 ↓
DB
 ↓
Connection Pool
 ↓
Retries
 ↓
Upstream
 ↓
Queue

Локальная проблема стала системной.

Условный показатель:

\[ PropagationFactor = \frac{AffectedComponents}{PerturbationMagnitude} \]

18. Stability Index

Пользователю полезен единый показатель, но он не должен быть «магическим числом».

Любой итоговый score должен раскладываться:

System Stability Score    73 / 100

Recovery                  81
Sensitivity               62
Propagation               68
Resource Headroom         77
Topology Stability        89
Error Amplification       71

Условно:

\[ S = w_1R + w_2(1-\chi) + w_3(1-P) + w_4H + w_5T + ... \]

где:

Важно: формулу нельзя «придумать маркетингом». Сначала необходимо доказать, какие признаки реально имеют предиктивную ценность.


19. Собственный baseline каждой системы

Нельзя сравнивать все системы с единым «идеальным» эталоном.

Система A:
p99 = 900 ms — нормальный режим.

Система B:
p99 = 900 ms — аварийный режим.

Поэтому базовый принцип:

Система сегодня сравнивается прежде всего с этой же системой в её собственном устойчивом режиме.

Baseline должен учитывать:


20. Естественные возмущения

На первом этапе продукт не должен сам создавать хаос.

В production и так постоянно происходят естественные perturbations:

Это позволяет начать анализ response/recovery пассивно.


21. Controlled perturbations — будущий уровень

После доказательства ценности пассивного анализа можно добавить безопасные управляемые воздействия:

Это пересекается с chaos engineering, но цель отличается.

Chaos engineering спрашивает:

«Выдержит ли система отказ?»

Наш продукт:

«Как меняется функция отклика системы и не уменьшается ли её запас устойчивости?»

22. Отличие от observability

Обычная observability Платформа устойчивости
Что происходит?Насколько система устойчива?
Где ошибка?Как распространяется возмущение?
Какая latency?Как меняется recovery time?
CPU высокий?Насколько система чувствительна?
Алерт после thresholdТренд снижения устойчивости
Компонентная диагностикаСистемная динамика
МетрикаРеакция
СостояниеПоведение

Продукт не обязан заменять observability stack. Он может использовать его как источник данных.


23. Отличие от APM

APM ориентирован прежде всего на:

Наш объект:

система как динамическое целое.

APM может быть отличным источником телеметрии, но это другой уровень анализа.


24. Отличие от capacity planning

Capacity planning:

«Хватит ли CPU, RAM, диска и сети при росте нагрузки?»

Устойчивость шире.

Система может иметь свободные ресурсы и при этом быть неустойчивой из-за:


25. Отличие от anomaly detection

Anomaly detection ищет отклонение от нормы.

Но:

Главный вопрос продукта:

Как система реагирует на отклонение и меняется ли характер этой реакции?

26. UI: пять вопросов главного экрана

26.1. Каков общий запас устойчивости?

Stability
73 / 100

↓ 8 points in 14 days

26.2. Почему он изменился?

Recovery time       +46%
DB sensitivity      +31%
Queue propagation   +24%
CPU headroom        stable
Network             stable

26.3. Где источник риска?

Checkout API
     ↓
Payment Service    HIGH SENSITIVITY
     ↓
PostgreSQL         SLOW RECOVERY

26.4. Какие реальные события это подтверждают?

Aug 28 15:41
Traffic pulse +12%
Recovery time: 39 sec
Expected: 14 sec

Aug 28 10:12
DB latency +18%
Affected services: 7
Expected: 3

26.5. Что изменилось?

Главный визуальный язык:

было → стало

27. Объяснимость

Любой итоговый индекс должен позволять пройти вниз:

Score
  ↓
Factor
  ↓
Component
  ↓
Perturbation Event
  ↓
Raw Signals

Принцип:

Ни одного красного индекса без объяснения, почему он красный.

28. Confidence

Система должна явно показывать качество вывода:

High confidence
Medium confidence
Low confidence
Insufficient data

Хороший продукт обязан уметь сказать:

Данных недостаточно.

Это лучше, чем генерировать красивое, но необоснованное число.


29. Изменения конфигурации

Нужно коррелировать устойчивость с изменениями:

Например:

14:03 deployment v4.28
14:10 recovery rate ухудшился на 19%
14:27 sensitivity Payment → DB выросла на 34%

Это потенциально одна из наиболее практически ценных функций.


30. Хранилища

Рекомендуется разделить данные на несколько классов.

Time-series storage

Event Store

Graph Store

Analytical Store


31. Частота сбора

Минутной детализации недостаточно для ряда процессов.

Пример:

kernel events        event-driven
network events       event-driven
fast metrics         1–5 sec
normal metrics       10–30 sec
slow inventory       1–5 min
aggregates           configurable

Высокочастотные данные должны агрегироваться максимально близко к источнику.


32. Контроль телеметрии

Агент должен поддерживать:

Перспективная механика:

В спокойном режиме агент собирает агрегаты. При обнаружении необычной динамики временно повышает разрешение наблюдения.

33. Безопасность

Поскольку продукт получает глубокий доступ к инфраструктуре, security — часть базовой архитектуры.

Требования:


34. Privacy by architecture

Базовая конфигурация должна работать без хранения пользовательских данных.

Для HTTP достаточно:

GET /orders/:id
status: 200
latency: 240 ms
service A → service B

Не требуется хранить:

customer_name
phone
token
request_body

Глубокий payload-анализ — отдельная явно включаемая возможность.


35. Безопасность самого агента

Агент не должен становиться причиной проблемы.

Требования:

Если Collector недоступен:

бизнес-приложение продолжает работать независимо.

36. MVP

MVP 1 — инфраструктурный сенсор

Linux-only.

Собираем:

Строим:

Анализируем:

MVP 2 — контекст

Добавить:

MVP 3 — системная оценка

Добавить:

MVP 4 — активные probes

Добавить controlled perturbations как отдельный безопасный режим.


37. Исследовательский стенд

До разработки «красивого индекса» нужен датасет реальных и контролируемых деградаций.

Эксперименты:

  1. Нормальная система.
  2. Постепенно уменьшаем connection pool.
  3. Увеличиваем downstream latency.
  4. Добавляем network latency.
  5. Создаём packet loss.
  6. Уменьшаем CPU limit.
  7. Создаём lock contention.
  8. Увеличиваем cache miss.
  9. Создаём retry amplification.
  10. Перегружаем очередь.

Для каждого сценария измеряем:

Цель:

Проверить, какие early-warning признаки действительно устойчивы и воспроизводимы.

38. Научная честность

Нельзя обещать:

«Мы математически предсказываем любую аварию».

Корректнее:

Мы измеряем изменение динамических свойств системы и выявляем признаки снижения её способности восстанавливаться после возмущений.

Это проверяемая инженерная гипотеза.


39. Классы проблем, где подход выглядит перспективно


40. Ограничения

Продукт не является универсальным предсказателем всех отказов.

Подход может не дать раннего сигнала при:

Это ограничение нужно признавать с самого начала.


41. Пользователи

Основные роли:


42. Use cases

До инцидента

Почему всё ещё зелёное, но система становится менее устойчивой?

После release

Изменил ли deployment характер восстановления?

Нагрузка

Не просто выдерживаем ли мы нагрузку, а как быстро уменьшается запас устойчивости?

Архитектура

Какие связи превращают локальное возмущение в системное?

Postmortem

Что менялось в поведении системы за часы или дни до аварии?

43. Пример пользовательского сценария

В понедельник:

Stability Index      86
Recovery             91
Sensitivity          88
Propagation          84

Во вторник вышел release.

В среду:

Stability Index      79

Но:

Платформа объясняет:

Payment Service

Recovery after DB latency perturbations:
12 sec → 29 sec

Retry amplification:
1.08 → 1.42

Affected downstream services:
2 → 6

Команда получает конкретную причину исследовать release до реального инцидента.

Это и есть целевая ценность продукта.


44. Позиционирование и язык продукта

Нежелательно:

«AI предсказывает сбои».

Предпочтительно:

Мониторинг показывает состояние. Мы показываем устойчивость.

Или:

Мы измеряем, как ваша система восстанавливается после возмущений.

Или:

Узнайте о потере устойчивости до того, как она станет аварией.

Используемые внутри математические, статистические или машинные методы — это реализация, а не ценностное предложение.


45. Концепция лендинга

Hero

Заголовок

Узнайте об аварии до того, как она случится

Подзаголовок

Платформа измеряет устойчивость IT-систем, анализируя, как инфраструктура реагирует на реальные возмущения и насколько быстро возвращается к нормальному режиму.

CTA

Hero-визуал

Сверху привычные метрики:

CPU       NORMAL
Memory    NORMAL
Errors    NORMAL
Latency   NORMAL

Снизу:

SYSTEM STABILITY

92 ─────────────
86 ────────╲
78 ─────────╲
66 ──────────╲

Подпись:

Все привычные индикаторы ещё зелёные. Характер реакции системы уже изменился.

46. Блок лендинга «Мониторинг видит факт. Мы видим динамику»

Слева:

Traditional Monitoring

CPU
RAM
Errors
Latency
Logs

Справа:

System Stability

Recovery time
Sensitivity
Propagation
Amplification
Resilience trend

47. Блок «Как это работает»

  1. Устанавливаем агент на серверы.
  2. Автоматически строим карту реальных зависимостей.
  3. Наблюдаем естественные возмущения.
  4. Измеряем реакцию и восстановление.
  5. Показываем изменение устойчивости.

48. Блок «Без изменения кода»

Ключевое сообщение:

Для базовой ценности не требуется встраивать SDK в приложения.

Основной слой работает через ОС, ядро и наблюдаемое сетевое взаимодействие.

Дополнительные адаптеры подключают БД, Kubernetes, брокеры и существующий observability stack.


49. Блок «Внутри вашего контура»

Все данные остаются у вас.
Servers → Agents → Local Analysis Server → Internal UI

Без обязательной передачи телеметрии в облако производителя.


50. Дизайн продукта и лендинга

Визуальный стиль:

Использовать:

Не использовать как основу:

Рекомендуется:


51. Долгосрочное развитие

Эволюция продукта может выглядеть так:

Observe
   ↓
Measure
   ↓
Estimate Risk
   ↓
Probe
   ↓
Recommend

Но первая версия должна оставаться простой:

наблюдаем → выделяем возмущение → измеряем реакцию → измеряем восстановление → показываем изменение устойчивости.

52. Возможная категория продукта

В перспективе продукт можно позиционировать как новый слой:

Resilience Observability

или:

System Stability Engineering Platform

То есть observability не только состояния системы, а её устойчивости.


53. Главный вопрос для команды разработки

Не:

«Какие ещё метрики мы можем собрать?»

А:

«Какие данные нужны, чтобы восстановить цепочку: возмущение → реакция → распространение → восстановление?»

Это принципиальная смена точки зрения.

Если продукт проектируется вокруг списка метрик — получится ещё один monitoring stack.

Если он проектируется вокруг динамической реакции системы — появляется шанс создать отдельный класс продукта.


54. Формула продукта

Infrastructure Telemetry
          +
Dynamic Topology
          +
Perturbation Detection
          +
Response Analysis
          +
Recovery Analysis
          +
Propagation Analysis
          ↓
System Stability Model
          ↓
Explainable Stability Index
          ↓
Early Indication of Resilience Degradation

55. Принципы продукта

  1. Наблюдать систему как целое.
  2. Измерять реакцию, а не только состояние.
  3. Не требовать изменений кода для базовой ценности.
  4. Работать полностью внутри контура клиента.
  5. Автоматически строить динамический граф зависимостей.
  6. Использовать естественные возмущения как источник информации.
  7. Объяснять каждую итоговую оценку.
  8. Не выдавать исследовательскую гипотезу за гарантированный прогноз.
  9. Уметь говорить «данных недостаточно».
  10. Быть пассивным и безопасным по умолчанию.
  11. Разделять права по принципу least privilege.
  12. Не становиться частью критического пути бизнес-приложений.
  13. Позволять углублять наблюдение модулями, а не монолитным всесильным агентом.

56. Что нужно доказать прежде всего

У продукта есть сильная концептуальная гипотеза, но её необходимо экспериментально проверить.

Первые научно-инженерные вопросы:

  1. Какие виды естественных возмущений можно надёжно выделять автоматически?
  2. Насколько стабильно можно оценивать recovery rate в реальном production noise?
  3. Какие показатели чувствительности воспроизводимы?
  4. Можно ли отличить сезонный drift от снижения устойчивости?
  5. Насколько полезны autocorrelation и variance для разных классов систем?
  6. Можно ли предсказывать рост каскадности по динамике графа?
  7. Какова минимальная длина наблюдения для доверительного baseline?
  8. Какие классы аварий действительно имеют наблюдаемую предаварийную динамику?
  9. Как объяснять результат инженеру так, чтобы он мог проверить вывод?
  10. Как избежать alert fatigue и ложной уверенности?

57. Итоговая идея

Суть продукта не в том, чтобы собрать больше телеметрии, чем существующие системы.

Суть — изменить объект измерения.

Обычный мониторинг наблюдает параметры системы.

Предлагаемый продукт наблюдает:

способность системы возвращаться к устойчивому режиму после возмущений.

Если эта способность ухудшается, если восстановление замедляется, чувствительность растёт, а локальные проблемы начинают распространяться дальше по системе, это может быть объективным ранним сигналом того, что запас устойчивости уменьшается.

Именно эта гипотеза должна быть архитектурным центром продукта, предметом первых экспериментов и главным коммерческим отличием.