CDN ဘယ်လိုအလုပ်လုပ်လဲ မသိခင်မှာ ပထမဦးဆုံး cdn ကဘာလဲဆိုတာ သိဖို့လိုပါတယ်။ ကိုယ်က Web Developer တစ်ယောက်ဆိုရင်တော့ cdn နဲ့သိပ်မစိမ်းပါဘူး။ ကိုယ့်ရဲ့ project ထဲမှာ cdn ကယူထားတဲ့ js တွေ jquery တွေ စသည်ဖြင့် assets တွေအများကြီးရှိပါတယ်။

ဘာလို့ cdn ကိုသုံးရလည်းဆိုတော့ request delay ဖြစ်နိုင်တဲ့ problem ကြောင့်၊ ဥပမာဆိုပါစို့၊ ကိုယ်က ကိုယ့် project ထဲမှာ js file တစ်ခုကို load လုပ်လိုက်တယ်။ ကိုယ်က Yangon မှာ ဒါပေမယ့် အဲ့ဒီ load လုပ်မယ့် file က US လို အရမ်းဝေးတဲ့ နေရာတစ်ခုက hosting မှာရှိတယ်ဆိုရင် physical distance က အရမ်းဝေးနေတယ်။ အဲ့ဒီ physical distance များတဲ့ issue ကြောင့် ကိုယ့် website ကလည်း load တတ်တဲ့ နေရာမှာ delay ဖြစ်နိုင်ပါတယ်။

CDN ကိုသုံးရတဲ့ ရည်ရွယ်ချက်က အပေါ်မှာပြောခဲ့တဲ့ physical distance ကို တတ်နိုင်သမျှ လျော့ချပြီး site ကို delay မဖြစ်စေဖို့ပေါ့။ ဒီလောက်ဆို CDN အကြောင်းသိပြီ၊ CDN ဘယ်လို အလုပ်လုပ်လဲဆိုတာ ဆက်ကြည့်ရအောင်။

ခုနက ပြောခဲ့တဲ့ physical distance ကို လျော့အောင်လုပ်ဖို့ဆို request လုပ်မယ့် file တွေက geolocation တွေအများကြီးမှာရှိဖို့လိုတယ်။ ဒါမှသာ ဥပမာ ခုနကပြောခဲ့တဲ့ Yangon ကလူက US server က file ကို access လုပ်မယ်ဆို US server file ကအကယ်လို့သာ အဲ့ဒီ file ကို US, UK, China, Singapore တို့မှာထားထားမယ်ဆိုရင် Yangon ကလူက US ထိသွားစရာမလိုဘဲ အနီးစပ်ဆုံး Singapore အထိပဲသွားခြင်းဖြင့် source နဲ့ destination ရဲ့ physical distance ကိုလျော့နိုင်ပါတယ်။

geolocation အများကြီးမှာထားတာကို points of presence (PoP) လို့ခေါ်ပါတယ်။ Pop တစ်ခုဆီတိုင်းမှာ request လာလုပ်မယ့် content တွေအတွက် serve လုပ်ပေးနိုင်မယ့် caching server တွေရှိပါတယ်။ အပေါ်မှာ ပြောခဲ့တဲ့အတိုင်း file ရဲ့ original server က US မှာရှိပေမယ့် Yangon ကလူ request လှမ်းလုပ်မယ်ဆို singapore Pop ကနေ response ပြန်လုပ်ပေးနိုင်ပါတယ်။

Pop အကြောင်းထပ်ပြောရင် Pop ဆိုတာတစ်နည်းအားဖြင့် data centers တွေပဲ။ geolocation တွေအလိုက်မှာ ထားထားတဲ့ data center တွေပေါ့၊ ဒါမှသာ request လုပ်တဲ့သူနဲ့ အနီးဆုံး short path က Pop က response ပြန်လုပ်ပေးနိုင်မှာ၊ တစ်နည်းအားဖြင့် physical distance ကိုလျော့ပေးနိုင်မှာ။ Pop ထဲမှာဘာတွေထပ်ရှိမလဲဆိုရင် caching server တွေထပ်ရှိမယ်။

Caching servers ထဲမှာတော့ cache လုပ်ထားတဲ့ files တွေသိမ်းထားတယ်၊ request လုပ်ခံရမယ့် file တွေပေါ့။ သူရဲ့ အဓိက ရည်ရွယ်ချက်က request လာမယ့် source website ရဲ့ bandwidth consumption ကိုလျော့ချပြီး load performance ကိုတတ်စေဖို့ပဲ။ Caching server ထဲမှာ file တွေကိုသိမ်းတယ်ဆိုတဲ့နေရာမှာ SSD, HDD, RAM တွေကိုသုံးပြီးသိမ်းတယ်။ ဘယ်ဟာကို သုံးတယ်ဆိုတာကတော့ file request များတယ် နည်းတယ်အပေါ်မူတည်ပြီး သုံးတယ်။ ဥပမာ request ခနခန လာတဲ့ file တွေဆို RAM ပေါ်တင်ထားခြင်းအားဖြင့် response မြန်မြန်လုပ်ပေးနိုင်တယ်၊ ဒီလိုသဘောမျိုးပေါ့။

တစ်ခြား CDN နဲ့ပတ်သတ်ပြီး deep dive လုပ်လို့ရသေးပေမယ့် ဒီလောက်သိထားတယ်ဆိုရင် အဆင်ပြေပြီလို့ထင်ပါတယ်။

Thank you for reading. See ya