High Availability и SLA
High Availability и SLA
1) Atamalar va biznes bilan aloqa
SLI (Service Level Indicator) - o’lchanadigan servis ko’rsatkichi (masalan, 2xx/3xx ≤ T ms muvaffaqiyatli so’rovlar ulushi).
SLO (Service Level Objective) - SLI maqsadli qiymati (mas. "99. so’rovlarning 95 foizi ≤ 300 ms").
SLA (Service Level Agreement) - mijoz oldidagi kontrakt majburiyati (buzilgan taqdirda jarimalar/kreditlar).
HA (High Availability) - SLO/SLAni bajarish imkonini beruvchi arxitektura va operatsion chora-tadbirlar.
Printsip: SLA SLOga, SLO esa kuzatiladigan SLIga tayanadi. SLA da siz o’lchamagan narsalarni va’da qila olmaysiz.
2) «To’qqiz» va maqbullik matematikasi
Davr uchun foydalanish imkoniyati =’ish vaqti/umumiy _ vaqt’. Mo’ljallar (yil uchun):Kirish kompozitsiyasi
Ketma-ket zanjir («qizil yo’l» bo’yicha bog’liqlik):’A _ total = Π A_i' (har bir komponent natijani kamaytiradi).
Parallel aktiv-aktiv uzellari:’A _ total = 1 − Π (1 − A_i)’(zaxira yakunini oshiradi).
3) Aynan nimani o’lchash kerak (to’g "ri SLI)
Foydalanuvchi nuqtai nazari: asosiy operatsiyalarni muvaffaqiyatli yakunlash (login, depozit, chek-out) va ularning latentligi p99.
Soat yo’lagi: sirpanadigan derazalar (5/30/60 daqiqa) va mintaqalar bo’yicha yig’iladi.
Istisnolar: «rejalashtirilgan derazalar» SLOda, SLAda esa faqat shartnomada shunday deyilgan taqdirdagina hisobga olinadi.
- Foydalanish imkoniyati: T. ≤ muvaffaqiyatli javoblar ulushi.
- Sifati: p95/p99 latency.
- Tarkibiy: «muvaffaqiyatli depozitlar ulushi ≤ 5 s».
4) Error Budget va yonish tezligi
Error Budget = `1 − SLO`. 99 uchun. Oylik oynaning 95 foizi 0 beradi. Xato/nuqson 05%.
Burn-rate: byudjetni sarflash tezligi (masalan, 4 × siz kunlik limitni 6 soat ichida iste’mol qilasiz).
Siyosat: tez yonganda - relizlarni to’xtatish, barqarorlashtirishga e’tibor qaratish, feature-freeze.
5) HA arxitekturasi: tugundan mintaqagacha
5. 1 Uzel/servis
N + 1: kamida bitta ortiqcha nusxa (Deployment ≥ 2, PDB, anti-affinity).
Resurslarni izolyatsiya qilish: CPU/RAM/IO limitlari, ustuvorliklar (PriorityClass).
Graceful shutdown/drain: Qayta boshlashda soʻrovlar uzilmagan.
5. 2 Zona/mintaqa
Multi-AZ: turli zonalarda replikalar, kross-zonali muvozanat, mustaqil quvvat/tarmoq.
Multi-region: aktiv-aktiv (qiyinroq: ma’lumotlar/konsistentlik) yoki aktiv-passiv (sodda: RPOdan yuqori).
Ma’lumotlar: pul/buyurtmalar uchun CP (kvorum/RAFT), kesh/vitrinalar uchun EC/AP.
5. 3 Tarmoq qatlami va perimetri
L7-LB с health-checks, retry/timeout/circuit-breaking.
Global trafik uchun GSLB/DNS/Anycast, qisqa TTL.
Egress-nazorat va tashqi PSP/provayderlargacha uzilishga chidamli kanallar.
6) Yiqilish o’rniga degradatsiya
Feature kill-switch (ficha-bayroqlar): tanqidiy boʻlmagan oʻchirish, «qizil yoʻl» ni saqlab qolish.
Soddalashtirilgan yoʻllarga oʻtish: sinxron → asinxron/navbat, «qayta ishlashga qabul qilindi».
Rate-limit/kvotalar: barchani tushirishdan ko’ra trafikni cheklash yaxshiroqdir.
Stale rejimlari: origin mavjud boʻlmaganda kesh/statik maʼlumotlarni berish.
7) Qaramliklarni boshqarish
Bog’liqlik xaritasi (service map): to’g "ri/tranzitiv, tanqidiy, har birining SLO.
Zaif bo’g "inlar: SLAsiz tashqi provayder - kesh/navbatga/dublikatga aylanadi.
Bulkhead-izolyatsiya: sekin yo’nalishlar uchun turli birikmalar/kvotalar.
Timeouts> Retries: qisqa taymautlar, dempotent operatsiyalari uchun maksimal 1 retray.
8) Operatsiyalar va o’zgartirishlar
Change management: relizlar/blue-green, SLO-geytlar, avtomatik orqaga qaytish orqali.
Rejalashtirilgan oynalar: uzunligi, davriyligi, kommunikatsiyalarini standartlashtiring.
Hodisalar: rollar (IC/Comms/Tech/DB), runbook’i, tuzatish harakatlari bilan postmortemalar.
Sekyuriti-iventlar: murosaga kelganda - «vahima-rejim» (read-only/tokenlar/rotatsiya/blokirovka).
9) Kuzatish va alerting
Har bir yo’nalish uchun RED-model (Rate, Errors, Duration).
SLI-dashbordlar: mintaqa va mijozlar segmenti bo’yicha foydalanish imkoniyati/yashirligi.
Burn-rate alertlar: tezkor (1h, 14. 4 ×), sekin (6h, 2 ×) - SLO buzilgunga qadar bo’lgan signal.
Nusxalar (Exemplars): metriklardan trace_id trassalariga oʻtish.
Sintetika: tashqi nuqtalardan namunalar (perimetr, to’lov flolari).
10) Nosozlikka chidamlilik testlari
Game-days: AZ/mintaqalarni uzib qo’yish stsenariylari, DB/keshlarning degradatsiyasi, tashqi provayderlarning ishdan chiqishi.
Chaos-instrumentlar: tarmoq foltlari (latency/loss), kill-pods, qayta yuklash CPU/IO.
DR-drills: Tier-0 tizimlar uchun RTO/RPO ishlab chiqish («Backaplar va DR» ga qarang).
11) SLAni loyihalash
«Kirish» taʼrifi: nima hodisa hisoblanadi (5xx, vaqt> T, domen xatolari).
Hisob-kitob oynasi: oy/chorak; rejali ishlarni kiritish/chiqarib tashlash.
Kreditlar/jarimalar: shkala (masalan, 99. 9–99. 99% - X%, undan past - Y%).
Mijozning majburiyatlari: integratsiya, oqilona doiradagi retralar, limitlar.
Iqlimlarning notifikatsiyalari va tartib-taomillari: muddatlari, formati, dalillar bazasi (logi/metrika).
Fors-major: yuridik ifodasi va chegaralari.
- "SLI bo’yicha API foydalanish imkoniyati "muvaffaqiyatli ≤ 500 ms" 99 dan kam emas. kalendar oyda 95%. Rejali derazalar (48 soat uchun e’lon qilingan 60 min/oygacha) chiqarib tashlandi. 99 da. 90–99. 95% - 5% kredit; 99. 80–99. 90% — 10%; <99. 80% — 25%.»
12) To’qqizinchi
Har bir qo’shimcha «to’qqiz» yo’nalishsiz xarajatlarni oshiradi (ikki mintaqa, kvorumlar, provayderlar dubli, 24 × 7). Tiering SLOdan foydalaning:- Tier-0 (pul/buyurtmalar): 99. 95–99. 99%, multi-AZ, DR tayyor.
- Tier-1 (asosiy fichlar): 99. 9–99. 95%, ko’p-AZ.
- Tier-2 (tanqidiy emas): 99. 5–99. 9%, hodisalarda degradatsiyaga/to’xtashga yo’l qo’yiladi.
13) HA patternlari qatlamlar bo’yicha
Perimetri: CDN/edge, multi-CDN yoki GSLB, WAF, rate-limit.
Balanslash: L7 bilan outlier-ejection, taymaut/retrai, sticky/consistent-hash.
Ilovalar: gorizontal skeyl, readiness/liveness, PDB, topology spread.
Maʼlumotlar: leader + replicas, CP uchun quorum, L2 kesh, idempotency, PITR.
Navbatlar: ko’zgu/multiklaster, dedup, DLQ.
Sirlar/konfigrantlar: GitOps, atom snapshotlar, rollback.
14) Anti-patternlar
SLA o’lchash vositalari va tashqi sintetikasiz.
SPOF sifatida yagona zona/klaster.
Nazoratsiz retralar → «o’z-DDoS».
Issiq yo’lda uzoq tranzaksiyalar/mutekslar.
«Og’ir» migratsiya/relizlar kanareykalarsiz va qaytish rejasisiz.
Runbook va steykxolderlar bilan aloqa yo’qligi.
15) Joriy etish chek-varaqasi (0-60 kun)
0-15 kun
Tanqidiy foydalanuvchi SLIni aniqlash, Tier-0/1/2 darajalari boʻyicha SLOni koʻrsatish.
Burn-rate alertlar, SLO-dashbordlar, perimetrni sintetik tekshirishlarni yoqish.
SPOF: ≥ 2 ta replika, PDB, frontlar va tanqidiy DD uchun multi-AZ olib tashlansin.
16-40 kun
SLO-geyting va avto-qaytish bilan kanar relizlarini joriy etish.
Har bir «qizil yo’l» bo’yicha qaramlik xaritasi + kvotalar/pullar/taymautlar/SV.
Rejali oynalar va kommunikatsiyalar reglamenti, hodisa-xabarlar shablonlari.
41-60 kun
Game-day: AZ o’chirilishi, tashqi provayderning ishlamay qolishi, trafikning «bursti».
SLA va kreditlarni fakt bo’yicha qayta hisoblash, mijozlarga hisobotlarni e’lon qilish.
«To’qqiz» qiymatini qayta ko’rib chiqish va tirga o’tkazish.
16) Etuklik metrikasi
Tanqidiy yo’nalishlarning 95% ≥ SLI/SLO va burn-rate alertlari mavjud.
SLO xatolari relizlarni avto-muzlatish (policy) bilan birga keladi.
Multi-AZ qamrovi Tier-0 = 100%, muvaffaqiyatli DR-drills ≥ 1/chorak.
Aniqlash vaqti → mitigatsiya p50 <5 min, p95 <15 min.
«Release hodisalar» korrelyatsiyasi - olib boriladi va qisqartiriladi (rollback rate ↓).
Noxush hodisalar/kreditlar to’g "risidagi ommaviy hisobot - N ish kuni mobaynida.
17) Misollar va snippetlar
Burn-rate alert (qoidalar g’oyasi):- Tezkor: "SLO 99. 95%, oyna 1 soat, burn ≥ 14. 4× → page on-call».
- Sekin: «6 soat, burn ≥ 2 × → ticket & monitoring».
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 tahlili bilan kanareyka (Argo Rollouts, g’oya):
yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus
SLI formulasi namunasi:
SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region
18) Xulosa
High Availability - bu nafaqat klasterlar va replikalar, balki arxitektura, jarayonlar va metrikalarning kelishilgan to’plami: aniq SLI/SLO, real SLA, iqtisodiyotga ega «to’qqiz», yiqilish o’rniga degradatsiya, taymaut/kvota intizomi, kanareya relizlari, muntazam mashg’ulotlar va shaffof kommunikatsiya. O’lchanadigan va boshqariladigan bo’lsa, u lotereya emas, raqobatbardosh ustunlikka aylanadi.