Bardoshli va ishonchli tizimlar uchun Xaos Muhandisligi va nosozliklarni kiritish usullarini o'rganing. Zaifliklarni oldindan aniqlab, tizim barqarorligini yaxshilang.
Xaos Muhandisligi: Nosozliklarni Kiritish boʻyicha Amaliy Qoʻllanma
Bugungi murakkab va taqsimlangan dasturiy ta'minot landshaftlarida tizimning bardoshliligi va ishonchliligini ta'minlash eng muhim vazifadir. An'anaviy testlash usullari ko'pincha real sharoitlarda yuzaga keladigan yashirin zaifliklarni aniqlashda samarasiz bo'ladi. Aynan shu yerda Xaos Muhandisligi yordamga keladi – bu tizimlaringizga ataylab nosozliklarni kiritish orqali zaifliklarni proaktiv tarzda aniqlash yondashuvidir.
Xaos Muhandisligi nima?
Xaos Muhandisligi – bu tizimning ish jarayonidagi notinch sharoitlarga bardosh berish qobiliyatiga ishonch hosil qilish uchun tizim ustida tajriba o'tkazish intizomidir. Bu narsalarni shunchaki sindirish uchun sindirish emas; bu yashirin zaifliklarni fosh qilish va tizim mustahkamligini oshirish uchun nazorat ostida va ataylab nosozliklarni tizimli ravishda kiritishdir.
Buni tizimingiz qanday javob berishini ko'rish uchun muhitingizga "xaos" kiritadigan nazorat ostidagi tajriba deb o'ylang. Bu sizga potentsial muammolarni foydalanuvchilaringizga ta'sir qilishidan oldin proaktiv ravishda aniqlash va tuzatish imkonini beradi.
Xaos Muhandisligi Tamoyillari
Xaos Muhandisligining asosiy tamoyillari tajribalarni xavfsiz va nazorat ostida o'tkazish uchun asos yaratadi:
- Barqaror Holatni Aniqlash: Tizimning normal ishlashining asosiy o'lchovlarini (masalan, kechikish, xatolar darajasi, resurslardan foydalanish) o'lchang. Bu tajriba davomida va undan keyin tizimning harakatini solishtirish uchun mos yozuvlar nuqtasini belgilaydi.
- Gipoteza Shakllantirish: Muayyan nosozlik sharoitida tizim o'zini qanday tutishi haqida bashorat qiling. Bu tajribani yo'naltirishga yordam beradi va natijalarni baholash uchun asos yaratadi. Masalan: "Agar ma'lumotlar bazasi replikalaridan biri ishdan chiqsa, tizim so'rovlarga xizmat ko'rsatishni kechikishga minimal ta'sir bilan davom ettiradi."
- Tajribalarni Ishlab Chiqarish Muhitida O'tkazish: Ideal holda, tajribalar real sharoitlarni aniq simulyatsiya qilish uchun ishlab chiqarish muhitida (yoki ishlab chiqarishga juda yaqin bo'lgan sahnalashtirish muhitida) o'tkazilishi kerak.
- Tajribalarni Uzluksiz Ishlashi uchun Avtomatlashtirish: Avtomatlashtirish tajribalarni tez-tez va izchil bajarish imkonini beradi, bu esa tizimning bardoshliligini doimiy ravishda kuzatish va takomillashtirishga yordam beradi.
- Zarar Radiusini Minimallashtirish: Buzilish xavfini kamaytirish uchun tajribalar ta'sirini foydalanuvchilarning yoki tizimlarning kichik bir qismi bilan cheklang.
Nosozliklarni Kiritish nima?
Nosozliklarni kiritish – bu Xaos Muhandisligi doirasidagi maxsus usul bo'lib, u tizimning stress ostidagi holatini sinash uchun unga ataylab xatolar yoki nosozliklar kiritishni o'z ichiga oladi. Bu "xaos" kiritish va tizimning bardoshliligi haqidagi gipotezalaringizni tasdiqlashning asosiy mexanizmidir.
Asosan, siz tizimingiz ularni qanday boshqarishini ko'rish uchun real hayotdagi nosozlik stsenariylarini (masalan, server ishdan chiqishi, tarmoq uzilishlari, kechiktirilgan javoblar) simulyatsiya qilasiz. Bu sizga arxitektura, kod va operatsion jarayonlaringizdagi zaifliklarni aniqlashga yordam beradi.
Nosozliklarni Kiritish Turlari
Nosozliklarni kiritishning har xil turlari mavjud bo'lib, har biri tizimning turli jihatlariga qaratilgan:
1. Resurs Nosozliklari
Ushbu nosozliklar resurslarning tugashi yoki ziddiyatini simulyatsiya qiladi:
- CPU Nosozliklari: Yuqori yuklanish yoki resurs ziddiyatini simulyatsiya qilish uchun protsessorning keskin yuklanishlarini kiriting. Siz bir nechta hisoblash talab qiluvchi jarayonlarni ishga tushirib, protsessor ishlatilishining keskin o'sishini simulyatsiya qilishingiz mumkin. Bu ilovangizning ortgan yuklamani boshqarish qobiliyatidagi muammolarni yoki ishlashdagi qiyinchiliklarni ochib berishi mumkin. Masalan: Muhim yangiliklar tufayli savdo faolligining keskin o'sishini boshdan kechirayotgan moliyaviy savdo platformasi.
- Xotira Nosozliklari: Tizim past xotira sharoitlarini qanday boshqarishini sinash uchun xotira sizib chiqishi yoki tugashini simulyatsiya qiling. Bu katta hajmdagi xotirani ajratish yoki ilovangizda ataylab xotira sizib chiqishlarini yaratishni o'z ichiga olishi mumkin. Masalan: Katta chegirmalar savdosi tufayli foydalanuvchilarning ommaviy oqimi va xotira ishlatilishining ortishini boshdan kechirayotgan elektron tijorat veb-sayti.
- Disk Kiritish/Chiqarish Nosozliklari: Tizim kiritish/chiqarishdagi qiyinchiliklarga qanday javob berishini sinash uchun sekin yoki ishdan chiqqan disklarni simulyatsiya qiling. Bunga diskka doimiy ravishda katta fayllarni o'qiydigan yoki yozadigan jarayonlarni yaratish orqali erishish mumkin. Masalan: Mashhur yangi shou chiqarilishi tufayli diskdagi kiritish/chiqarishning ortishini boshdan kechirayotgan media striming xizmati.
2. Tarmoq Nosozliklari
Ushbu nosozliklar tarmoq muammolari va uzilishlarini simulyatsiya qiladi:
- Kechikishlarni Kiritish: Sekin tarmoq ulanishlarini simulyatsiya qilish uchun tarmoq aloqasiga kechikishlar kiriting. Bunga Linuxda `tc` (traffic control) kabi vositalar yordamida yoki proksi serverlarda kechikishlar kiritish orqali erishish mumkin. Masalan: Turli mintaqalar o'rtasida tarmoq kechikishini boshdan kechirayotgan global taqsimlangan ilova.
- Paket Yo'qolishi: Tizim ishonchsiz tarmoq ulanishlarini qanday boshqarishini sinash uchun paket yo'qolishini simulyatsiya qiling. Yana, `tc` yoki shunga o'xshash vositalar belgilangan tezlikda paketlarni tashlab yuborish uchun ishlatilishi mumkin. Masalan: Tarmoq tiqilishi tufayli paket yo'qolishini boshdan kechirayotgan IP-telefoniya (VoIP) xizmati.
- Tarmoqni Bo'lish: To'liq tarmoq uzilishini yoki ma'lum komponentlarning izolyatsiyasini simulyatsiya qiling. Bunga xavfsizlik devorlari yoki tarmoq siyosatlari yordamida ma'lum serverlar yoki mintaqalar o'rtasidagi tarmoq trafigini bloklash orqali erishish mumkin. Masalan: Mintaqaviy tarmoq uzilishini boshdan kechirayotgan bulutga asoslangan xizmat.
- DNS Nosozliklari: DNS nomlarini hal qilishdagi xatoliklarni yoki noto'g'ri DNS javoblarini simulyatsiya qiling. Siz vaqtincha DNS yozuvlarini noto'g'ri manzillarga yo'naltirish uchun o'zgartirishingiz yoki DNS serverining mavjud emasligini simulyatsiya qilishingiz mumkin. Masalan: DNS serverlariga DDoS hujumi tufayli ma'lum bir mintaqada DNS nomlarini hal qilish muammolarini boshdan kechirayotgan global ilova.
3. Jarayon Nosozliklari
Ushbu nosozliklar jarayonlarning ishdan chiqishi yoki to'xtatilishini simulyatsiya qiladi:
- Jarayonni To'xtatish: Tizim qanday tiklanishini ko'rish uchun muhim jarayonlarni to'xtating. Bu tizimning jarayon nosozliklarini boshqarish qobiliyatini sinashning oddiy usuli. Jarayonlarni to'xtatish uchun Linuxda `kill` yoki Windowsda vazifalar menejeri kabi vositalardan foydalanishingiz mumkin. Masalan: Muhim xizmat to'satdan ishdan chiqqan mikroxizmatlar arxitekturasi.
- Jarayonni To'xtatib Turish: Jarayonlarni javob bermaydigan holga kelishini simulyatsiya qilish uchun ularni to'xtatib turing. Bunga Linuxda `SIGSTOP` va `SIGCONT` kabi signallar yordamida erishish mumkin. Masalan: Ulanishlar soni tugab, ilovaning javob bermay qolishiga sabab bo'lgan ma'lumotlar bazasi ulanishlar puli.
4. Holat Nosozliklari
Ushbu nosozliklar tizim holatini buzish yoki o'zgartirishni o'z ichiga oladi:
- Ma'lumotlarning Buzilishi: Tizim nomuvofiq ma'lumotlarni qanday boshqarishini ko'rish uchun ma'lumotlar bazalari yoki keshlardagi ma'lumotlarni ataylab buzish. Bu ma'lumotlar bazasi yozuvlarini o'zgartirish, kesh yozuvlariga xatolar kiritish yoki hatto disk buzilishini simulyatsiya qilishni o'z ichiga olishi mumkin. Masalan: Mahsulot katalogidagi ma'lumotlarning buzilishi tufayli noto'g'ri narxlar yoki mahsulot ma'lumotlariga duch kelayotgan elektron tijorat veb-sayti.
- Soat Siljishi: Turli serverlar o'rtasidagi soat sinxronizatsiyasi muammolarini simulyatsiya qiling. Bunga tizim soatini boshqarishga imkon beruvchi vositalar yordamida erishish mumkin. Masalan: Turli tugunlar o'rtasida soat siljishini boshdan kechirayotgan va tranzaktsiyalarni qayta ishlashda nomuvofiqliklarga olib keladigan taqsimlangan tranzaksiya tizimi.
5. Bogʻliqlik Nosozliklari
Ushbu nosozliklar tashqi bog'liqliklarning ishdan chiqishiga qaratilgan:
- Xizmat Mavjud Emasligi: Tizimning qanday qilib muammosiz ishlashni to'xtatishini sinash uchun tashqi xizmatlarning (masalan, ma'lumotlar bazalari, APIlar) mavjud emasligini simulyatsiya qiling. Bunga stubbing yoki mocking kutubxonalari kabi vositalar yordamida xizmat uzilishlarini simulyatsiya qilish orqali erishish mumkin. Masalan: Uchinchi tomon to'lov shlyuziga tayanadigan va uzilishni boshdan kechirayotgan ilova.
- Sekin Javoblar: Tizim kechikish muammolarini qanday boshqarishini sinash uchun tashqi xizmatlardan sekin javoblarni simulyatsiya qiling. Bunga soxta xizmatlardan keladigan javoblarga kechikishlar kiritish orqali erishish mumkin. Masalan: Ma'lumotlar bazasi serverining haddan tashqari yuklanishi tufayli sekin ma'lumotlar bazasi so'rovlarini boshdan kechirayotgan veb-ilova.
- Noto'g'ri Javoblar: Xatolarni qayta ishlashni sinash uchun tashqi xizmatlarning noto'g'ri yoki kutilmagan ma'lumotlarni qaytarishini simulyatsiya qiling. Bunga soxta xizmatlardan keladigan javoblarni noto'g'ri ma'lumotlarni qaytarish uchun o'zgartirish orqali erishish mumkin. Masalan: Uchinchi tomon API'sidan noto'g'ri ma'lumotlarni qabul qilib, kutilmagan harakatlarga olib keladigan ilova.
Nosozliklarni Kiritish uchun Vositalar
Bir nechta vositalar va freymvorklar nosozliklarni kiritish tajribalarini avtomatlashtirish va boshqarishga yordam beradi:
- Chaos Monkey (Netflix): Ishlab chiqarish muhitida virtual mashina namunalarini tasodifiy ravishda to'xtatish uchun klassik vosita. Oddiy bo'lishiga qaramay, bulutga asoslangan infratuzilmaning bardoshliligini sinashda samarali bo'lishi mumkin.
- Gremlin: Resurs, tarmoq va holat nosozliklarini o'z ichiga olgan keng ko'lamli nosozliklarni kiritish tajribalarini boshqarish uchun tijorat platformasi. U foydalanuvchilar uchun qulay interfeysni taklif qiladi va turli infratuzilma platformalarini qo'llab-quvvatlaydi.
- Litmus: Kubernetes uchun ochiq manbali Xaos Muhandisligi freymvorki. Bu sizga Kubernetes maxsus resurslari sifatida Xaos Muhandisligi tajribalarini belgilash va bajarish imkonini beradi.
- Chaos Toolkit: Deklarativ JSON formatidan foydalanib Xaos Muhandisligi tajribalarini belgilash va bajarish uchun ochiq manbali vositalar to'plami. U turli platformalar va integratsiyalarni qo'llab-quvvatlaydi.
- Toxiproxy: Tarmoq va ilova nosozliklarini simulyatsiya qilish uchun TCP proksi. U ilovangiz va uning bog'liqliklari o'rtasida kechikish, paket yo'qolishi va boshqa tarmoq buzilishlarini kiritishga imkon beradi.
- Maxsus Skriptlar: Maxsus stsenariylar uchun tizimga to'g'ridan-to'g'ri nosozliklarni kiritish uchun `tc`, `iptables` va `kill` kabi vositalardan foydalanib maxsus skriptlar yozishingiz mumkin. Bu yondashuv maksimal moslashuvchanlikni ta'minlaydi, ammo ko'proq qo'l mehnatini talab qiladi.
Nosozliklarni Kiritish boʻyicha Eng Yaxshi Amaliyotlar
Nosozliklarni kiritish tajribalaringiz samarali va xavfsiz bo'lishini ta'minlash uchun ushbu eng yaxshi amaliyotlarga amal qiling:
- Kichikdan Boshlang: Oddiy tajribalardan boshlang va ishonch ortib borgan sari murakkablikni asta-sekin oshiring.
- Yaqindan Kuzatib Boring: Kutilmagan harakatlar yoki potentsial muammolarni aniqlash uchun tajribalar davomida tizimingizni diqqat bilan kuzatib boring. Kechikish, xatolar darajasi va resurslardan foydalanish kabi asosiy ko'rsatkichlarni kuzatish uchun keng qamrovli monitoring vositalaridan foydalaning.
- Avtomatlashtiring: Tajribalaringizni muntazam va izchil o'tkazish uchun avtomatlashtiring. Bu tizimning bardoshliligini doimiy ravishda kuzatib borish va regressiyalarni aniqlash imkonini beradi.
- Muloqot Qiling: Tushunmovchiliklarni oldini olish va hamma potentsial xavflardan xabardor bo'lishini ta'minlash uchun jamoangiz va manfaatdor tomonlarni yaqinlashib kelayotgan tajribalar haqida xabardor qiling.
- Orqaga Qaytarish Rejasi: Agar biror narsa noto'g'ri ketsa, aniq orqaga qaytarish rejasiga ega bo'ling. Bu tizimni oldingi holatiga tezda tiklash uchun qadamlarni o'z ichiga olishi kerak.
- O'rganing va Takrorlang: Har bir tajriba natijalarini tahlil qiling va tizimingizning bardoshliligini yaxshilash uchun topilmalardan foydalaning. Turli nosozlik stsenariylarini sinash va tizimning harakati haqidagi tushunchangizni takomillashtirish uchun tajribalaringizni takrorlang.
- Hamma narsani Hujjatlashtiring: Barcha tajribalarning batafsil yozuvlarini, shu jumladan gipoteza, bajarilish bosqichlari, natijalar va olingan saboqlarni saqlang. Ushbu hujjatlar kelajakdagi tajribalar uchun va jamoangiz ichida bilim almashish uchun bebaho bo'ladi.
- Zarar Radiusini Hisobga Oling: Ishlab chiqarish muhitiga o'tishdan oldin nosozliklarni muhim bo'lmagan tizimlarga yoki ishlab chiqish muhitlariga kiritishdan boshlang. Tajribalarning oxirgi foydalanuvchilarga ta'sirini cheklash uchun himoya choralarini amalga oshiring. Masalan, tajriba ta'sirini izolyatsiya qilish uchun funksiya bayroqlari yoki kanareyka joylashtirishlaridan foydalaning.
- Kuzatuvchanlikni Ta'minlang: Siz tajribalaringizning ta'sirini *kuzata olishingiz* kerak. Bu mustahkam jurnal yuritish, kuzatish va monitoring infratuzilmasini talab qiladi. Kuzatuvchanliksiz, siz kiritilgan nosozliklarning ta'sirini aniq baholay olmaysiz yoki har qanday nosozlikning asosiy sababini aniqlay olmaysiz.
Nosozliklarni Kiritishning Afzalliklari
Xaos Muhandisligi strategiyangizning bir qismi sifatida nosozliklarni kiritishni qabul qilish ko'plab afzalliklarni taqdim etadi:
- Tizim Bardoshliligining Yaxshilanishi: Tizimingizdagi zaifliklarni proaktiv ravishda aniqlang va tuzating, bu esa uni nosozliklarga nisbatan bardoshliroq qiladi.
- Ishlamay Qolish Vaqtining Kamayishi: Tizimingiz nosozliklarni muammosiz boshqarishini ta'minlash orqali kutilmagan uzilishlarning ta'sirini minimallashtiring.
- Ishonchning Ortishi: Tizimingizning ishlab chiqarishdagi notinch sharoitlarga bardosh berish qobiliyatiga ishonch hosil qiling.
- O'rtacha Tiklanish Vaqtining (MTTR) Tezlashishi: Hodisalarga javob berishni mashq qilish va tiklash jarayonlarini avtomatlashtirish orqali nosozliklardan tezda tiklanish qobiliyatingizni yaxshilang.
- Monitoring va Ogohlantirishning Kuchaytirilishi: Kiritilgan nosozliklarga qanday javob berishini kuzatish orqali monitoring va ogohlantirish tizimlaringizdagi bo'shliqlarni aniqlang.
- Tizim Harakatini Yaxshiroq Tushunish: Tizimingiz stress ostida o'zini qanday tutishi haqida chuqurroq tushunchaga ega bo'ling, bu esa yanada ongli dizayn va operatsion qarorlar qabul qilishga olib keladi.
- Jamoa Hamkorligining Yaxshilanishi: Xaos Muhandisligi tajribalarini loyihalash va amalga oshirish uchun birgalikda ishlash orqali ishlab chiqish, operatsiyalar va xavfsizlik jamoalari o'rtasidagi hamkorlikni rag'batlantiring.
Haqiqiy Hayotdan Misollar
Bir nechta kompaniyalar o'zlarining tizim bardoshliligini yaxshilash uchun Xaos Muhandisligi va nosozliklarni kiritishni muvaffaqiyatli amalga oshirdilar:
- Netflix: Xaos Muhandisligida kashshof bo'lgan Netflix, o'zining ishlab chiqarish muhitida namunalarni tasodifiy ravishda to'xtatish uchun mashhur Chaos Monkey'dan foydalanadi. Ular, shuningdek, turli nosozlik stsenariylarini simulyatsiya qilish uchun Simian Army kabi boshqa Xaos Muhandisligi vositalarini ishlab chiqdilar.
- Amazon: Amazon o'zining AWS xizmatlarining bardoshliligini sinash uchun Xaos Muhandisligidan keng foydalanadi. Ular tarmoq qurilmalari, saqlash tizimlari va ma'lumotlar bazalari kabi infratuzilmalarining turli komponentlariga nosozliklarni kiritish uchun vositalar va usullarni ishlab chiqdilar.
- Google: Google ham o'z xizmatlarining ishonchliligini oshirish usuli sifatida Xaos Muhandisligini qabul qildi. Ular o'zlarining taqsimlangan tizimlarining bardoshliligini sinash va potentsial nosozlik rejimlarini aniqlash uchun nosozliklarni kiritishdan foydalanadilar.
- LinkedIn: LinkedIn o'z platformasining har xil turdagi nosozliklarga qarshi bardoshliligini tasdiqlash uchun Xaos Muhandisligidan foydalanadi. Ular o'z tizimlarining turli jihatlarini sinash uchun avtomatlashtirilgan va qo'lda nosozliklarni kiritish usullarining kombinatsiyasidan foydalanadilar.
- Salesforce: Salesforce o'zining bulutli xizmatlarining yuqori darajada mavjudligi va ishonchliligini ta'minlash uchun Xaos Muhandisligidan foydalanadi. Ular tarmoq uzilishlari, ma'lumotlar bazasi nosozliklari va ilova xatolari kabi turli nosozlik stsenariylarini simulyatsiya qilish uchun nosozliklarni kiritishdan foydalanadilar.
Nosozliklarni Kiritishni Amalga Oshirishdagi Qiyinchiliklar
Nosozliklarni kiritishning afzalliklari sezilarli bo'lsa-da, ba'zi qiyinchiliklarni ham hisobga olish kerak:
- Murakkablik: Nosozliklarni kiritish tajribalarini loyihalash va amalga oshirish, ayniqsa katta va taqsimlangan tizimlarda murakkab bo'lishi mumkin.
- Xavf: Ishlab chiqarish muhitiga nosozliklarni kiritishda har doim kutilmagan oqibatlarga olib kelish xavfi mavjud.
- Asboblar: Nosozliklarni kiritish uchun to'g'ri vositalar va freymvorklarni tanlash qiyin bo'lishi mumkin, chunki ko'plab variantlar mavjud.
- Madaniyat: Xaos Muhandisligini qabul qilish muvaffaqiyatsizlikni qabul qilish va xatolardan o'rganishga qaratilgan madaniyat o'zgarishini talab qiladi.
- Kuzatuvchanlik: Yetarli darajada monitoring va jurnal yuritishsiz nosozliklarni kiritish tajribalarining ta'sirini baholash qiyin.
Nosozliklarni Kiritishni Boshlash
Nosozliklarni kiritishni boshlash uchun ba'zi qadamlar:
- Oddiy tajribadan boshlang: Muhim bo'lmagan tizim yoki komponentni tanlang va jarayonni to'xtatish yoki kechikish kiritish kabi oddiy nosozlik kiritish tajribasidan boshlang.
- Gipotezangizni aniqlang: Nosozlik kiritilganda nima bo'lishini kutayotganingizni aniq belgilang.
- Tizimni kuzatib boring: Tajriba davomida va undan keyin tizimning harakatini diqqat bilan kuzatib boring.
- Natijalarni tahlil qiling: Haqiqiy natijalarni gipotezangiz bilan solishtiring va har qanday nomuvofiqliklarni aniqlang.
- Topilmalaringizni hujjatlashtiring: Topilmalaringizni yozib oling va jamoangiz bilan baham ko'ring.
- Takrorlang va yaxshilang: Tajribadan olingan tushunchalarni tizimingizning bardoshliligini yaxshilash uchun foydalaning va jarayonni murakkabroq tajribalar bilan takrorlang.
Xulosa
Xaos Muhandisligi va nosozliklarni kiritish yanada bardoshli va ishonchli tizimlarni yaratish uchun kuchli usullardir. Zaifliklarni proaktiv ravishda aniqlash va tizim mustahkamligini oshirish orqali siz ishlamay qolish vaqtini kamaytirishingiz, ishonchni oshirishingiz va yaxshiroq foydalanuvchi tajribasini taqdim etishingiz mumkin. Yengish kerak bo'lgan qiyinchiliklar bo'lsa-da, bu amaliyotlarni qo'llashning afzalliklari xavflardan ancha ustundir. Kichikdan boshlang, yaqindan kuzatib boring va tashkilotingizda bardoshlilik madaniyatini shakllantirish uchun doimiy ravishda takrorlang. Esda tuting, muvaffaqiyatsizlikni qabul qilish narsalarni buzish haqida emas; bu hamma narsaga bardosh bera oladigan tizimlarni yaratishni o'rganish haqida.
Dasturiy ta'minot tizimlari tobora murakkablashib, taqsimlanib borar ekan, Xaos Muhandisligiga bo'lgan ehtiyoj faqat o'sishda davom etadi. Ushbu usullarni o'zlashtirib, siz tizimlaringiz real dunyoning muqarrar qiyinchiliklariga tayyor ekanligiga ishonch hosil qilishingiz mumkin.