মন্টু মিয়াঁর সিস্টেম ডিজাইন
লোড ব্যালেন্সার

হরেক রকম লোড ব্যালেন্সার

কোনটা ছেড়ে কোনটা নেব?

মন্টু মিয়াঁ তো লোড ব্যালেন্সার বসাবে বলে ঠিক করল। কিন্তু মার্কেটে গিয়ে (মানে গুগলে সার্চ দিয়ে) তার মাথা খারাপ! হার্ডওয়্যার, সফটওয়্যার, ক্লাউড, ডিএনএস, লেয়ার ৪, লেয়ার ৭, এত পদের লোড ব্যালেন্সার!

মনে হচ্ছে বিরিয়ানি খেতে গিয়ে মেনু কার্ড দেখে কনফিউজড হয়ে যাওয়া অবস্থা। কোনটা তার বিড়ালটিউবের জন্য পারফেক্ট? মন্টু মিয়াঁ তার স্বভাবসুলভ ভঙ্গিতে বিষয়গুলোকে সহজ করে নোট করে ফেলল:

হার্ডওয়্যার vs সফটওয়্যার vs ক্লাউড

টাকা বনাম প্যারা

  • হার্ডওয়্যার লোড ব্যালেন্সার: এগুলো হলো ডেডিকেটেড ফিজিক্যাল মেশিন। অনেকটা নিজের বাড়িতে জেনারেটর বসানোর মতো। এগুলো দারুণ ফাস্ট, কিন্তু প্রচুর দাম। গুগল-ফেসবুকের মতো "বড়লোকি কোম্পানি" ছাড়া এগুলো কেউ কেনে না। মন্টু এটা প্রথমেই বাদ দিল।

  • সফটওয়্যার লোড ব্যালেন্সার: এটা হলো সাধারণ কম্পিউটারে ইন্সটল করা একটা সফটওয়্যার (যেমন Nginx বা HAProxy)। খরচ কম, ফ্লেক্সিবল। কিন্তু ট্রাফিক বাড়লে সেই কম্পিউটার আপগ্রেড করার বা রক্ষণাবেক্ষণের একটা 'প্যারা' আছে।

  • ক্লাউড লোড ব্যালেন্সার (AWS/Cloudflare): এটা হলো মন্টুর মতো স্টার্টআপদের জন্য আশীর্বাদ। অনেকটা 'উবার'-এর মতো। গাড়ি কেনার দরকার নেই, অ্যাপে কল করো, চড়ে বসো। অ্যামাজন বা ক্লাউডফ্লেয়ার সব ম্যানেজ করবে, মন্টু শুধু মাসিক ভাড়া দেবে। সেটআপ সহজ, প্যারা কম। মন্টু মনে মনে এটাতেই টিক চিহ্ন দিল।

DNS লোড ব্যালেন্সিং

ফোনবুকের কারসাজি

আমরা যখন মোবাইলে কাউকে কল দিই, আমরা নাম সিলেক্ট করি, কিন্তু ফোন কল যায় নাম্বারে। DNS-ও তাই করে, biraltube.com লিখলে সে একটা আইপি অ্যাড্রেস বা সার্ভারের ঠিকানা দেয়।

DNS লোড ব্যালেন্সিং-এ আমরা একটা নামের বিপরীতে একাধিক আইপি সেট করে দিতে পারি। — ইউজার ১ যখন সাইটে ঢুকবে, DNS তাকে সার্ভার-১ এর ঠিকানা দেবে। — ইউজার ২ যখন ঢুকবে, তাকে সার্ভার-২ এর ঠিকানা দেবে।

এতে কোনো এক্সট্রা হার্ডওয়্যার লাগে না, একদম সস্তা। কিন্তু সমস্যা হলো, DNS বোকা। সে জানে না সার্ভার ১ নষ্ট হয়ে গেছে কিনা। সে অন্ধের মতো নষ্ট সার্ভারেও ইউজার পাঠাতে পারে। তাই মন্টু বুঝল, শুধু এটার ওপর ভরসা করা যাবে না।

লেয়ার ৪ vs লেয়ার ৭

কুরিয়ার বয় বনাম অ্যাসিস্ট্যান্ট

মন্টু দেখল লোড ব্যালেন্সার প্রধানত দুই লেভেলের হয়, লেয়ার ৪ এবং লেয়ার ৭। ভার্সিটির OSI মডেলের কথা মনে পড়ে গেল তার। কিন্তু ওসব জটিল থিওরি বাদ দিয়ে সে প্র্যাকটিক্যাল বুঝল:

লেয়ার ৪ লোড ব্যালেন্সার (দ্য ফাস্ট কুরিয়ার বয়): ধরুন, একজন কুরিয়ার ডেলিভারি ম্যান আপনার জন্য একটা প্যাকেট এনেছে। সে শুধু প্যাকেটের ওপরের ঠিকানা (IP Address & Port) দেখবে এবং সঠিক দরজায় পৌঁছে দেবে। প্যাকেটের ভেতরে কী আছে, চিঠি নাকি বোমা, তা দেখার সময় বা অনুমতি তার নেই।

  • সুবিধা: খুব ফাস্ট। প্যাকেট খোলে না তাই সময় নষ্ট হয় না।
  • অসুবিধা: ভেতরে কী আছে জানে না বলে স্মার্ট সিদ্ধান্ত নিতে পারে না। (যেমন: ভিডিও রিকোয়েস্ট ফাস্ট সার্ভারে আর চ্যাট রিকোয়েস্ট স্লো সার্ভারে পাঠানো, এটা সে পারে না)।

লেয়ার ৭ লোড ব্যালেন্সার (দ্য স্মার্ট পার্সোনাল অ্যাসিস্ট্যান্ট): এরা হলো অফিসের পিএ (PA)-এর মতো। চিঠি আসলে তারা খাম খোলে, চিঠিটা পড়ে (Content/URL/Cookie দেখে)। যদি দেখে চিঠিতে লেখা "ভিডিও দেখব", তবে সে ভিডিও সার্ভারের কাছে পাঠায়। যদি দেখে লেখা "টাকা পেমেন্ট করব", তবে সে সিকিউর পেমেন্ট সার্ভারের কাছে পাঠায়।

  • সুবিধা: অনেক বুদ্ধিমান। ইউজার কী চায় তা বুঝে সার্ভার সিলেক্ট করতে পারে।
  • অসুবিধা: খাম খুলতে ও পড়তে সময় লাগে বলে লেয়ার ৪-এর চেয়ে একটু স্লো।

Layer 4 vs Layer 7

মন্টু মিয়াঁ সিদ্ধান্ত নিল, বিড়ালটিউবের ইউজারদের সেরা অভিজ্ঞতা দিতে হলে তার একটু স্লো হলেও 'স্মার্ট অ্যাসিস্ট্যান্ট' (লেয়ার ৭)-ই দরকার।

On this page