System Design শেখো
শেখো / মৌলিক ধারণা

Scalability (স্কেলেবিলিটি)

7 মিনিট Module 1 · Fundamentals
এক নজরে
  • Scalability মানে — চাপ (load) বাড়লেও system যেন resource যোগ করে সেই চাপ সামলাতে পারে।
  • দুইভাবে scale করা যায় — Vertical (একটা মেশিন বড় করা) আর Horizontal (অনেক মেশিন যোগ করা)।
  • বড় system প্রায় সবসময় Horizontal scaling বেছে নেয়।

সমস্যাটা কী?

তোমার অ্যাপে আজ ১,০০০ জন ব্যবহারকারী। এক মাস পর হলো ১০ লক্ষ। একই server দিয়ে কি চলবে?

না। চাপ বাড়লে system ধীর হয়ে যায়, এমনকি বন্ধ হয়ে যায়। এই বাড়তি চাপ সামলানোর ক্ষমতার নামই Scalability

Scalability হলো একটা system-এর সেই গুণ, যার ফলে resource (server, CPU, RAM) যোগ করে সে বাড়তে থাকা load সামলাতে পারে।

দুইভাবে scale করা যায়

১. Vertical Scaling (Scale Up) — মেশিন বড় করা

একই server-এ আরও বেশি RAM, দ্রুত CPU বসিয়ে দাও।

  • ✅ সহজ — কোড বদলাতে হয় না।
  • ❌ একটা সীমা আছে — অসীম শক্তিশালী মেশিন বানানো যায় না।
  • ❌ সেই একটা মেশিন নষ্ট হলে পুরো system ডাউন (single point of failure)।
সহজ উদাহরণ

Vertical scaling = একটা রিকশায় আরও জোরে প্যাডেল মারা। একসময় আর পারবে না।

২. Horizontal Scaling (Scale Out) — মেশিন যোগ করা

একটা বড় মেশিনের বদলে অনেকগুলো সাধারণ মেশিন যোগ করো।

  • ✅ প্রায় সীমাহীন — যত দরকার তত যোগ করো।
  • ✅ একটা নষ্ট হলেও বাকিরা চালু থাকে।
  • ❌ একটু জটিল — request কোন মেশিনে যাবে সেটা সামলাতে load balancer লাগে।
সহজ উদাহরণ

Horizontal scaling = একটা রিকশার বদলে ১০টা রিকশা নামানো। অনেক বেশি যাত্রী টানা যায়।

নিজে দেখো

নিচের টুলে দেখো একাধিক server-এর মধ্যে কীভাবে চাপ ভাগ হয় (এটাই horizontal scaling-এর মূল কথা)। একটা server বন্ধ করে দিলেও বাকিরা চালু থাকে:

টুল লোড হচ্ছে…

কখন কোনটা?

VerticalHorizontal
সহজতাসহজএকটু জটিল
সীমামেশিনের সীমা পর্যন্তপ্রায় সীমাহীন
ফল্ট সহনশীলতাদুর্বল (১টা মেশিন)শক্তিশালী (অনেক মেশিন)
খরচঅল্প পরিসরে কমবড় পরিসরে কার্যকর
টিপস

শুরুতে অনেক startup vertical scaling দিয়েই চালায় (কারণ সহজ)। কিন্তু সত্যিকারের বড় system — Facebook, Google, Netflix — সবাই horizontal scaling ব্যবহার করে। ইন্টারভিউতে "scale this up" বললে সাধারণত horizontal scaling-ই প্রত্যাশিত উত্তর।

বাস্তব উদাহরণ

Netflix কোটি কোটি মানুষকে একসাথে ভিডিও দেখায় — একটা দানবীয় মেশিন দিয়ে নয়, বরং হাজার হাজার সাধারণ server মিলে (horizontal scaling) + ট্রাফিক ভাগ করার জন্য load balancer। কোনো একটা server নষ্ট হলে তুমি টেরও পাও না।

মূল শব্দ (Key Terms)

মিনি কুইজ

1. Horizontal scaling মানে কী?

2. Vertical scaling-এর প্রধান সীমাবদ্ধতা কী?