GH GambleHub

High Availability и SLA

High Availability и SLA

1) Терминдер және бизнеспен байланыс

SLI (Service Level Indicator) - сервистің өлшенетін көрсеткіші (мысалы, 2xx/3xx ≤ T мс табысты сұраныстардың үлесі).
SLO (Service Level Objective) - SLI нысаналы мәні (мысалы, "99. Сұраулардың 95% ≤ 300 мс").
SLA (Service Level Agreement) - клиент алдындағы келісімшарттық міндеттеме (бұзушылық кезіндегі айыппұлдар/кредиттер).
HA (High Availability) - SLO/SLA орындауға мүмкіндік беретін сәулеттік және операциялық шаралар.

Қағидат: SLA SLO-ға, ал SLO - бақыланатын SLI-ге сүйенеді. SLA-да өлшемейтін нәрсені уәде ете алмайсыз.

2) «Тоғыздар» және қол жетімділік математикасы

Кезеңдегі қолжетімділік = 'жұмыс уақыты/жалпы _ уақыт'. Бағдарлар (бір жылға):
Қол жетімділікМакс. жай/жыл
99. 0%≈ 3 күн 15 сағат
99. 5%≈ 1 күн 20 сағат
99. 9%≈ 8 сағ 45 м
99. 95%≈ 4 сағ 23 м
99. 99%≈ 52 м 34 с
99. 999%≈ 5 м 15 с

Қол жетімділік композициясы

Тізбекті тізбек («қызыл жол» бойынша тәуелділік): 'A _ total = Π A_i' (әрбір компонент жиынтықты азайтады).
Қатарлас актив-актив тораптары: 'A _ total = 1 − Π (1 − A_i)' (резерв жиынтықты арттырады).

3) Нені өлшеу керек (дұрыс SLI)

Пайдаланушы көзқарасы: негізгі операциялардың сәтті аяқталуы (login, депозит, чек-аут) және олардың жасырындылығы p99.
Сағат дәлізі: жылжымалы терезелер бойынша (5/30/60 мин) және өңірлер бойынша біріктіріңіз.
Ерекшеліктер: «жоспарланған терезелер» SLO-да ескеріледі, ал SLA-да - егер келісімшартта осылай деп айтылса ғана.

SLI түрлері:
  • Қол жетімділік: сәтті жауаптардың үлесі ≤ Т.
  • Сапасы: 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-region: актив-актив (қиын: деректер/консистенттілік) немесе актив-пассив (қарапайым: RPO-дан жоғары).
Деректер: ақша/тапсырыстар үшін CP (кворум/RAFT), кэш/витриналар үшін EC/AP.

5. 3 Желілік қабат және периметр

L7-LB с health-checks, retry/timeout/circuit-breaking.
GSLB/DNS/Anycast жаһандық трафик үшін, қысқа TTL.
Egress-бақылау және сыртқы PSP/провайдерлерге дейінгі істен шығуға төзімді арналар.

6) Құлау орнына тозу

Feature kill-switch (фича-жалаушалар): сыни емес өшіру, «қызыл жолды» сақтау.
Жеңілдетілген жолдарға ауысу: синхрон → асинхрон/кезек, «өңдеуге қабылданды».
Rate-limit/квоталар: барлығын түсіргеннен гөрі трафикті шектеген жақсы.
Stale режимдері: origin қол жетімді болмаған жағдайда кэшті/статикалық деректерді беру.

7) Тәуелділіктерді басқару

Тәуелділік картасы (service map): тікелей/транзитті, сындарлы, әрқайсысының SLO.
Осал буындар: SLA-сыз сыртқы провайдер кэшпен/кезекпен/телнұсқамен айналады.
Bulkhead-оқшаулау: әртүрлі қосылыстар пулы/баяу бағыттар үшін квоталар.
Timeouts> Retries: қысқа таймауттар, демпотенттік операциялар үшін ең көп дегенде 1 ретрай.

8) Операциялар және өзгерістер

Change management: канарейка/blue-green, SLO-гейтс арқылы релиздер, автоматты кері қайту.
Жоспарланған терезелер: ұзындығын, кезеңділігін, коммуникациясын стандарттаңыз.
Оқиғалар: рөлдер (IC/Comms/Tech/DB), runbook 'и, түзетуші әрекеттері бар постмортемалар.
Секьюрити-ивенттер: компрометация кезінде - «паника-режим» (read-only/токендер/ротация/блоктау).

9) Бақылау және алертинг

Әрбір маршрутқа RED-модель (Rate, Errors, Duration).
SLI-дашбордтар: өңір бойынша және клиенттік сегмент бойынша қолжетімділік/жасырындылық.
Burn-rate алерта: жылдам (1h) 14. 4 ×), баяу (6h, 2 ×) - SLO үзілгенге дейінгі сигнал.
(Exemplars) даналары: метрикадан trace_id бойымен трассаға өту.
Синтетика: сыртқы нүктелерден алынған сынамалар (периметр, төлем флоу).

10) Істен шығуға төзімділік тестілері

Game-days: АЗ/аймақтарды ажырату сценарийлері, ДБ/кэштің тозуы, сыртқы провайдерлердің істен шығуы.
Chaos-құралдары: желі фолттары (latency/loss), kill-pods, CPU/IO қайта тиеу.
DR-drills: Tier-0 жүйелер үшін RTO/RPO өңдеу («Бэкаптар және DR» қараңыз).

11) SLA жобалау

«Қол жетімділік» анықтамасы: оқиға деп есептелетін (5xx, уақыт> T, домен қателері).
Есептеу терезесі: ай/тоқсан; жоспарлы жұмыстарды қосу/алып тастау.
Кредиттер/айыппұлдар: шәкіл (мысалы, 99. 9–99. 99% - X%, төмен - Y%).
Клиенттің міндеттері: интеграция, ретра, ақылға қонымды шектерде, лимиттер.
Нотификация және климаттар рәсімі: мерзімдері, форматы, дәлелдеу базасы (логи/метрика).
Форс-мажор: заңды тұжырым және шекаралар.

Мысал (нобай):
  • "SLI бойынша API қолжетімділігі "табысты ≤ 500 мс" 99-дан төмен емес. күнтізбелік айда 95%. Жоспарлы терезелер (48 сағат бұрын жарияланған 60 мин/айға дейін) алынып тасталды. 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.
Қосымшалар: көлденең скейл, readiness/liveness, PDB, topology spread.
Деректер: leader + replicas, CP үшін quorum, L2 кэш, idempotency, PITR.
Кезектер: зеркалау/мультикластер, дедуп, DLQ.
Құпиялар/конфигалар: GitOps, атомарлық снапшоттар, rollback.

14) Қарсы үлгілер

Өлшеу құралдары мен сыртқы синтетикасыз SLA.
SPOF ретінде бірыңғай аймақ/кластер.
Бақылаусыз ретрациялар → «өзі-DDoS».
Ыстық жолдағы ұзақ транзакциялар/мутекстер.
«Ауыр» көші-қон/канареяларсыз релиздер және кері қайтару жоспары.
Оқиға кезінде runbook және стейкхолдерлермен сөйлесудің болмауы.

15) Енгізу чек-парағы (0-60 күн)

0-15 күн

Сыни пайдаланушы SLI-ді анықтау, Tier-0/1/2 деңгейлері бойынша SLO-ны орнату.
Burn-rate алаңдарын, SLO-дашбордтарын, периметрді синтетикалық тексеруді қосу.
SPOF: ≥ 2 реплика, PDB, фронттар мен сыни БД үшін multi-AZ алып тастау.

16-40 күн

SLO-гейтингі және авто-қайтарымы бар канареялық релиздерді енгізу.
Тәуелділік картасы + әрбір «қызыл жол» бойынша квоталар/пулдар/таймауттар/СВ.
Жоспарлы терезелер мен коммуникациялардың регламенті, инцидент-хабарламалардың үлгілері.

41-60 күн

Game-day: AZ өшіру, сыртқы провайдердің істен шығуы, трафиктің «бурсты».
Факті бойынша SLA және кредиттерді қайта есептеу, клиенттерге есептерді жариялау.
« тоғыздың құны» қайта қарау және тир бойынша қайта салу.

16) Жетілу метрикасы

Сындарлы бағыттардың 95% ≥ SLI/SLO және burn-rate алерталары бар.
SLO қателері релиздерді авто-мұздатумен (policy) қатар жүреді.
Multi-AZ қамту Tier-0 = 100%, табысты DR-drills ≥ 1/тоқсан.
«Детектирлеу → митигация» уақыты p50 <5 мин. p95 <15 мин.
«Релиздік инциденттер» корреляциясы - жүргізіледі және қысқартылады (rollback rate ↓).
Инциденттер/кредиттер туралы жария есеп - N жұмыс күні ішінде.

17) Мысалдар мен сниппеттер

Burn-rate (ереже идеясы):
  • Жылдам: "SLO 99. 95%, терезе 1 сағ. burn ≥ 14. 4× → page on-call».
  • Баяу: «терезе 6 сағат, burn ≥ 2 × → ticket & мониторинг».
Envoy — circuit breaking/outlier:
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, экономикалы «тоғыздар», құлдыраудың орнына құлдырау, таймауттар/квоталар тәртібі, канареялық релиздер, тұрақты жаттығулар және ашық коммуникация. Өлшенетін және басқарылатын қолжетімділікті жасаңыз - ол лотерея емес, бәсекелестік артықшылыққа айналады.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.