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

গেদু ভাইয়ের ঝামেলা :
১। নাতি-নাতনীরা একেক স্কুলে পড়ে তাই তাদের গন্ত্যব্যও একেক দিকে । এক জনকে পৌছে দেয়ার জন্য অঝথাই বাকিদের বসিয়ে রাখতে হয় । একইভাবে তার নিজের ছেলেদেরও অফিসে পৌছে দিতে অনেক সময় লাগে ।
২। একেক জনের প্রয়োজন একেক সময় হওয়া সত্বেও সবাইকে এক সাথে বাসা থেকে বের হতে হয় এবং তারা কেউই এত সময় গাড়িতে বসে থাকতে চায় না ।
৩। সবাইকে পৌছে দিয়ে আসতে তার নিজেরই অনেক সময় চলে যায় । আবার যেহেতু একেকজনের ছুটি একেক সময় তাই নিজের কাজ ফেলে ওদের প্রত্যেককে আলাদা আলাদা সময়ে বাসায় নিয়ে আসতে হয়।
৪। রাস্তায় অনেক জ্যাম থাকায় নির্দিষ্ট সময়ে নির্দিষ্ট গন্তব্যে পৌছানো সম্ভব হয় না, আবার বাস থেকে যাত্রী নামিয়ে দিয়ে তার পরিবারের সদস্যদের সময় মত আনতে যাওয়া সব সময় সম্ভব হয় না।
৫। মাঝে মাঝে কোন কোন সদস্যদের নির্দিষ্ট সময়ের আগেই ছুটি হয়ে যায়, তখন তাদেরকে অযথাই অপেক্ষা করতে হয় ।
গেদু ভাইয়ের আইডিয়া :
এ সমস্যাগুলো সমাধানের জন্য তিনি আইন্সটাইনের মত করে অনেক গভেষনা করেন এবং একদিন হঠাৎ করে আমাদের হাবলু মার্কা গেদু ভাইয়ের মাথায় একটা আইডিয়া আসে । উনি একটু হিসাব নিকাশ করে দেখেন যে একটি বাসে সবাইকে না নিয়ে বরং প্রত্যেকটি গন্তব্যের জন্য আলাদা আলাদা প্রাইভেট কারের ব্যবস্থা করতে পারলেই তার সব সমস্যার সমাধান হয়ে যায় । গেদু ভাইয়ের হিসেবটা ছিল অনেকটা এরকম :

একটি বাসে করে চারটি গন্তব্যে মেম্বারদেরকে নামিয়ে দিতে তার সর্বমোট ২৮ কিলোমিটার রাস্তা পাড়ি দিতে হয় । যেহেতু ২নং থেকে ৩নং গন্ত্যব্যে ১৫ মিনিটে এবং ৩নং থেকে ৪নং গন্ত্যব্যে ৩০ মিনিটে পৌছাতে পারবে না, সেজন্য অনেক সময় হাতে নিয়েই প্রথম গন্তব্যের জন্য রওনা দিতে হয় । তাই ১ নং গন্তব্যে যে যায় সে নির্দিষ্ট সময়ের অনেক আগেই চলে যায় এবং সে আগে যেয়ে একা একা বসে থাকতেও চায় না।
এবার চারটি ভিন্ন গাড়ির ক্যালকুলেশন দেখা যাক :

এক্ষেত্রে দেখা যায়, ভিজিট পাথ প্রায় অর্ধেক । তদুপরি প্রত্যেকের আলাদা গাড়ি থাকায় কারো জন্য কাউকে অপেক্ষা করার দরকার পড়ছেনা । যে যার যার সময় মত গন্তব্যের দিকে রওনা হয় এবং ফিরে আসে ।
গেদু ভাইয়ের দু:খ
সবাইকে এক সাথে নিয়ে চলার সখ থাকলেও গেদু ভাই বুকে চাপা কষ্ট নিয়ে শেষ পর্যন্ত সবার জন্য আলাদা গাড়ি রাখার সিদ্ধান্ত নিলেন এবং ভার্টিক্যাল স্কেলিং থেকে হরিজন্টাল স্কেলিং এ শিফ্ট করলেন ।
ভার্টিক্যাল স্কেলিং এবং হরিজন্টাল স্কেলিং কি ?
এক কথায়, সার্ভারে যদি বেশি র্যাম এর প্রয়োজন হয় এবং আপনি যদি VPS সার্ভারকে Dedicated সার্ভারে আপগ্রেড করে অর্থাৎ একটি বড় সিস্টেম নেন তাহলে সেটা হল ভার্টিক্যাল স্কেলিং । ফ্যামিলিতে মেম্বার বাড়লে প্রাইভেট কার বেচে বাস কিনা আর পুরোনো সার্ভার ফেলে নতুন সার্ভারে আপগ্রেড হওয়া দুইটাই ভার্টিক্যাল স্কেলিং। আর আপনি যদি শুধু মাত্র প্রয়োজনীয় কম্পোনেন্ট যুক্ত করেন তবে সেটা হরিজন্টাল স্কেলিং। Scalability in Wikipedia
গেদু ভাইয়ের বকবকের কি দরকার ছিল ?
গতানুগতিক সার্ভাররে জন্য আমরা সাধারনত ভার্টিক্যাল স্কেলিং নিয়েই ব্যাস্ত । সার্ভার লোড নিচ্ছে না? ও ! তাহলে একটা VPS বা ডেডিকেটেড সার্ভার নাও । তাও হচ্ছে না ? সবচেয়ে প্রিমিয়ামটা নাও । অনেকটা গেদু ভাইয়ের মত। আমরা কেউই রিয়েল লাইফে গেদু ভাইয়ের মত বাস কিনে ফ্যামিলি নিয়ে ঘুরে বেড়াই না কিন্তু সার্ভার স্কেলিং এর বেলায় আমরা এ জিনিস টা খেয়ালই করিনা । আমার সার্ভারে যদি কেবল একটি নির্দিষ্ট মডিউলের জন্য স্টোরেজ বাড়ানোর দরকার পড়ে তাহলে আমাকে কেন পুরো সিস্টেমটা Dedicated সার্ভারে আপগ্রেড করতে হবে ? সার্ভার নিজের বানানো হলে, কেন আমাকে পুরোনো পিসি ফেলে দিয়ে নতুন মাদারবোর্ড, নতুন প্রসেসর, নতুন ডিস্ক নিয়ে আরেকটি বড় নতুন সার্ভার সেটাপ করতে হবে?
প্রশ্নোত্তর
১) অনেকের হয়তো প্রশ্ন আসতে পারে যে গেদু ভাইয়ের ফ্যামিলি মেম্বার-রা অন্য কোন পরিবহনে গেলেই তো পারে । হ্যা তা পারে ! তবে আপনি নিশ্চই চাইবেন না যে আপনার কাস্টমার আপনার সার্ভিসে অসন্তুষ্ট হয়ে কিংবা আপনার ব্যর্থতার কারনে অন্য কারো সার্ভিস ব্যবহার করুক । আপনার সিস্টেমের ব্যবহারকারী আপনার পরিবার এবং তাদের কে তাদের সময়ে প্রয়োজন অনুযায়ী সার্ভিস দিতে পারলেই কেবল আপনি সাকসেস হতে পারবেন । তবে হ্যা ! আপনি নিজে যদি অন্য কোন পরিবহন সার্ভিস ভাড়া করে আপনার ফ্যামিলিকে বা ব্যবহারকারীকে সার্ভিসটি দেন তবে সেটা হরিজন্টাল স্কেলিং । যেমন ফাইল স্টোরেজের জন্য Azure Storage বা Amazon S3 ব্যবহার করা ।
২) কিংবা কেউ ভাবতে পারে চারটি গাড়ির জন্য তো চারটি আলাদা ড্রাইভার লাগবে এবং প্রতেকটি গাড়ির আলাদা মেইন্টেইনার এবং কিছু বাড়তি খরচও থাকতে পারে । উত্তর হল : Time is money ! সবাই বাসে বসে, কিংবা বাসের জন্য অপেক্ষা করে অঝথাই সময় করছে । সময় মত পৌছাতে না পারলে হয়তে ছেলের চাকরি থাকবে না, কিংবা নাতি-নাতনির পরীক্ষা দেয়া হবে না । আপনার প্রশ্নের উত্তরে আমি বলব : The faster you deliver you service with efficiency the faster you earn money. আপনিই চিন্তা করে বলুন গুগলে সার্চ দেয়ার ১ঘন্টা পর যদি রেজাল্ট আসত এবং অন্য সার্চ এন্জিন যদি তা ১ মিনিটে করতে পারত তবে আপনি কোনটা ব্যবহার করতেন ? আসলে মুল বিষয়টা টাকার নয়, সার্ভিস ইফিসিয়েন্সির উপর ।
সার্ভার স্কেলিং এর শুরুতে আপনাকে স্বাগতম
এবার সার্ভার স্কেলিং এর মুল পর্বে আসা যাক। পরবর্তী পোস্ট এ ভার্টিক্যাল স্কেলিং এবং হরিজন্টাল স্কেলিং নিয়ে বিস্তারিত আলোচনা করব । ভালো লাগলে শেয়ার করতে কিংবা আপনার মন্তব্য জানাতে ভুলবে না !
WOW……………….Awesome Reading
I am glad to here that 🙂
Simply Awesome!! জয় হো মিস্টার গেদু মিয়া…
পড়ে ভাল লাগলো। আশা করি শিক্ষা বোর্ড এর কেউ এটি পড়বে। ☺
Well written. Looking forward to learn more from your blog. Keep up the writing. 🙂
Thank you @Ahmed Shamim vai
Like Apikothon Facebook Page and get the updates
mone holo aber class one porasuna suru korlam (: ekdom pure . sohoj vabe bujano kake bole !!!! ekhane aslei buja jabe (:
thanks for inspiring me ! Please feel free to share what you think 🙂
good to read, thanks brother.. 🙂
Nice post and awesome story telling. Had no idea about scaling web server, but now eagerly waiting for the next post. 🙂
Good learning with entertain , thanks 🙂
just to let you know I finished reading all of your posts, and that too without any break!
keep writing good stuff and don’t get lazy :v
btw, (this)[http://apikothon.com/contact-me this isn’t working] email thing isn’t working
I am very much excited to hear that ! thank you 🙂
anyway, my email address is ikrum.bd@gmail.com
Nice theory .Thanks a lot…As a new comer in web …it was easy to understand the theme… 🙂
Good job 👍