GH GambleHub

SLA/OLA з провайдерами

1) Терміни та межі

SLI - вимірюваний індикатор (доступність, латентність p99, успішно оброблені вебхуки, RPO/RTO).
SLO - цільове значення SLI за вікно вимірювання (наприклад, 99. 9 %/30 днів).
SLA - юридично зобов'язуючий документ (SLO + процедури + відшкодування).
OLA - внутрішні цілі і процеси, що забезпечують дотримання SLA.
UC (Underpinning Contract) - «підкладка» з третіми особами (канали, ЦОД, CDN тощо).

Межі: чітко відокремлюйте область відповідальності провайдера (хмара/WAF/CDN/платіжний шлюз/провайдер KYC) від вашої зони (код, конфіг, клієнтські налаштування).

2) Матриця критичності і вибір моделі

Сегментуйте провайдерів за впливом на бізнес:
КласПрикладиНеобхідний рівеньСтратегія
A (місія-критично)Платежі, аутентифікація, ядро даних99. 9–99. 99Дублювання, гарячий фейловер, суворі кредитні механізми
B (критично)Логи, алерти, CDN99. 5–99. 9Кешування, оффлайн-режими, кредит/штраф
C (важливо)BI, звітність99. 0–99. 5«Найкраща спроба», подовжені RTO/RPO
D (допоміжно)Пошта-маркетинг98–99Асинхронність, гнучкість вікон

Від матриці залежить глибина SLA, обсяг перевірок і вимоги до OLA/UC.

3) Метрики та вікна вимірювання

Доступність (Availability): частка часу, коли сервіс виконує запити згідно з допусками.
Латентність: p95/p99 для ключових операцій; «повільний успіх» враховується.
Надійність даних: RPO (максимально допустима втрата даних) і RTO (час відновлення).
Пропускна здатність/ліміти: гарантовані квоти (RPS/MBps).
Якість інтеграцій: частка доставлених вебхуків ≤ X хв, частка 2xx-відповідей, повторів і дедуплікації.
Вікно вимірювання: помісячно/ковзаючі 30 днів, виключення (планові роботи) з лімітами.

Формула «зовнішньої доступності» (приклад):
  • `Availability_ext = 1 − (Downtime_confirmed_outages / Total_minutes_in_window)`
  • Де outage - підтверджений недоступний стан по зовнішньому моніторингу, а не тільки по статус-сторінці провайдера.

4) Зміст SLA (шаблон розділів)

1. Предмет і область (сервіси, регіони, версії API).
2. Визначення (SLI/SLO, «інцидент», «планові роботи», «форс-мажор»).
3. Цілі сервісу (SLO) за категоріями запитів і регіонами.
4. Моніторинг та доказова база: яким способом, чиїми датчиками, з якою періодичністю.
5. Інциденти та ескалації: канали, терміни відгуку/оновлень, ролі.
6. Відшкодування: кредити/штрафи/бонуси, пороги, формули.
7. Безпека і приватність: DPA, шифрування, журнали, повідомлення про порушення.
8. Зміни сервісу: депрекейти, вікно нотифікацій, сумісність.
9. Безперервність і DR: RPO/RTO, тести відновлення.
10. Аудит та комплаєнс: право на аудит, звітність, атестації.
11. Exit Plan: експорт даних, терміни, формат, допомога в міграції.
12. Юридичні положення: юрисдикція, форс-мажор, конфіденційність, термін дії.

5) Приклади формулювань (фрагменти)

5. 1 Доступність та вимірювання

"Провайдер забезпечує 99. 95% доступності в кожен календарний місяць. Доступність вимірюється зовнішнім синтетичним моніторингом Замовника з ≥3 регіонів з інтервалом ≤1 хв. Зафіксована недоступність в ≥2 регіонах одночасно вважається інцидентом рівня SEV2 і зараховується в Downtime

5. 2 Латентність ключового API

"p99 часу відповіді'POST/payments/authorize'≤ 450 мс в 95% днів місяця. Для частки запитів, що перевищують поріг, надається звіт з аналізом причин

5. 3 Інциденти та ескалації

«S1: ack ≤ 15 хв, апдейти кожні ≤ 30 хв, цільове відновлення ≤ 2 год; S2: ack ≤ 30 хв, апдейти ≤ 60 хв; S3: наступного робочого дня. Канали: телефон 24 × 7, чат-бридж, email"

5. 4 Відшкодування (кредити)


If Availability_ext <99. 95% → credit 10% monthly fee
< 99. 9% → 25%
< 99. 5% → 50%

Кредити не виключають інших способів відшкодування збитку при грубій недбалості.

5. 5 Депрекейти і сумісність

"Не менше 180 днів повідомлення для змін, що ламають сумісність. Паралельна підтримка vN і vN + 1 не менше 90 днів"

5. 6 Вихід (Exit)

"Протягом 30 днів після розірвання провайдер безкоштовно надає повний експорт даних у форматах Parquet/JSON + схеми; додаткові послуги міграції - за тарифом X. знищення копій підтверджується актом"

6) OLA: внутрішня опора для зовнішнього SLA

Приклад OLA між «Платформою» і «Командою платежів»:
  • Цілі: p99 gateway ≤ 200 мс, error rate ≤ 0. 3%, DR: RPO 0, RTO 30 хв.
  • Відповідальність: SRE-on-call, 24×7; загальні дашборди та алерти.
  • Процеси: хаос-смоук в релізах, перф-смоук на PR, евристики шейдингу.
  • Гейти: блок деплоя при провалі SLO/xaoc-тесту; обов'язкове оновлення runbook.

7) Моніторинг і докази

Синтетика: зовнішні проби (HTTP/TCP), шлях користувача, «повільний успіх».
RUM: реальний користувацький моніторинг для підтвердження впливу.
Кореляція: метки `provider`, `region`, `api_method`, `incident_id`.
Артефакти: скріншоти/трейси/логи, експорт KPI, хронологія ескалацій.

Міні-політика в CI/CD (псевдо-Rego):
rego package policy. sla deny["Release blocked: provider SLO risk"] {
input. release. affects_providers[_] == p input. slo. forecast[p].breach == true
}

8) Інциденти та взаємодія

Плейбук:

1. Класифікація SEV, відкриття war-room, призначення IC.

2. Повідомлення провайдера по «гарячому каналу», передача артефактів.

3. Обхідні режими/фіча-прапори (stale, шейдинг, rate-cap).

4. Спільний таймлайн, відновлення.

5. Постмортем + дії: оновлення конфігу лімітів, ключів, резервних маршрутів.

6. Ініціація кредитів по SLA, фіксація в білінгу.

9) Безпека і DPA

DPA/приватність: ролі контролера/процесора, категорії даних, база законності, терміни/цілі обробки, субпроцесори та їх SLA.
Шифрування: TLS1. 2+, PFS; дані «на спокої», управління ключами (KMS/HSM), ротація.
Аудит: логи доступу, повідомлення про порушення ≤ 72 год, пентест-звіти за запитом.
Локалізація: регіон зберігання, заборона вивезення без згоди.

10) Supply Chain і сумісність

SBOM/вразливості: політика CVSS-порогів і терміни виправлень (критикав ≤ 7 днів, high ≤ 14).
Сумісність API: контрактні тести, «пісочниці» і стабільні фікстури.
Зміни провайдера: ранні реліз-ноти, прев'ю/бета-вікна, зворотна сумісність.

11) Багатопровайдерність і фейловер

Active/Active: складніше і дорожче, але вище доступність (врахуйте консистентність).
Active/Passive: холодний/теплий резерв, регулярні тренування DR.
Абстракції/адаптери: єдиний контракт, маршрутизація по здоров'ю/вартості/вуглецевому фактору (якщо релевантно).
Ліцензійні/комерційні умови: переносимість, обмеження на виведення даних, вартість egress.

12) Exit-план і періодичні репетиції

Каталог даних/схем і обсяги.
Сценарій переносимості SDK/API (мінімум - second source).
Тест «сухого виходу»: експорт/імпорт, відновлення, перевірка інваріантів.
Юридичні терміни зберігання/видалення після виходу.

13) Тести контракту і conformance

Проби API: позитив/негатив, ліміти, помилки і ретраї.
Доставка подій/вебхуків: підпис/час/дедуп/повтори.
Перф-базлайни: p99, пропускна здатність; регрес-тести за реліз-нотатками провайдера.
Крос-регіон: деградація одного регіону не повинна порушувати SLO глобально.

14) Анти-патерни

SLA «на статус-сторінці» без зовнішніх вимірювань.
Однакові цілі для всіх регіонів/ендпоінтів.
Відсутність прав на аудит і докладних журналів інцидентів.
Немає OLA/UC → зовнішні зобов'язання нікому виконувати всередині.
Невизначений exit-план → заручництво постачальника.
«Штрафи тільки кредитами» без права розірвати при систематичних порушеннях.
Депрекейти без перехідного вікна.

15) Чек-лист архітектора

1. Визначені SLI/SLO для ключових флоу і регіонів?
2. Обрано спосіб зовнішнього моніторингу та доказову базу?
3. У SLA прописані інциденти, ескалації, вікна планових робіт і ліміт винятків?
4. Є кредитна шкала/штрафи і право розірвання при N порушеннях?
5. DPA/безпека: шифрування, журнали, повідомлення, субпроцесори, локалізація?
6. Контрактні тести і пісочниці в пайплайні?
7. Внутрішні OLA/UC забезпечують виконання зовнішніх SLO?
8. DR: заявлені RPO/RTO, проводяться тренування, є звіти?
9. Exit-план: формати експорту, терміни, практика «сухого виходу»?
10. Гейти в CI/CD блокують релізи, що збільшують ризик порушення SLA?

16) Міні-приклади (скетчі)

16. 1 Політика «деплою-гейт» щодо ризику провайдера

yaml gate: provider-slo-risk checks:
- name: forecasted-slo-breach input: slo_forecast/providers. json deny_if: any(.providers[].breach == true)
action_on_deny: "block-release"

16. 2 Експорт «доказів інциденту»

bash curl -s https://probe. example. com/export? from=2025-10-01&to=2025-10-31 \
jq '.      {region, endpoint, status, latency_ms, trace_id, ts}' > evidence. jsonl

16. 3 Контрактний тест вебхука (псевдокод)

python evt = sign(make_event(id=uuid4(), ts=now()))
res = post(provider_url, evt)
assert res. status in (200, 202)
assert replay(provider_url, evt). status = = 200 # idempotency

Висновок

SLA/OLA - це не тільки «юридичний папір», а архітектурний механізм управління ризиком і якістю. Правильні метрики і вікна, зовнішній моніторинг, чіткі процедури інцидентів і відшкодування, внутрішні OLA/UC, гейти в пайплайнах, мульти-постачальники і реальний exit-план перетворюють залежність від провайдерів в контрольовану, вимірювану і економічно передбачувану частину вашої платформи.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.