CDN nima va qanday ishlaydi? Push va pull CDN

Assalamu Alaykum bugun System Design interviewlarida va performanceni ko'tarish uchun juda qulay bo'lgan CDN va u qanday ishlashi haqida gaplashamiz.

CDN nima ?

CDN — bu butun dunyo bo'yicha tarqalgan serverlar tarmog'i bo'lib sizga kerak bo'lgan kontentni samarali(tez) yektazib beradi. CDNsiz agarda siz biror sayt ochsangiz unga dunyoning har yeridan ulanmoqchi bo'lishsa server bir joydaligi uchun ba'zi foydalauvchinlar so'rov juda uzoq masofa bosib kelishiga to'g'ri keladi va bu vaqt talab qiladi, CDN bilan esa u sizga yaqin bo'lgan serverga sizni yo'nlatiradi va tezda ma'lumotlarni olishingiz mumkin. Bundan tashqari saytga ko'p odamlar tashrif buyurishni boshlashsa sayt infrastrukturasi yoki tarmoq sozlamalari yoki backend dosh berolmasligi mumkin, bu esa daromad yo'qotilishiga yoki foydalanuvchi ishonchi tushishiga sabab bo'ladi , CDN esa buni trafikni asosiy qismini o'zida saqlab qolish orqali oldini oladi.

CDN 1-marta 1999 yilda html fayllarni tezlashtirish uchun ishlatilgan va hozir dinamik(o'zgaruvchan) kontent bilan ham ishlay oladi .

CDN nega kerak yoki uning foydalari :

Kontent cache bo'lganda unga TTL(time to live ) qo'yiladi va shuncha vaqtdan keyin u o'chirib tashlanadi buni cache invalidation uslublari orqali ham o'chirish mumkin .

CDNdagi asosiy qism va konseptsiyalar

Bizda 2 xil CDN turi mavjud Pull va Push .

Push CDN

Push CDN qachonki serverda o'zgarish bo'lsa shu yangi kontentni qabul qiladi. Siz kontent bilan ta'minlashni o'z bo'yningizga olasiz , CDNga yuklash va CDNga yo'naltiradigan URLni o'zgartirish . Kontent faqatgina yangi kelganda yoki o'zgarganda yuklanadi , bu traffikni kamaytiradi .

Kichik traffikga ega bo'lgan yoki kontent tez o'zgarmaydigan saytlar uchun push CDN yaxshi ishlaydi. Kontent CDNga bir marta yuklanadi , har doim CDN tomonidan tortib olinmaydi.

Push CDN qanday ishlaydi ?

Push CDN
Push CDN

Pull CDN

Pull CDN 1-foydalanuvchidan so'rov kelganda kontentni sizning serverdan yuklab oladi. Kontent sizning serverda bo'lib CDNga yo'naltiriladigan URLlarni o'zgartirasiz . Natijada so'rov sekinlashadi toki kontent cachelanguncha.

Time-to-live (TTL) kontent qancha vaqt cachelanib turishini belgilaydi . Pull CDN CDNdagi kontent hajmini iloji boricha kamaytiradi , ammo fayllar cachedan o'chgani tufayli ortiqcha traffik olib kelishi va o'zgarish bo'lishidan oldin yuklab olishi mumkin .

Ko'p traffikga ega bo'lgan saytlar pull CDN bilan yaxshi ishlaydi , faqat yaqinda ishlatilgan kontentlar CDNda saqlanadi.

Pull CDN qanday ishlaydi?

Pull CDN
Pull CDN

CDN ishlatishning yomon tomonlari

Dinamik kontent caching (CDN buni qanday qiladi?)

CDNlar ko'p holatda statik kontent bilan ishlaydi ammo hozirda dinamik qism ham cachelanmoqda , hech bo'lmasa compress qilish orqali yordam bermoqda. Hozir dinamik kontentni qanday cachelashni bir uslubini ko'ramiz.

Fragment yoki qisman cachelash, butun sahifani cachelash o'rniga u qismlarga bo'linadi va masalan mahsulot tavsifi statik bu cachelanadi , “siz uchun tavsiya qilinadi” qismi shaxsiy bo'lgani uchun origindan qaytib olib kelinadi . Bu CDN qavatida amalga oshadi va dinamik kontentni cachelashga yordam beradi.

CDN va API gateway farqi

Ikkalasi orasidagi eng oddiy ammo muhim farqi bu Gateway va CDN nima yetkazib berishida va trafikni qanday boshqarishida.

API gateway dinamic API so'rovlari bilan ishlaydi— ularni yo'naltiradi, xavsizlikni tekshiradi va so'rov backend(bussiness mantig'igacha ) yetib borishni taminlaydi.

CDN static fayllarni — rasmlar, videolar yoki cachelangan web sahifalarni foydalanuvchiga eng yaqin serverdan yetkazib beradi.

Qisqa qilib aytganda, API Gateway => Dinamik API trafikni boshqaradi, CDN => Statik kontent tezlashtirib beradi.

CDN xuddi reverse proxy kabi ishlaydi (keyingi maqola proxylar haqida bo'ladi)

Mashhur CDN Providerlari

Quyida bir nechta keng foydalaniladigan CDN providerlarini ko'ramiz:

Bular bir nechta misol xolos har bir cloudda o'zining CDNni mavjud.

Xulosa

Pull va Push CDN orasidagi farqni bilish bu bizga foydali CDN uslubi tanlashga yordam beradi. Pull CDN ko'pincha dinamik (tez o'zgaradigan) kontentlar uchun , server o'zi ma'lumotni olib cachelaydi. Push CDN esa boshqariladigan va kam o'zgaradigan kontent uchun qulayroq va doim cacheda bo'ladi (qo'lda boshqarish kerak bo'lsa ham) .