Load Balancing Intro
লোড ব্যালেন্সিং কি ?
একটি ওয়েবসাইট বা ওয়েব সার্ভিসকে প্রোডাকশন লেভেলে নিয়ে যাওয়ার জন্য এর নিজেরই হাজারটা চ্যালেন্জ রয়েছে। সেগুলো পার করে যখন একটা ভাল মার্কেট পেয়ে যান তখন সেটা আপনার জন্য একটা বড় পাওয়া। আপনার সিস্টেমের ব্যবহারকারী দিন দিন বাড়ছে এবং এটা দেখে আপনার খুব আনন্দ হচ্ছে, তাই না ? কিন্তু একদিন আপনার সার্ভার আর লোড নিতে পারল না, হঠাৎ করে আপনার ছোট্ট সেই LAMP সার্ভারটি ক্রাশ করল, তখন কি হবে? এটা আসলে ম্যাটার করে না যে কোন দিন কখন সার্ভার ক্রাশ করল, আপনার সার্ভার যে অফলাইন হয়ে গেল এটার ক্ষতি অপূরনীয় ।
হরিজন্টাল স্কেলিং এর সবচেয়ে সোজাসাপ্টা একটি মেথড হল লোড ব্যালেন্সিং। আপনার এ্যাপ্লিকেশন সার্ভারে চাপ বাড়ছে ? একটি নতুন সার্ভার যোগ করে যোগ করে দিন, সাথে সাথে লোড ব্যালেন্সার সেই সার্ভারে ট্রাফিক পাঠানো শুরু করে দিবে।
ইনকামিং ট্রাফিক বিভিন্ন মেশিনে ডিস্ট্রিবিউট করাই লোড ব্যালেন্সারের কাজ। শুধু তাই নয় কাকে কোন সার্ভারে পাঠানো হয়েছিল, সেটাও সে মনে রাখে যাতে কেউ যদি সার্ভার A তে লগিন করে তবে পরবর্তী সময়ে তাকে সেই সার্ভারে পাঠাতে পারে। কোন কারনে একটি সার্ভার ডাউন হলে লোড ব্যালেন্সার ব্যাবহারকারীকে অন্য লাইভ সার্ভারে পাঠিয়ে দেয়। তাই আপনার একটি সার্ভার ডাউন হওয়া সত্বেও লোড ব্যালেন্সিং এর বদৌলতে ব্যবহারকারী নিরবিচ্ছিন্নভাবে আপনার সিস্টেমের সাথে কানেক্টেড থাকতে পারছে।
ইনকামিং ট্রাফিক বিভিন্ন মেশিনে ডিস্ট্রিবিউট করাই লোড ব্যালেন্সারের কাজ। শুধু তাই নয় কাকে কোন সার্ভারে পাঠানো হয়েছিল, সেটাও সে মনে রাখে যাতে কেউ যদি সার্ভার A তে লগিন করে তবে পরবর্তী সময়ে তাকে সেই সার্ভারে পাঠাতে পারে। কোন কারনে একটি সার্ভার ডাউন হলে লোড ব্যালেন্সার ব্যাবহারকারীকে অন্য লাইভ সার্ভারে পাঠিয়ে দেয়। তাই আপনার একটি সার্ভার ডাউন হওয়া সত্বেও লোড ব্যালেন্সিং এর বদৌলতে ব্যবহারকারী নিরবিচ্ছিন্নভাবে আপনার সিস্টেমের সাথে কানেক্টেড থাকতে পারছে।
লোড ব্যালেন্সিং
লোড ব্যালেন্সিং মেথড
বহুল ব্যবহৃত তিনটি লোড ব্যালেন্সিং মেথড হল :
-
Round Robin: এ মেথডে লোড ব্যালেন্সার সব সার্ভারে সমান ভাবে ট্রাফিক সেন্ড করে। অর্থাৎ তিনটি সার্ভার থাকলে, প্রথম রিকোয়েস্ট টি যাবে প্রথম সার্ভারে, দ্বিতীয়টি যাবে দ্বিতীয় সার্ভারে, তৃতীয়টি যাবে তৃতীয় সার্ভারে, চতুর্থটি যাবে প্রথম সার্ভারে…..।
-
Least Connect: এই মেথডের কাহিনী হল, সবচেয়ে কম একটিভ কানেকশন যে সার্ভারে আছে সে সার্ভারে ট্রাফিক সেন্ড করবে। অর্থাৎ ১নং এ ১০ জন, ২নং এ ১২জন এবং ৩ নং সার্ভারে ৮জন কানেক্টেড থাকলে পরবর্তী রিকোয়েস্ট টি ৩ নং সার্ভারকে সেন্ড করা হবে।
-
Historical Intelligence:এই মেথড টি পূর্বের দুটি মেথডকে কাজে লাগিয়ে সিদ্ধান্ত নেয় যে পরবর্তী রিকোয়েস্টটি কাকে সেন্ড করবে।
লোড ব্যালেন্সিং এর প্রকারভেদ
ওয়েব ট্রাফিক হ্যন্ডেল করার জন্য দুইধরনের লোড ব্যালেন্সার আছে:
১। সফ্টওয়্যার লোড ব্যালেন্সার
২। হার্ডওয়্যার লোডব্যালেন্সার।
২। হার্ডওয়্যার লোডব্যালেন্সার।
সফ্টওয়্যার লোড ব্যালেন্সার আপনার সার্ভারে ইন্সটল করা অন্যান্য সফ্টওয়্যারের মতই যা ওয়েবের সব ট্রাফিক এক্সেপ্ট করে এবং বিভিন্ন সার্ভারে সেটা ডিস্ট্রিবিউট করে দেয়। জনপ্রিয় দুটি সফ্টওয়্যার লোড ব্যালেন্সার হল:Nginx এবং Squid
হার্ডওয়্যার লোড ব্যালেন্সার গুলো ওয়েব ট্রাফিক ডিস্ট্রিবিউট করার জন্য ডেডিকেটেড সিঙ্গেল মেশিন যার সাধারনত অন্য কোন ধরনের সফ্টওয়্যারের প্রয়োজন পড়ে না। সবচেয়ে জনপ্রিয় কিছু লোড ব্যালেন্সারের একটি লিস্ট পাবেন here =>> https://www.serverwatch.com/guides/load-balancing-software
গুরুত্বপূর্ন প্রশ্ন
আপনার সার্ভার ক্রাশ করলে সেটা লোড ব্যালেন্সার হ্যান্ড্যেল করবে, বুঝলাম। শেষ করার আগে আমি যে প্রশ্ন রেখে যাচ্ছি সেটা হল : আপনার লোড ব্যালেন্সার ক্রাশ করলে কি করবেন? Who watches the watchmen?
