Bosh sahifa Wiki High availability

High availability

High availability — xizmatning nosozlik, texnik xizmat yoki ayrim komponent yo‘qolganida ham belgilangan darajada ishlashini davom ettiradigan arxitektura va operatsion amaliyotlar majmui. U odatda uptime foizi, ruxsat etilgan uzilish va tiklanish ko‘rsatkichlari bilan ifodalanadi. HA mutlaq uzluksizlik emas; har qo‘shimcha “to‘qqizlik” murakkablik va xarajatni oshiradi.

Mavjudlikni o‘lchash

99,9% yillik mavjudlik taxminan 8 soat 46 daqiqa, 99,99% esa taxminan 52 daqiqa rejasiz uzilishga teng. Hisobda qaysi vaqt oralig‘i, planned maintenance va qaysi requestlar “muvaffaqiyatli” sanalishi SLI ta’rifida belgilanadi. Faqat process tirikligi emas, foydalanuvchining to‘g‘ri javob olishi o‘lchanadi.

Availability ketma-ket ulangan komponentlarda kamayadi. Frontend, API va database har biri 99,9% bo‘lsa, ularning barchasi zarur bo‘lgan end-to-end yo‘l 99,9%dan past bo‘ladi. Parallel redundant komponentlar nazariy mavjudlikni oshiradi, lekin umumiy dependency va bir xil xato sabab correlation yaratadi.

Redundancy

Bir nechta app instance load balancer ortida ishlaydi. Bir nusxa health checkdan yiqilsa trafik boshqasiga o‘tadi. Load balancerning o‘zi ham yagona failure point bo‘lmasligi uchun active-active yoki active-passive juftlik, managed regional service yoki anycast ishlatiladi.

Redundancy faqat nusxa soni emas. Ikki server ayni rack, power supply, network switch yoki availability zone’da bo‘lsa, umumiy hodisa ikkalasini o‘chiradi. Failure domainlar rack, zone va region bo‘yicha ajratiladi. Biroq ko‘p regionli yozuvlar consistency va latency trade-offini keltiradi.

Failover

Active-passive modelda standby nusxa data’ni replika qiladi va primary ishlamasa rolni oladi. Failover avtomatik yoki operator tasdig‘i bilan bo‘lishi mumkin. Detection threshold juda tez bo‘lsa transient network partition split-brain yaratadi, juda sekin bo‘lsa outage uzayadi.

Fencing eski primary yozishni davom ettirmasligini ta’minlaydi. STONITH, lease, quorum yoki cloud instance API orqali eski tugun izolatsiya qilinadi. Faqat DNSni yangi IPga o‘zgartirish eski client connectionlari va ikkala writer muammosini to‘liq hal qilmaydi.

Data qatlamidagi HA

Synchronous replication commitni bir nechta nusxaga yozib data lossni kamaytiradi, lekin latency va quorum mavjudligiga bog‘liq. Asynchronous replication tezroq, ammo primary birdan yo‘qolsa oxirgi yozuvlar replikaga yetmagan bo‘lishi mumkin. RPO qancha data yo‘qotish qabul qilinishini, RTO xizmat qachon tiklanishini belgilaydi.

Replica backup emas. Xato DELETE, schema buzilishi yoki ransomware replikatsiya orqali barcha nusxaga tarqaladi. Point-in-time recovery va immutable backup alohida qatlamdir. Failover test qilingan bo‘lsa ham restore jarayoni ham alohida mashq qilinadi.

Degradatsiya

Xizmat barcha funksiya bilan ishlay olmasa, muhim yo‘lni saqlash uchun graceful degradation qo‘llanadi. Recommendation xizmati ishlamasa cached yoki oddiy ro‘yxat, payment ishlamasa savat saqlanib keyin davom ettirish mumkin. Circuit breaker nosoz dependencyga cheksiz so‘rov yuborishni to‘xtatadi.

Retry vaqtinchalik xatoni yashirishi mumkin, ammo retry storm nosoz xizmatni yanada bosadi. Exponential backoff, jitter va global deadline qo‘llanadi. Queue backpressure producerlarni sekinlashtiradi yoki priority bo‘yicha yukni rad etadi.

Operatsion tayyorgarlik

HA konfiguratsiyasi hujjatda emas, muntazam failure injection va game day’da tekshiriladi. Server, zone, DNS, certificate renewal, database leader va secret manager yo‘qolishi ssenariylari bajariladi. Alert foydalanuvchi ta’siriga va error budgetga bog‘lanadi.

Deploy ham availability hodisasidir. Rolling yoki blue-green rollout capacityni saqlaydi, readiness trafficni faqat tayyor nusxaga beradi, graceful shutdown mavjud requestlarni tugatadi. Schema migration eski va yangi kod birga ishlaydigan expand-contract bosqichida bajariladi.

Bog‘liq tushunchalar

Failover, Redundancy, Quorum, RTO, RPO, Disaster recovery, Load balancing