বাংলায় শিখুন

এক কাপ চা, এক ধাপ সিস্টেম ডিজাইন।

বড় বড় কোম্পানি যেমন Facebook, YouTube, Uber কীভাবে কোটি কোটি মানুষকে একসাথে সেবা দেয়? এই প্রশ্নের উত্তর খুঁজতে গেলে উঠে আসে সিস্টেম ডিজাইন কনসেপ্টের। আমরা সিস্টেম ডিজাইনের প্রতিটি কনসেপ্ট সহজ বাংলায়, ধাপে ধাপে শিখব।

এক কাপ চা, এক ধাপ সিস্টেম ডিজাইন
এক কাপ চা, এক ধাপ সিস্টেম ডিজাইন

সিস্টেম ডিজাইন আসলে কী?

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

সিস্টেম ডিজাইন ঠিক এই কাজটাই করে, তবে সফটওয়্যারের জন্য। যখন আমরা একটা অ্যাপ বা ওয়েবসাইট বানাই যা লক্ষ লক্ষ মানুষ ব্যবহার করবে, তখন আমাদের সিদ্ধান্ত নিতে হয়ঃ

কোথায় ডেটা রাখব? কীভাবে কুইক রেসপন্স দেব? সার্ভার একটা থাকলে যথেষ্ট, নাকি অনেকগুলো? একটা সার্ভার বন্ধ হয়ে গেলে কী হবে? এই সব প্রশ্নের উত্তর খোঁজাই হলো সিস্টেম ডিজাইন।

সিস্টেম ডিজাইন কোনো ম্যাজিক না। এটা অনেকগুলো ছোট ছোট বাস্তবসম্মত ডিসিশনের সমন্বয়, যেগুলো একসাথে মিলেই একটা বড় সিস্টেম দাড় করানো হয়।

The 5 Pillars

যেকোনো সিস্টেম ডিজাইন করার সময় এই পাঁচটি বিষয় মাথায় রাখতে হয়।

Scalability

User যখন 100 থেকে 10 million হয়ে যাবে, তখনো কি system টা কাজ করবে?

Performance

একটা request এর response দিতে system কতটুকু সময় নেয়?

Reliability

কিছু ভচকায় গেলেও কি system টা up থাকে?

Consistency

সবাই কি সবসময় একই data দেখে?

Maintainability

ভবিষ্যতে অন্য কেউ কি এই system টা বুঝে change করতে পারবে?

একটা কথা সমসময় মাথায় রাখবেনঃ

"Smart People Rarely Create Mess."