Single point of failure (SPOF) nima va uni qanday yo'qotish

Assalamu Alaykum bugun katta sistemani qulata oladigan qismlar haqida gaplashamiz.

Single point of failure nima ?

Single point of failure bu sistemadagi bir qism va shu qism qulasa sistema o'chib qoladi, bu istalgan komponent bo'lishi mumkin databaza , server , cache va hokazolar

SPOF nima uchun muammo ?

  1. Reliabality : bir qism qulashi butun qismni ishlamasligiga olib keladi.

  2. Scalability : SPOFga ega bo'lgan sistemani scale qilishi qiyin bo'ladi , chunki o'sha qism load ko'paygani uchun qulashi mumkin.

  3. Security: Butun sistema bir qismga bog'liq bo'lgani uchun bu dasturni hakerlarga kuchsiz qilib qo'yadi.

Keling buni misollar bilan ko'ramiz !

Oddiy misol bilan boshlaymiz bir server va bir databazadan iborat oddiy dastur.

Bu holatda agarada databaza qulasa , butun dastur ishlashdan to'xtaydi va foydalanuvchi yo'qotamiz.

database replication
database replication

Tepadagi tizimda bizda faqat bitta biznes logikasini olgan bitta server bor ,agarda u o'chsa biz foydalanuvchilar so'rovlarini qayta ishlolmaymiz.

Foydalanuvchi serverga oson bog'lanishi va load taqsimlanishi uchun load balancer qo'shildi. Ammo bitta load balancer o'chib qolishi butun sistemaga foydalanuvchi kirolmasligiga sabab bo'ladi, shuning uchun redundancy (ya’ni qo'shimcha balancer ) qo'shamiz.

DNS
DNS

Endi foydalanuvchi DNSga borgan holda load balancer IP adressni olib keladi va shu orqali bog'lanadi , bu yerdagi muammo agarda load balancer o'chib qolsa DNSdagi IP turaveradi va uni foydalanuvchilarga qaytaradi. Buni oldini olish uchun load balancerni monitoring qilib u o'chgan paytda DNSdagi ma’lumotlarni yangilash zarur.

SPOF ni yo'qotish uslublari

Tepadagi misoldan ko'rganimizdekdatabaza uchun replicationdan foydalanamiz, serverlar uchun bir necha serverlar yuklash orqali muammoni bartaraf etamiz, joyga bog'liq muammolar sistemani qulatmasligi uchun har xil data centerlarda bularni yaratamiz. Eng muhimlaridan biri esa ularni monitoring qilish va har bir jiddiy xatoliklar uchun ogohlantirishlarni jo'natish.

Sistemani SPOFlarsiz yaratish juda muhim bo'lmasa sistema xatoliklarga chidamlilikni yo'qotadi. Juda tez ishlaydigan ammo 30 % holatda ishlmayotgan dastur kimga kerak.

Sistema evolyutsiyasi
Sistema evolyutsiyasi

Distributed sistemada SPOFni aniqlash

Arxitekturani chizish

Ishlayotgan sistemani barcha detallarni o'z ichiga olgan arxitekturasini chizish . Hamma komponentlarning bir biriga bog'liqliklarni aniq ko'rish va backup bo'lmagan qismlarni qidirish.

Bog'liqliklarni tahlil qilish

Servislar o'rtasidagi bog'liqlikni aniqlash , agarda bir service bir necha service tomonidan ishlatilgan ammo backup bo'lmasa , bu komponent SPOF bo'lishi mumkin.

Xatolik ta’sirini bilish

Komponentda xatolik bo'lsa nima bo'lishini o'ylab ko'rish . Agarda komponent ishlashdan to'xtasa bu qanday ta’sir qiladi degan savolga javob topish kerak bo'ladi. Javob agar sistema ishlashdan to'xtasa yoki performance tushsa bu komponent SPOF bo'ladi.

Xulosa

Xulosa qilib aytadigan bo'lsak biz qurgan sistemada SPOF bo'lishi uni kuchsizlantiradi va o'chib qolish ehtimolini oshiradi . Buni oldini olish uchun har bir komponentni tekshirib ko'rish va o'chib qolgan taqdirda ham umumiy sistema ishlashiga ta'sir qilishini oldini olish kerak.