High Availability и SLA
High Availability и SLA
1) Терминдер жана бизнес менен байланыш
SLI (Service Level Indicator) - тейлөөнүн өлчөнүүчү көрсөткүчү (мисалы, 2xx/3xx ≤ T мс).
SLO (Service Level Objective) - SLI максаттуу мааниси (мисалы, "99. суроо-талаптын 95% ≤ 300 ms").
SLA (Service Level Agreement) - кардардын алдындагы келишимдик милдеттенме (бузулган учурда айыптар/кредиттер).
HA (High Availability) - SLO/SLA аткарууга мүмкүндүк берүүчү архитектуралык жана операциялык чаралар.
Принцип: SLA SLO таянат, ал эми SLO - байкалган SLI. Сиз өлчөй албаган нерсени SLAга убада кыла албайсыз.
2) "Тогуз" жана жеткиликтүүлүк математикасы
Мезгил үчүн жеткиликтүүлүк = 'жумуш убактысы/жалпы _ убакыт'. Болжолдуу маалыматтар:Жеткиликтүүлүк курамы
Ырааттуу чынжыр ("кызыл жол" боюнча көз карандылык): 'A _ total = Π A_i' (ар бир компонент жыйынтыкты азайтат).
Параллель актив-актив түйүндөрү: 'A _ total = 1 − Π (1 − A_i)' (резерв жыйынтыкты көбөйтөт).
3) так өлчөө үчүн эмне (туура SLI)
Колдонуучунун көз карашы: негизги операцияларды ийгиликтүү аяктоо (логин, депозит, чек) жана алардын жашыруун p99.
Саат коридору: жылма терезелер (5/30/60 мин) жана региондор боюнча бириктирүү.
Өзгөчөлүктөр: "пландаштырылган терезелер" SLOда эске алынат, ал эми SLAда - эгерде келишимде мындай деп айтылса гана.
- Жеткиликтүүлүк: ийгиликтүү жооптордун үлүшү ≤ Т.
- Сапаты: p95/p99 latency.
- Курамдык: "ийгиликтүү депозиттердин үлүшү ≤ 5 с".
4) Error Budget жана күйүүчү ылдамдыгы
Error Budget = `1 − SLO`. 99 үчүн. 95% айлык терезе 0 берет. 05% ката/токтоп калуу.
Burn-rate: бюджеттин керектөө ылдамдыгы (мисалы, 4 × 6 сааттын ичинде сиз күнүмдүк лимитти жейсиз дегенди билдирет).
Саясат: тез күйүү менен - релиздерди токтотуу, турукташтырууга басым жасоо, feature-freeze.
5) Архитектура HA: регионго түйүнүнөн
5. 1 түйүн/кызматы
N + 1: жок дегенде бир ашыкча реплика (Deployment ≥ 2, PDB, anti-affinity).
Ресурстарды изоляциялоо: CPU/RAM/IO лимиттери, артыкчылыктар (PriorityClass).
Graceful shutdown/drain: Кайра баштоодо суроо-талаптардын үзүлүшү жок.
5. 2 Аймак/Аймак
Multi-AZ: ар кандай зоналарда репликалар, кросс-зоналык балансы, көз карандысыз энергия/тармак.
Multi-аймак: актив-актив (кыйыныраак: маалыматтар/консистенттүүлүк) же актив-пассив (жөнөкөй: RPO жогору).
Маалыматтар: CP үчүн акча/буйрутмалар (quorum/RAFT), EC/AP үчүн кэш/терезелер.
5. 3 Тармак катмары жана периметри
L7-LB с health-checks, retry/timeout/circuit-breaking.
Global Traffic үчүн GSLB/DNS/Anycast, кыска TTL.
Egress-Control жана тышкы PSP/жөнөтүүчүлөргө туруктуу каналдар.
6) Жыгылуунун ордуна деградация
Feature kill-switch (Ficha-желектер): "кызыл жол" сактап, оор эмес өчүрүү.
Жөнөкөйлөтүлгөн жолдорго өтүү: синхрон → асинхрон/кезек, "иштетүүгө кабыл алынган".
Rate-limit/квота: Баардыгын түшүргөндөн көрө трафикти чектеген жакшы.
Stale режимдери: origin жеткиликсиз болгон учурда кэш/статикалык маалыматтарды берүү.
7) Көз карандылыкты башкаруу
Көз карандылык картасы (service map): түз/транзитивдүү, критикалык, ар бир SLO.
Алсыз звенолору: SLA жок тышкы провайдер - кэш/кезек/дубликат менен айланат.
Bulkhead-изоляция: жай каттамдар үчүн ар кандай байланыштар/квоталар.
Timeouts> Retries: кыска убакыттын өтүшү менен, максимум 1 retrai үчүн.
8) Операциялар жана өзгөртүүлөр
Change management: канарейка/көк-жашыл, SLO-гейт, автоматтык кайра аркылуу релиздер.
Пландаштырылган терезелер: стандартташтыруу - узундугу, жыштыгы, байланыш.
Окуялар: ролдору (IC/Comms/Tech/DB), runbook 'и, жөнгө салуу иш-аракеттери менен postmortems.
Коопсуздук иш-чаралары: компромиссте - "паника-режим" (read-only/токендер/айлануу/блоктоо).
9) Байкоо жана алертинг
RED-модель (Rate, Errors, Duration) ар бир жол.
SLI-дашборддор: региондо жана кардар сегментинде жеткиликтүүлүк/жашыруун.
Burn-rate Алерт: тез (1h, 14. 4 ×), жай (6h, 2 ×) - SLO үзгүлтүккө чейин сигнал.
Нускалар (Exemplars): Метрикадан trace_id жолдоруна өтүү.
Синтетика: тышкы чекиттерден үлгүлөр (периметр, төлөм флоу).
10) Сыноолорго каршылык
Game-days: АЗ/региондорду өчүрүү, DD/кэш деградациясы, тышкы провайдерлердин иштебей калышы.
Chaos инструменттери: чынжырлуу (latency/loss), kill-pods, CPU/IO ашыкча жүктөө.
DR-drills: Tier-0 системалары үчүн RTO/RPO иштеп чыгуу (караңыз "Backup & DR").
11) SLA долбоорлоо
"Жеткиликтүүлүк" аныктамасы: окуя болуп эсептелет (5xx, убакыт> T, домендик каталар).
Эсептөө терезеси: ай/чейрек; пландуу иштерди киргизүү/алып салуу.
Кредиттер/айыптар: шкала (мисалы, 99. 9–99. 99% - X%, төмөн - Y%).
Кардардын милдеттери: интеграция, акылга сыярлык чектерде ретрациялар, лимиттер.
Нотификация жана климаттын жол-жобосу: мөөнөттөрү, форматы, далил базасы (логи/метрика).
Форс-мажор: укуктук формулировка жана чек аралар.
- "Жеткиликтүү API SLI "ийгиликтүү ≤ 500 ms" 99 кем эмес. календардык айда 95%. Пландаштырылган терезелер (60 мин/айга чейин, 48 саат үчүн жарыяланган) алынып салынат. Менен 99. 90–99. 95% - 5% кредит; 99. 80–99. 90% — 10%; <99. 80% — 25%.»
12) Тогуздун экономикасы
Ар бир кошумча "тогуз" чыгымдарды сызыктуу эмес өсөт (кош аймактар, кворумдар, эки провайдерлер, 24 × 7). tiering SLO колдонуу:- Tier-0 (акча/буйрутмалар): 99. 95–99. 99%, көп-AZ, DR даяр.
- Tier-1 (негизги чүчүкулак): 99. 9–99. 95%, көп-AZ.
- Tier-2 (сын эмес): 99. 5–99. 9%, инциденттерде деградацияга/токтоого жол берилет.
13) катмарларды HA үлгүлөрү
Периметри: CDN/edge, multi-CDN же GSLB, WAF, rate-limit.
Баланстоо: L7 outlier-ejection, таймауттар/ретрациялар, sticky/consistent-hash.
Колдонмолор: горизонталдык Skale, readiness/liveness, PDB, topology spread.
Маалыматтар: leader + replicas, CP үчүн quorum, L2 кэш, idempotency, PITR.
Кезектер: айнек/мультикластер, дедуп, DLQ.
Сырлар/конфигалар: GitOps, атомдук снапшоттор, rollback.
14) Анти-үлгүлөрү
SLA өлчөө куралдары жана тышкы синтетика жок.
SPOF катары бирдиктүү аймак/кластер.
Контролсуз Retra → "өзү-DDoS".
ысык жолдо узун бүтүмдөр/мутекстер.
"Оор" миграция/релиздер канарейка жана кайтаруу планы жок.
окуя учурунда runbook жана стейкхолдерлер менен байланыш жоктугу.
15) Чек-тизме киргизүү (0-60 күн)
0-15 күн
критикалык колдонуучу SLI аныктоо, Tier-0/1/2 деңгээл боюнча SLO койду.
Burn-rate алерттерди, SLO-дашбордддорду, синтетикалык периметрди текшерүүнү камтыйт.
SPOF алып салуу: ≥ 2 реплика, PDB, фронттор жана критикалык DD үчүн multi-AZ.
16-40 күн
SLO-гейтинг жана auto-rebound менен канар релиздерин киргизүү.
Көз карандылык картасы + ар бир "кызыл жол" боюнча квота/пул/таймауттар/SV.
Пландаштырылган терезелердин жана коммуникациялардын регламенти, инциденттик билдирүүлөрдүн шаблондору.
41-60 күн
Game-day: АЗ өчүрүү, тышкы провайдердин иштебей калышы, "бурст" трафиги.
Факт боюнча SLA жана кредиттерди кайра эсептөө, кардарларга отчетторду жарыялоо.
Кайра карап чыгуу "наркы, тогуз" жана тире боюнча которуу.
16) Жетилүү метрикасы
≥ 95% критикалык каттамдардын SLI/SLO жана burn-rate тобокелдиктер бар.
SLO каталары релиздерди автоматтык тоңдуруу менен коштолот (policy).
Multi-AZ жабуу Tier-0 = 100%, ийгиликтүү DR-drills ≥ 1/чейрек.
Убакыт "аныктоо → mitigation" p50 <5 мин, p95 <15 мин.
Корреляция "релизи инциденттер" - жүргүзүлөт жана кыскартылат (rollback rate ↓).
Инциденттер/кредиттер жөнүндө ачык отчет - N жумуш күнү ичинде.
17) Мисалдар жана сниппеттер
Burn-rate алерт (эрежелер идеясы):- Тез: "SLO 99. 95%, терезе 1 саат, burn ≥ 14. 4× → page on-call».
- Жай: "терезе 6 саат, burn ≥ 2 × → ticket & мониторинг".
yaml circuit_breakers:
thresholds:
- max_connections: 200 max_pending_requests: 100 max_requests: 1000 max_retries: 1 outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
SLO талдоо менен канарейка (Argo Rollouts, идея):
yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus
SLI формулировкасынын мисалы:
SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region
18) Корутунду
High Availability - бул кластерлер жана репликалар гана эмес, архитектуранын, процесстердин жана метриктердин макулдашылган жыйындысы: так SLI/SLO, реалдуу SLA, экономика менен "тогуздар", жыгылуунун ордуна деградация, таймаут/квота дисциплинасы, канар релиздери, үзгүлтүксүз машыгуулар жана ачык-айкын байланыш. Жеткиликтүүлүктү өлчөнүүчү жана башкарылуучу кылыңыз - ал лотерея эмес, атаандаштык артыкчылыкка айланат.