সাধু বাবার লোড ব্যালেন্সিং

in স্কেলিং ওয়েব সার্ভার,

ওয়েব সার্ভার স্কেলিং-এ লোড ব্যালেন্সিং এর ভুমিকা কি তা নিয়ে আজকের এই পোস্ট । তবে ট্যাকনিক্যাল ব্যাখ্যার পূর্বে আগে সাধু বাবার একটি কাহিনী বুঝে নেই।

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

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

প্রত্যেকটি দরজার সামনে একজন দোকানদার থাকবেন যিনি প্রয়োজনীয় জিনিস বিক্রি করবেন।  বিভিন্ন সমস্যা সমাধানের জন্য বিভিন্ন জিনিস নিয়ে সাধু বাবার কাছে যেতে হবে যা এরা সাপ্লাই দিবে। যেমন:

১। ব্যাবসায়ীক উন্নতি, কিংবা পারিবারিক সমস্যার জন্য তাবিজ, মোমবাতি, আগরবাতি নিয়ে যেতে হবে।

২।  মানসিক সমস্যা (যেমন পাগল, ভুতে ধরা, মন বসেনা পড়ার টেবিলে, সেলফি রোগ ইত্যাদি) কিংবা শারীরিক (অসুখ-বিসুখ, কিংবা সন্তান না হওয়া) সমস্যার জন্য তেল অথবা পবিত্র পানি নিয়ে যেতে হবে।

৩। অন্যান্য সমস্যা এবং মান্নতের জন্য হাস-মুরগি কিংবা ছাগল

 

একটি দোকানে কেবল একধরনের জিনিস-ই পাওয়া যাবে । এসব দোকান থেকে জিনিস নিয়ে মানুষজন ভিতরে ঠুকবে । তবে তারা কোন দরজা দিয়ে যাবে এটা তাদের ইচ্ছা । দোকান থেকে তার প্রয়োজনীয় জিনিস কিনে কেউ অকারনেই এতদুর ঘুরে অন্য দরজা দিয়ে কেন যাবে? আর গেলেই কি সমস্যা? আইডিয়াটা হল আসলে লোড কমানো, বেশিরভাগ মানুষ স্বাভাবিক ভাবেই তার কাছের দরজা দিয়ে প্রবেশ করবে। সুতরাং একজনের উপর পুরো প্রেসারটা পড়ছে না।

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

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

একটি ওয়েবসাইট বা ওয়েব সার্ভিসকে প্রোডাকশন লেভেলে নিয়ে যাওয়ার জন্য এর নিজেরই হাজারটা চ্যালেন্জ রয়েছে। সেগুলো পার করে যখন একটা ভাল মার্কেট পেয়ে যান তখন সেটা আপনার জন্য একটা বড় পাওয়া। আপনার সিস্টেমের ব্যবহারকারী দিন দিন বাড়ছে এবং এটা দেখে আপনার খুব আনন্দ হচ্ছে, তাই না ? কিন্তু একদিন আপনার সার্ভার আর লোড নিতে পারল না, হঠাৎ করে আপনার ছোট্ট সেই LAMP সার্ভারটি ক্রাশ করল, তখন কি হবে? এটা আসলে ম্যাটার করে না যে কোন দিন কখন সার্ভার ক্রাশ করল, আপনার সার্ভার যে অফলাইন হয়ে গেল এটার ক্ষতি অপূরনীয় ।

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

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

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

বহুল ব্যবহৃত তিনটি লোড ব্যালেন্সিং মেথড হল :

  • Round Robin: এ মেথডে লোড ব্যালেন্সার সব সার্ভারে সমান ভাবে ট্রাফিক সেন্ড করে। অর্থাৎ তিনটি সার্ভার থাকলে, প্রথম রিকোয়েস্ট টি যাবে প্রথম সার্ভারে, দ্বিতীয়টি যাবে দ্বিতীয় সার্ভারে, তৃতীয়টি যাবে তৃতীয় সার্ভারে, চতুর্থটি যাবে প্রথম সার্ভারে…..।
  • Least Connect: এই মেথডের কাহিনী হল, সবচেয়ে কম একটিভ কানেকশন যে সার্ভারে আছে সে সার্ভারে ট্রাফিক সেন্ড করবে। অর্থাৎ ১নং এ ১০ জন, ২নং এ ১২জন এবং ৩ নং সার্ভারে ৮জন কানেক্টেড থাকলে পরবর্তী রিকোয়েস্ট টি ৩ নং সার্ভারকে সেন্ড করা হবে।
  • Historical Intelligence:এই মেথড টি পূর্বের দুটি মেথডকে কাজে লাগিয়ে সিদ্ধান্ত নেয় যে পরবর্তী রিকোয়েস্টটি কাকে সেন্ড করবে।

লোড ব্যালেন্সিং এর প্রকারভেদ

ওয়েব ট্রাফিক হ্যন্ডেল করার জন্য দুইধরনের লোড ব্যালেন্সার আছে:

১। সফ্টওয়্যার লোড ব্যালেন্সার
২। হার্ডওয়্যার লোডব্যালেন্সার।

সফ্টওয়্যার লোড ব্যালেন্সার আপনার সার্ভারে ইন্সটল করা অন্যান্য সফ্টওয়্যারের মতই যা ওয়েবের সব ট্রাফিক এক্সেপ্ট করে এবং বিভিন্ন সার্ভারে সেটা ডিস্ট্রিবিউট করে দেয়। জনপ্রিয় দুটি সফ্টওয়্যার লোড ব্যালেন্সার হল:Nginx এবং Squid

হার্ডওয়্যার লোড ব্যালেন্সার গুলো ওয়েব ট্রাফিক ডিস্ট্রিবিউট করার জন্য ডেডিকেটেড সিঙ্গেল মেশিন যার সাধারনত অন্য কোন ধরনের সফ্টওয়্যারের প্রয়োজন পড়ে না। সবচেয়ে জনপ্রিয় কিছু লোড ব্যালেন্সারের একটি লিস্ট পাবেন এখানে।

গুরুত্বপূর্ন প্রশ্ন

আপনার সার্ভার ক্রাশ করলে সেটা লোড ব্যালেন্সার হ্যান্ড্যেল করবে, বুঝলাম। শেষ করার আগে আমি যে প্রশ্ন রেখে যাচ্ছি সেটা হল : আপনার লোড ব্যালেন্সার ক্রাশ করলে কি করবেন? Who watches the watchmen?

পূর্ববর্তী পোস্ট   »  ভার্টিক্যাল স্কেলিং এবং হরিজন্টাল স্কেলিং


মুক্ত জ্ঞান ছড়িয়ে দিন সবার মাঝে!