Bosh sahifa Wiki Fault isolation

Fault isolation

Fault isolation — tizimning bir qismida yuz bergan nosozlikning boshqa qismlarga tarqalishini cheklash xususiyatidir. U xizmatning hamma elementi mutlaq xatosiz bo‘lishiga emas, xato sodir bo‘lganda ta’sir doirasini kichraytirishga qaratiladi. Ajratish chegarasi jarayon, konteyner, virtual mashina, xizmat, server, mavjudlik zonasi yoki mustaqil ma’lumot bo‘lagi bo‘lishi mumkin.

Nosozlik domeni

Bir sabab bilan birgalikda ishdan chiqishi mumkin bo‘lgan komponentlar to‘plami failure domain deyiladi. Bitta quvvat manbaiga ulangan serverlar, bitta zonadagi instansiyalar yoki umumiy ma’lumotlar bazasiga qaram xizmatlar bir domen tarkibiga kirishi mumkin. Replikalarni turli domenlarga joylashtirish faqat ular yashirin umumiy bog‘liqlikka ega bo‘lmaganda foyda beradi.

Ajratish rejasida avval muhim resurslar va bog‘liqliklar xaritasi tuziladi. Tarmoq, DNS, identifikatsiya xizmati yoki umumiy konfiguratsiya tizimi kabi markaziy qismlar ko‘pincha kutilmagan umumiy nosozlik nuqtasiga aylanadi.

Asosiy mexanizmlar

Bulkhead yondashuvi kemadagi suv o‘tkazmaydigan bo‘limlar singari resurslarni guruhlarga ajratadi. Har mijoz yoki vazifa turi alohida ulanish havzasi va ishchi oqimlar to‘plamidan foydalansa, bittasining tiqilib qolishi qolganlarini to‘xtatmaydi. Resurs limitlari xotira, CPU, disk va ochiq fayllar sonini chegaralaydi.

Circuit breaker takroriy muvaffaqiyatsiz chaqiruvlarni vaqtincha to‘xtatib, nosoz xizmatga bosimni kamaytiradi. Timeout kutish vaqtini chegaralaydi, retry esa faqat vaqtinchalik va idempotent amallarda nazoratli qo‘llanadi. Cheksiz qayta urinish nosozlikni kuchaytirib, retry storm hosil qilishi mumkin.

Navbatlar ishlab chiqaruvchi va iste’molchini vaqt bo‘yicha ajratadi. Biroq navbatning cheksiz o‘sishi diskni to‘ldirishi mumkin; shuning uchun sig‘im, muddati o‘tgan xabar va backpressure siyosati belgilanadi.

Jarayon va infratuzilma chegaralari

Bir jarayondagi modul xotirani buzsa, shu jarayondagi boshqa modullar ham zarar ko‘rishi mumkin. Alohida jarayon operatsion tizim himoyasidan foydalanadi; konteyner resurs va namespace chegaralarini qo‘shadi; virtual mashina esa alohida yadro bilan kuchliroq chegara beradi. Har bir bosqich boshqaruv xarajati va kechikishni oshirishi mumkin.

Mikroxizmatga bo‘lish avtomatik ravishda izolyatsiya bermaydi. Barcha xizmatlar bitta baza, ulanish havzasi yoki deploy jarayoniga qattiq bog‘langan bo‘lsa, arxitektura alohida ko‘rinsa ham nosozlik birga tarqaladi. Izolyatsiya aniq resurs egaligi va boshqariladigan interfeys talab qiladi.

Ma’lumot va chiqarish jarayoni

Ma’lumot bo‘laklarga ajratilganda bitta shard nosozligi faqat shu bo‘lak foydalanuvchilariga ta’sir qilishi mumkin. Buning evaziga qayta taqsimlash, kross-shard so‘rov va tiklash murakkablashadi. Dastur chiqarishda canary yoki bosqichli rollout yangi xatoni kichik instansiyalar guruhida ushlab qoladi. Feature flag xavfli funksiyani butun deployni qaytarmasdan o‘chirish imkonini beradi.

O‘lchash va sinov

Kuzatuv tizimi xatolarni xizmat, zona, tenant va versiya bo‘yicha ajratib ko‘rsatishi kerak. Umumiy o‘rtacha qiymat kichik domenning to‘liq ishlamay qolishini yashirishi mumkin. Chaos testing nazoratli ravishda kechikish, tarmoq uzilishi yoki resurs tanqisligini kiritib, chegaralarning amalda ishlashini tekshiradi. Bunday sinov avval xavfsiz muhitda, aniq to‘xtatish sharti va kuzatuv bilan bajariladi.

Degradatsiya siyosati

Nosoz bog‘liqlik yuzaga kelganda xizmatning qaysi funksiyasi saqlanishi oldindan belgilanadi. Masalan, tavsiya tizimi ishlamasa asosiy katalog ochilishi, yozish xizmati to‘xtasa tasdiqlangan eski ma’lumot o‘qilishi mumkin. Fallback noto‘g‘ri yoki xavfli natija bermasligi kerak; autentifikatsiya xizmati ishlamaganda barcha kirishga ruxsat berish degradatsiya emas, xavfsizlik buzilishidir. Har bir fallbackning amal qilish muddati va ma’lumot yangiligi ko‘rsatiladi. Tiklanishdan keyin navbatdagi ishni birdan chiqarish yangi yuk cho‘qqisini yaratmasligi uchun oqim bosqichma-bosqich oshiriladi. Izolyatsiya va tiklanish rejasi muntazam mashq qilinmasa, hujjatdagi taxminlar amaliy holatga mos kelmasligi mumkin.

Bog‘liq tushunchalar

Failure domain, Bulkhead pattern, Circuit breaker, Resource limit, High availability, Chaos testing, Graceful degradation