BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс для системных аналитиков » Модуль 5.1. Производительность, масштабирование, надёжность

Модуль 5.1. Производительность, масштабирование, надёжность

Темы: SLO/SLA/SLI, SLO-деревья, RPS/latency/throughput, очереди и backpressure, кэширование, горизонталь/вертикаль, режимы деградации. Артефакт: NFR-каталог. Практика: NFR для 3 критичных сценариев.

 

Зачем модуль

Системный аналитик (SA) должен переводить бизнес-ожидания («чекаут не должен тормозить») в измеримые не-функциональные требования (NFR): целевые задержки, доступность, пропускную способность, стратегии масштабирования и деградации. Этот модуль даст вам язык, формулы и шаблоны — чтобы договориться с бизнесом, написать проверяемые критерии и построить систему мониторингов/алертов.

 

Базовые определения (как сотруднику — к исполнению)

  • SLI (Service Level Indicator) — измеряемый показатель: p95 latency, error-rate, availability, throughput.
  • SLO (Service Level Objective) — целевое значение SLI: «p95 POST /payments < 3 с в 8:00–23:00, 99% дней месяца».
  • SLA (Service Level Agreement) — юридическое соглашение с последствиями (штрафы/кредиты). Внутри компании чаще работаем с SLO.
  • Error Budget = 1 − SLO по доступности (на период). Например, при 99.9%: 43.2 мин «бюджета» в месяц.

 

Нормы для формулировки SLO

  • Указывайте метрику, окно, время суток, зону времени, популяцию запросов (например, «успешные 2xx+3xx, RU-регион»).
  • Для задержек — квантили (p95/p99), не среднее.
  • Для доступности — доля успешных запросов (исключая planned maintenance по договорённости).

 

SLO-деревья: каскад целей и составная доступность

Большинство сценариев используют несколько сервисов. Составная доступность «в серии» = произведение доступностей:

A_total = A_gateway × A_checkout × A_payments × A_db
Пример: 0.999 × 0.999 × 0.999 × 0.999 ≈ 99.6%

 

Параллель (fallback/реплика):

A_parallel = 1 − Π(1 − A_i)

 

Пример: два независимых PSP по 99.0% → A ≈ 99.99%

 

Как строить SLO-дерево

  1. Возьмите бизнес-SLO («Оформление заказа» ≥ 99.8% успешно, p95<2.5s).
  2. Разложите на под-SLO по зависимостям (Gateway, Checkout API, Payments, DB, кэш).
  3. Заложите бюджеты (кто сколько «съедает»).
  4. Добавьте операционные SLO: очереди (lag), кэши (hit-ratio), фоновые воркеры (время обработки).

 

Производительность: RPS, задержки, throughput

  • RPS — запросов в секунду (по эндпоинту/классу).
  • Throughput — скорость обработки фоновых задач/сообщений.
  • Допустимая загрузка: ρ = λ/μ (Литтл/очереди). ρ→1 ⇒ рост хвостов задержек (tail latency).
  • Headroom: запас мощности (обычно целимся в ρ ≤ 0.6–0.7 на пике).

 

Типовые целевые задержки (ориентиры)

  • UI-критичные GET — p95 200–500 мс.
  • Мутации (POST платежа) — p95 1–3 с.
  • Фоновые задачи — SLA в минутах (например, «PDF-счёт ≤ 2 мин p95»).

 

Очереди, backpressure и ретраи

Когда пиковая нагрузка выше пропускной способности, спасают очереди и обратное давление:

  • Очередь (work queue): сглаживает пики, защищает бэкенд. Важны prefetch, лимиты конкурентности, DLQ, ретраи с экспонентой + jitter.
  • Backpressure: ограничение потребителя (tokens/leaky bucket), 429/503 + Retry-After.
  • Идемпотентность обязательна (повторы неизбежны).
  • Lag SLO: «p95 lag < 5 сек в 9:00–22:00».

 

Кэширование: где и как

Паттерны:

  • Cache-Aside (читатели/заполнители) — самый частый.
  • Read-Through — приложение не знает о кэше.
  • Write-Through — запись сразу и в кэш и в БД.
  • Write-Behind — запись в БД асинхронно (риск потери при сбое).

 

Ключевые SLI кэша:

  • Hit Ratio (глобально и по ключевым наборам).
  • Staleness (возраст данных), E2E latency.
  • Warm-up политика и invalidation (события/TTL/версионирование ключей).

 

Риски:

  • Двойное инвалидационное обновление → рассогласование. Решение: версионированные ключи или event-driven инвалидация.
  • «Горячие ключи» → лок: используйте singleflight/locking и jitter для TTL.

 

Масштабирование: вертикаль vs горизонталь

  • Вертикаль (больше CPU/RAM): быстро, но потолок и цена растут нелинейно.
  • Горизонталь (больше инстансов/шардов): требует статус-лесса, sticky-балансировки, идемпотентности, шардирования БД.

 

Шаблон решения:

  1. Статус-лесс сервисы (состояние — во внешних хранилищах/кэше).
  2. Autoscaling по метрикам (CPU/RPS/queue-depth/p95).
  3. DB: read-реплики, партиционирование, шардинг (по ключу домена).
  4. Хранение: CDN, объектное, асинхронные загрузки.

 

Надёжность: отказоустойчивость и деградации

Паттерны устойчивости:

  • Timeouts и Circuit Breakers (fail-fast).
  • Bulkheads (изоляция пулов/ресурсов).
  • Rate Limits/quota.
  • Retry только для retryable ошибок (5xx/timeout), с jitter.
  • Chaos/Failure Injection — тренировка.

 

Режимы деградации (заранее описанные «ступени»):

  1. Мягкая деградация: кэшированные/устаревшие данные (stale-while-revalidate), частичные ответы, скрыть «тяжёлые» блоки UI.
  2. Функциональная деградация: временно выключить вторичные фичи (рекомендации/история).
  3. Ограничения: только предоплата, запрет редких методов.
  4. Read-only: сохраняем поиск/каталог, блокируем создание.
  5. Техработы: информируем, используем бюджет ошибок.

 

Все режимы должны иметь явные фичефлаги, AC и сценарии отката.

 

Тесты производительности и ёмкости

Типы:

  • Baseline (нормальный режим), Stress (рост до деградации), Spike (резкий всплеск), Soak (длительный), Failover (отказ узла).
    Что фиксировать: профили по RPS, p50/p95/p99, ошибки, saturations (CPU/IO/db-connections), точки слома, деградации.

 

Критерии готовности:

  • «Пик ×2» укладывается в SLO.
  • Нет локальных горячих точек (один инстанс/шард «горит»).
  • План включения деградаций документирован/проверен.

 

Что именно должен сделать SA

  1. Сформировать NFR по сценариям (SLO/SLA, окна, оговорки).
  2. Построить SLO-дерево и распределить бюджеты.
  3. Утвердить профили нагрузки (обычный/пик/анонс/праздник).
  4. Описать очереди/кэш: где, какие цели hit-ratio/lag.
  5. Прописать режимы деградации и правила ретраев.
  6. Подготовить каталог NFR и связать его с AC/RTM.
  7. Включить обсервабилити в требования: трассировка, метрики, логи, алерты.

 

Примеры формулировок (готовые блоки)

Чекаут → «Создание платежа»

  • SLO-latency: p95 < 2.5 с (08:00–23:00, RU), p99 < 5 с.
  • Availability: ≥ 99.9%/квартал (исключая 1 плановое окно/мес ≤ 30 мин).
  • Throughput: выдерживать 250 RPS (пик) с headroom 30%.
  • Retry policy (client): 2 попытки на 5xx/timeout с экспонентой (100/300 мс + jitter).
  • Idempotency: Idempotency-Key TTL 72ч.
  • Degradation: при PSP UNAVAILABLE — 202 Accepted + вебхук/поллинг.

 

Каталог → «Поиск»

  • SLO-latency: p95 GET /search < 300 мс (CDN+кэш), p99 < 800 мс.
  • Hit-ratio кэша: ≥ 0.85.
  • Degradation: отсутствие рекомендаций/фасетов при cache_miss_rate > 0.3.

 

Отчёт DWH → «Выручка дневная»

  • Freshness: p95 freshness ≤ 15 мин 08:00–23:00.
  • Completeness: ≥ 99.9% записей за день к 00:30+1.
  • Integrity: 0 несогласованностей сумм (refund ≤ captured).
  • Backfill: за 90 дней идемпотентный, окна по датам.

 

Артефакт: NFR-каталог (шаблон)

# NFR Catalog vX.Y.Z
Owner: <Команда/Сервис>, SA: <ФИО>, Контакты: <#канал>

## Сценарий: <Короткое имя, например "Checkout: CreatePayment">
Бизнес-значимость: High | Medium | Low
Популяция: RU, web+mobile, 8:00–23:00 (Europe/Stockholm)

### Цели (SLO)
- Latency: p95 < ...; p99 < ...; окно: ...
- Availability: >= ...% / период: ...
- Error rate: < ...%
- Throughput: >= ... RPS (пик), headroom >= ...
- Queue Lag: p95 < ... сек (если применимо)
- Cache: hit-ratio >= ...; staleness <= ...

### Ограничения/допущения
- Исключаем planned maintenance до ... мин/мес
- Внешний PSP с SLA 99.0% → fallback ...

### Деградации (ступени)
1) Кэш-только ответы (TTL=...); отключить X
2) Ограничение RPS до ...
3) Read-only режим / 202 Accepted для мутаций

### Ретраи/идемпотентность
- Классы ошибок «ретраим»: ...
- Политика: attempts/backoff/jitter
- Idempotency-Key TTL: ...

### Обсервабилити и алерты
- Метрики: latency p95/p99, error_rate, rps, queue_depth, cache_hit
- Алерты: условия и каналы
- Trace: `traceparent` + `correlationId` обязателен

### Тесты и приёмка
- Perf: baseline/stress/spike/soak
- Failure: отключение PSP, падение реплики БД
- Критерии: ...

### Риски и планы
- Риск: ... | План: ...

 

Практические мини-расчёты и правила большого пальца

Сколько инстансов нужно?

Нагрузка: пик 250 RPS, p95 2.5с, среднее CPU 30% на 1 pod при 50 RPS.

Требуется: минимум 250/50 = 5 pod (+ headroom 30%) → 7 pod.

 

Очередь и воркеры

Вход: 1 200 задач/мин (20/с). Средняя обработка 150 мс → μ ≈ 6.7/с на воркер.

Воркеров: λ/μ ≈ 20/6.7 ≈ 3 → с запасом 5–6.

Lag SLO: держим p95 < 5 сек.

 

Глобальные доступности

SLO чекаута 99.8% при PSP=99.0% только с параллельным PSP или асинхронным 202 Accepted.

 

Риски и меры (таблица)

Риск

Проявление

Меры

Хвостовая задержка (p99)

Пользователи «подвисают»

Таймауты короче серверных, CB, пулы, ограничение конкурентности, профилирование GC/IO

RETRY-шторм

Всплеск дублей, лавинообразная нагрузка

Экспонента+джиттер, лимиты попыток, классификация ошибок, идемпотентность

Горячие ключи кэша

Шипы латентности, шторм к БД

Singleflight, pre-warm, шардирование, локальные кэши

Общая БД для разных сервисов

Блокировки/глухой монолит

«БД на сервис», CQRS/витрины, события

Отсутствие деградаций

Полная недоступность

План деградаций, фичефлаги, регулярные учения

Наблюдаемость «вслепую»

Долго ищем причины

Обязательная трассировка, стандартизованные метрики и логи

 

Вопрос–Ответ

Q: Чем SLO отличается от SLA?
A: SLO — внутренняя целевая метрика. SLA — юридический договор с компенсациями. Сначала формулируем SLO, потом (если нужно) SLA.

 

Q: Почему квантили (p95/p99), а не среднее?
A: Среднее скрывает хвосты, а пользователь страдает от p95/p99.

 

Q: Сколько закладывать headroom?
A: Обычно 20–40% к расчётной мощности на пике. Смотрите историю и «чёрные пятницы».

 

Q: Что важнее — кэш или шардирование БД?
A: Для чтений — кэш даёт мгновенный выигрыш. Для длительной устойчивости и записей — партиционирование/шардирование неизбежно.

 

Q: Можно ли «ретраить» POST без идемпотентности?
A: Нельзя. Всегда ключ идемпотентности/дедуп.

 

Q: Как выбирать целевую доступность?
A: По стоимости простоя и стоимости повышения надёжности. Иногда 99.5% лучше и дешевле, чем 99.99% (дорогая сложность).

 

Практика (90–120 мин): NFR для 3 критичных сценариев

Выберите 3 сценария (например: CreatePayment, Search, GenerateInvoice). Для каждого:

  1. Заполните карточку из NFR-каталога.
  2. Постройте SLO-дерево (серии/параллели, бюджеты).
  3. Определите режимы деградации и ретраи.
  4. Укажите метрики и алерты (условия/каналы).
  5. Подготовьте план перф-тестов (baseline/stress/spike/soak + failure).

 

Критерии зачёта

  • SLO сформулированы точно (метрика, окно, популяция).
  • Учтены доступность, задержки, throughput, кэш/очереди (если применимо).
  • Есть SLO-дерево и расчёт составной доступности.
  • Режимы деградации и ретраи описаны.
  • Метрики/алерты привязаны к SLO, есть приёмочные перф-тесты.

 

Шпаргалка (распечатайте)

  • SLI → SLO → (иногда) SLA. Ошибка бюджета управляет темпом изменений.
  • Составная доступность в серии умножается — не обещайте сверхзначения без параллелей.
  • Очередь + backpressure + идемпотентность — ваш «аварийный ремень».
  • Кэш спасает задержку, но не забывайте про инвалидацию и горячие ключи.
  • Горизонталь работает при статус-лессе и шардировании.
  • Деградации проектируются заранее и регулярно тренируются.
  • Наблюдаемость — часть NFR: трассы, метрики, логи, алерты.

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Модуль 4.3. Хранилища и интеграции с DWH/BI
Следующая статья →
Модуль 5.2. Безопасность и соответствие
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ПАО АНК «Башнефть» — российская вертикально-интегрированная нефтяная компания, с 2016 года входит в ПАО НК «Роснефть». Главный офис расположен в городе Уфе (Башкортостан). Добыча углеводородов – более 21 млн тонн нефти в год. Объем переработки – более 18 млн тонн нефти в год. Число сотрудников – более 33 тыс. человек.

  • НПФ «Будущее» — один из крупнейших негосударственных пенсионных фондов России, предоставляющий услуги по пенсионному обеспечению и накоплениям. Фонд активно внедряет цифровые технологии для повышения качества обслуживания клиентов.

  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

  • КАМИ – компания-лидер по поставкам тяжёлых станков в России, занимающаяся продажей и обслуживанием оборудования для обработки металла и дерева, изготовления мебели и не только. На сегодняшний день в компании работают более 1300 человек, запущено 10 обучающих центров, в продаже более 7000 единиц техники. 

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.