মন্টু মিয়াঁর সিস্টেম ডিজাইন
CDN এর জাদু

CDN কি আবার?

লোড ব্যালেন্সার সেটআপ করে মন্টু মিয়াঁর সুখে দিন কাটছিল। ইউজার বাড়লেই সে সার্ভারের সংখ্যা বাড়িয়ে দেয়। ইউজারও খুশি। মন্টুও খুশি। প্রচুর ভিডিও আপলোড হচ্ছে প্রতিদিন। যত বেশি ভিডিও বাড়ছে, ভিউয়ার এর সংখ্যা বাড়তেছে তার থেকে কয়েক গুন বেশি স্পিডে। কিন্তু এই সুখ টিকলো না বেশিদিন। কিছুদিন যেতেই ইউজাররা আবার নালিশ করা শুরু করল।

তবে এবার নালিশটা একটু অদ্ভুত। মন্টু দেখল, যারা সার্ভারের কাছে আছে (লোকাল ইউজার), তাদের ভিডিও ঠিকঠাক চলছে। কিন্তু যারা একটু দূর থেকে বা বিদেশ থেকে বিড়ালটিউব চালাচ্ছে, তাদের ভিডিও বাফারিং হতে হতে দিন পার হয়ে যাচ্ছে!

slow buffering

মন্টু ভাবল, "ধুর! সার্ভার কম পড়ছে মনে হয়।" সে ধুমছে আরও কয়েকটা সার্ভার বাড়িয়ে দিল। কিন্তু মাস শেষে AWS-এর বিল দেখে মন্টুর চোখ কপালে! ভিডিও তো ফাস্ট হলোই না, উল্টো সার্ভারের খরচ বেড়ে গেল বহুগুণ।

উপায় না দেখে সে আবার ছুটল বল্টু ভাইয়ের ডেরায়। "ভাই আমাকে বাঁচান! সার্ভার বাড়ালাম, টাকাও ঢাললাম, তবুও দূরের ইউজাররা গালি দিচ্ছে।"

বল্টু ভাই সব শুনে মুচকি হেসে বললেন, "তুই তো সমস্যার গোড়াতেই হাত দিসনি। তোর এখন সার্ভার বাড়ানোর দরকার নেই, তোর দরকার Content Delivery Network বা CDN।"

বল্টু ভাইয়ের সাজেশন শুনে মন্টু লেগে গেলো পড়াশোনায়। তাকে এই সমস্যার সামাধান করতেই হবে। ইউজার কে বেস্ট সার্ভিস দেওয়াই মন্টুর একমাত্র লক্ষ এখন। মন্টুর সাথে আমরাও দেখে আসি কি এই সিডিএন আর এটা কিভাবে ই বা মন্টুকে এই সমস্যা থেকে উদ্ধার করবে।

কি এই CDN?

বল্টু ভাই মন্টুকে শান্ত করে বললেন, "শোন, ধর তোর বিড়ালটিউবের মেইন সার্ভার (অরিজিন) আছে আমেরিকায়। এখন ঢাকার কোনো ইউজার যদি ভিডিও দেখতে চায়, তাহলে সেই রিকোয়েস্ট ঢাকা থেকে আমেরিকা যাবে, ভিডিও ফাইল নিয়ে আবার ঢাকা ফিরবে। এই আসা-যাওয়ার পথে তো সময় লাগবেই (Latency), তাই না?"

মন্টু মাথা নাড়ল, "তা তো লাগবেই।"

— "এখন ধর, তুই যদি ঢাকাতেই একটা ছোট গোডাউন বা ব্রাঞ্চ অফিস খুলিস, আর সেখানে আমেরিকার পপুলার ভিডিওগুলোর একটা কপি রেখে দিস? তাহলে ঢাকার ইউজার কি আর আমেরিকায় যাবে?"

মন্টু লাফিয়ে উঠল, "না! সে তো পাশের গোডাউন থেকেই ভিডিও পেয়ে যাবে!"

— "এক্সাক্টলি! এই 'লোকাল গোডাউন' গুলোর নেটওয়ার্কই হলো CDN (Content Delivery Network)।"

সহজ কথায়, CDN হলো বিশ্বজুড়ে ছড়িয়ে থাকা একদল সার্ভারের নেটওয়ার্ক। এদের কাজ হলো মেইন সার্ভার থেকে স্ট্যাটিক কন্টেন্ট (যেমন: ভিডিও, ছবি, HTML, CSS, JS) গুলোর একটা কপি নিজেদের কাছে জমিয়ে রাখা (Cache)।

যখন কোনো ইউজার ভিডিও দেখতে চায়, CDN দেখে ইউজারের বাসা সবচেয়ে কাছে কোন সার্ভারের পাশে। তখন মেইন সার্ভারের বদলে সেই কাছের সার্ভার থেকেই ভিডিওটা ডেলিভারি দেওয়া হয়।

এর ফলে দুইটা লাভ:

১. স্পিড: ভিডিও ঘরের কাছের সার্ভার থেকে আসছে, তাই বাফারিং নেই (Low Latency)।

২. সার্ভার লোড ও খরচ: সব রিকোয়েস্ট আর মেইন সার্ভারে যাচ্ছে না, তাই মেইন সার্ভারের ওপর চাপ কমে এবং ব্যান্ডউইথ খরচও বেঁচে যায়।

On this page