High Availability и SLA
High Availability и SLA
1) Terminlər və biznes əlaqələri
SLI (Service Level Indicator) - xidmət göstəricisi (məsələn, 2xx/3xx ≤ T ms uğurlu sorğuların payı).
SLO (Service Level Objective) - SLI-nin hədəf dəyəri (məsələn, "99. 95% sorğu ≤ 300 ms").
SLA (Service Level Agreement) - müştəri qarşısında müqavilə öhdəliyi (pozulduqda cərimələr/kreditlər).
HA (High Availability) - SLO/SLA-nın yerinə yetirilməsinə imkan verən memarlıq və əməliyyat tədbirləri.
Prinsip: SLA SLO-ya, SLO isə müşahidə olunan SLI-ə əsaslanır. SLA-da ölçmədiyinizi vəd edə bilməzsiniz.
2) «Doqquzlar» və əlçatanlıq riyaziyyatı
Dövr üçün əlçatanlıq = 'iş vaxtı/ümumi _ vaxt'. Göstəricilər (il üçün):Mövcud kompozisiya
Ardıcıl zəncir («qırmızı yol» asılılığı): 'A _ total = Π A_i' (hər bir komponent nəticəni azaldır).
Paralel aktiv-aktiv qovşaqları: 'A _ total = 1 − Π (1 − A_i)' (ehtiyat cəmini artırır).
3) Dəqiq nə ölçmək lazımdır (düzgün SLI)
İstifadəçi baxışı: əsas əməliyyatların müvəffəqiyyətlə tamamlanması (login, depozit, çek) və onların gecikməsi p99.
Saat dəhlizi: sürüşmə pəncərələri (5/30/60 dəq) və bölgələr üzrə yığın.
İstisnalar: «planlaşdırılan pəncərələr» SLO-da, SLA-da isə yalnız müqavilədə deyildikdə nəzərə alınır.
- Əlçatanlıq: uğurlu cavabların payı ≤ T.
- Keyfiyyət: p95/p99 latency.
- Kompozit: «uğurlu depozitlərin payı ≤ 5 s».
4) Error Budget və yanma sürəti
Error Budget = `1 − SLO`. 99 üçün. 95% aylıq pəncərə 0 verir. 05% səhv/fasilə.
Burn-rate: büdcə xərclərinin sürəti (məsələn, 4 × 6 saat ərzində gündəlik limiti yeyirsiniz deməkdir).
Siyasət: sürətli yanma ilə - buraxılışları dayandırın, sabitləşməyə diqqət yetirin, feature-freeze.
5) HA arxitekturası: qovşaqdan bölgəyə
5. 1 Qovşaq/Xidmət
N + 1: ən azı bir artıq replika (Deployment ≥ 2, PDB, anti-affinity).
Resursların təcrid olunması: CPU/RAM/İO limitləri, prioritetlər (PriorityClass).
Graceful shutdown/drain: restart zamanı sorğuların qırılması.
5. 2 Zona/region
Multi-AZ: müxtəlif zonalarda replikalar, xaç-zona balansı, müstəqil güc/şəbəkə.
Multi-region: aktiv-aktiv (daha çətin: məlumat/sabitlik) və ya aktiv-passiv (daha sadə: RPO yuxarıda).
Məlumat: Pul/Sifarişlər üçün CP (Kvorum/RAFT), Cash/Vitrinlər üçün EC/AP.
5. 3 Şəbəkə təbəqəsi və perimetri
L7-LB с health-checks, retry/timeout/circuit-breaking.
qlobal trafik üçün GSLB/DNS/Anycast, qısa TTL.
Egress-control və xarici PSP/provayderlərə çatmaz kanallar.
6) Yıxılma əvəzinə deqradasiya
Feature kill-switch (ficha-bayraqlar): kritik olmayan söndürmək, «qırmızı yol» saxlamaq.
Sadələşdirilmiş yollara keçid: sinxron → asinxron/növbə, «emala qəbul edildi».
Rate-limit/kvotalar: Hamını endirməkdənsə, trafiki məhdudlaşdırmaq daha yaxşıdır.
Stale rejimləri: origin əlçatmazlığında cache/statik məlumat vermək.
7) Asılılığın idarə edilməsi
Asılılıq kartı (service map): birbaşa/transitiv, kritik, hər birinin SLO.
Həssas bağlantılar: SLA olmadan xarici provayder - cache/növbə/dublikat çevrilir.
Bulkhead-izolyasiya: yavaş marşrutlar üçün müxtəlif qoşulma hovuzları/kvotalar.
Timeouts> Retries: qısa vaxtlar, idempotent əməliyyatlar üçün maksimum 1 retraj.
8) Əməliyyatlar və dəyişikliklər
Change management: kanaryalar/mavi-yaşıl, SLO geytaları, avtomatik geri dönüş vasitəsilə buraxılışlar.
Planlaşdırılan pəncərələr: standartlaşdırın - uzunluq, dövrilik, rabitə.
Hadisələr: rolları (IC/Comms/Tech/DB), runbook 'i, düzəliş hərəkətləri ilə postmortems.
Təhlükəsizlik tədbirləri: güzəşt zamanı - «panika rejimi» (read-only/tokenlər/rotasiya/bloklama).
9) Müşahidə və alertinq
Hər marşrutda RED modeli (Rate, Errors, Duration).
SLI daşbordları: bölgə və müştəri seqmenti üzrə əlçatanlıq/gizlilik.
Burn-rate alert: sürətli (1h, 14. 4 ×), yavaş (6h, 2 ×) - SLO-nun pozulmasına qədər siqnal.
Nüsxələr (Exemplars): metriklərdən trace_id yollarına keçid.
Sintetika: xarici nöqtələrdən nümunələr (perimetr, ödəniş floları).
10) Uğursuzluq testləri
Game-days: AZ/regionların bağlanması, DB/cache deqradasiyası, xarici provayderlərin uğursuzluğu.
Chaos alətləri: şəbəkə foltları (latency/loss), kill-pods, CPU/IO həddindən artıq yükləmə.
DR-drills: Tier-0 sistemləri üçün RTO/RPO emalı (bax: «Backup & DR»).
11) SLA dizayn
«Əlçatanlıq» tərifi: hadisə hesab olunur (5xx, vaxt> T, domen səhvləri).
Hesablama pəncərəsi: ay/rüb; planlaşdırılan işlərin daxil edilməsi/istisna edilməsi.
Kreditlər/cərimələr: şkalası (məs., 99. 9–99. 99% - X%, aşağıda - Y%).
Müştərinin vəzifələri: inteqrasiya, retralar, limitlər.
Notifikasiya və iqlim proseduru: vaxt, format, sübut bazası (loqi/metrika).
Fors-major: hüquqi ifadə və sərhədlər.
- "SLI üçün API əlçatanlığı "uğurlu ≤ 500 ms" 99-dan az deyil. təqvim ayında 95%. Planlaşdırılan pəncərələr (48 saat ərzində elan edilmiş 60 dəq/ay qədər) istisna edilir. 99. 90–99. 95% - 5% kredit; 99. 80–99. 90% — 10%; <99. 80% — 25%.»
12) Doqquzların iqtisadiyyatı
Hər əlavə «doqquz» xətti olmayan xərcləri artırır (ikili regionlar, kvorumlar, provayderlərin dublları, 24 × 7). Tiering SLO tətbiq edin:- Tier-0 (pul/sifariş): 99. 95–99. 99%, multi-AZ, DR hazırdır.
- Tier-1 (əsas fiqurlar): 99. 9–99. 95%, multi-AZ.
- Tier-2 (kritik deyil): 99. 5–99. 9%, hadisə zamanı deqradasiya/stop icazə verilir.
13) Qat üzrə HA nümunələri
Perimetri: CDN/edge, multi-CDN və ya GSLB, WAF, rate-limit.
Balans: L7 outlier-ejection, taymaut/retray, sticky/consistent-hash ilə.
Proqramlar: üfüqi skeyl, readiness/liveness, PDB, topology spread.
Məlumat: leader + replicas, CP üçün quorum, L2 cache, idempotency, PITR.
Növbələr: güzgü/multiklaster, dedup, DLQ.
Sirləri/konfiqləri: GitOps, atom snapshots, rollback.
14) Anti-nümunələr
Ölçmə alətləri və xarici sintetika olmadan SLA.
SPOF kimi vahid zona/klaster.
Nəzarətsiz retralar → «öz-DDoS».
İsti yolda uzun əməliyyatlar/mutekslər.
Kanaryalar və geri dönüş planı olmadan «ağır» miqrasiya/buraxılışlar.
Runbook və hadisə stakholders ilə ünsiyyət yoxdur.
15) Giriş çek siyahısı (0-60 gün)
0-15 gün
Kritik xüsusi SLI müəyyən, Tier-0/1/2 səviyyələrinə görə SLO təyin.
Burn-rate alertləri, SLO-daşbordları, sintetik perimetr yoxlamalarını daxil edin.
SPOF-u çıxarın: ≥ 2 replika, PDB, cəbhələr və kritik DB üçün multi-AZ.
16-40 gün
SLO-geytinq və avtomatik geri çəkilmə ilə kanarya relizlərini daxil edin.
Asılılıq kartı + hər «qırmızı yol» üzrə kvota/hovuz/taymaut/SV.
Planlaşdırılmış pəncərələrin və kommunikasiyaların tənzimlənməsi, hadisə mesajlarının şablonları.
41-60 gün
Game-day: AZ-ın bağlanması, xarici provayderin uğursuzluğu, trafikin «burstu».
Faktiki olaraq SLA və kreditlərin yenidən hesablanması, müştərilərə hesabatların dərc edilməsi.
«Doqquz dəyər» yenidən baxın və tire üzərində köçürün.
16) Yetkinlik metrikası
≥ 95% kritik marşrutların SLI/SLO və burn-rate riskləri var.
SLO səhvləri relizlərin avtomatik dondurulması ilə müşayiət olunur (policy).
Multi-AZ əhatə Tier-0 = 100%, uğurlu DR-drills ≥ 1/rüb.
«Detection → mitigation» vaxtı p50 <5 dəq, p95 <15 dəq.
Korrelyasiya «release insidentlər» - davam və azalır (rollback rate ↓).
Hadisələrin/kreditlərin ictimai hesabatı - N iş günü ərzində.
17) Nümunələr və snippetlər
Burn-rate həyəcan (qaydalar ideyası):- Sürətli: "SLO 99. 95%, pəncərə 1 saat, burn ≥ 14. 4× → page on-call».
- Yavaş: «pəncərə 6 saat, burn ≥ 2 × → ticket & monitorinq».
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 analizi ilə kanarya (Argo Rollouts, ideya):
yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus
SLI formulu nümunəsi:
SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region
18) Nəticə
High Availability yalnız klasterlər və replikalar deyil, arxitektura, proseslər və metriklərin razılaşdırılmış dəsti: aydın SLI/SLO, real SLA, iqtisadiyyatla «doqquzlar», yıxılmaq əvəzinə deqradasiya, vaxt/kvota nizam-intizamı, kanarya buraxılışları, müntəzəm təlimlər və şəffaf kommunikasiyalar. Əlçatanlığı ölçülə bilən və idarə edilə bilən edin və bu, lotereya deyil, rəqabət üstünlüyü olacaq.