Introduction
এই ভিডিওটিতে মূলত একটি প্রোজেক্টকে কীভাবে Monolithic (মনোলিথিক) থেকে Microservices (মাইক্রোসার্ভিস) আর্কিটেকচারে নিয়ে যাওয়া যায়, তার একটি প্রাথমিক ধারণা দেওয়া হয়েছে। আমরা শিখব কেন বড় বড় কোম্পানিগুলো তাদের বড় অ্যাপ্লিকেশনগুলোকে ছোট ছোট ভাগে ভাগ করে ফেলে এবং এই ছোট ভাগগুলো একে অপরের সাথে কীভাবে কথা বলে। সহজ কথায়, এটি একটি বিশাল সফটওয়্যারকে অনেকগুলো স্বাধীন ছোট সফটওয়্যারে রূপান্তর করার গল্প।
১. মনোলিথিক বনাম মাইক্রোসার্ভিস (Monolithic vs Microservices)
ভিডিও রেফারেন্স: [00:00] - [01:54]
এখানে লেখক একটি Quiz Application-এর উদাহরণ দিয়েছেন। যখন একটি অ্যাপ্লিকেশনের সব কোড, যেমন—প্রশ্ন তৈরি করা, কুইজ নেওয়া, ইউজার ম্যানেজমেন্ট এবং পেমেন্ট—সবকিছু একটা বড় প্যাকেজের ভেতর থাকে, তখন তাকে Monolithic Application বলে।
আমার চিন্তাভাবনা: ভাবুন একটি বড় রেস্টুরেন্টের কথা। যেখানে একজনই রাঁধুনী, সেই আবার অর্ডার নেয়, সেই আবার টেবিল পরিষ্কার করে। যদি অনেক কাস্টমার চলে আসে, তবে ওই একজন লোক হিমশিম খাবে। এটা হলো মনোলিথিক। আর মাইক্রোসার্ভিস হলো এমন যেখানে রান্নার জন্য আলাদা লোক, অর্ডার নেওয়ার জন্য আলাদা এবং পরিষ্কার করার জন্য আলাদা লোক থাকে। তারা সবাই স্বাধীন কিন্তু একে অপরের সাথে যোগাযোগ করে কাজটা শেষ করে।
-
Monolithic (মনোলিথিক): সব ফিচার এক জায়গায় থাকে। একটা ছোট পরিবর্তন করতে হলেও পুরো সিস্টেম নতুন করে চালু করতে হয়।
-
Microservices (মাইক্রোসার্ভিস): প্রতিটি ফিচার (যেমন: কুইজ বা পেমেন্ট) আলাদা আলাদা ছোট অ্যাপ্লিকেশন হিসেবে কাজ করে।
২. কেন আমরা মাইক্রোসার্ভিস ব্যবহার করব?
ভিডিও রেফারেন্স: [02:42] - [06:43]
ভিডিওতে বলা হয়েছে যে, মাইক্রোসার্ভিসে প্রতিটি সার্ভিসের নিজস্ব Database (ডেটাবেস) থাকে। যেমন, 'Question Service' শুধু প্রশ্নের ডেটা রাখবে এবং 'Quiz Service' শুধু কুইজের ডেটা রাখবে।
সহজ ব্যাখ্যা:
-
Independent Scaling (ইন্ডিপেন্ডেন্ট স্কেলিং): ধরুন আপনার কুইজ অ্যাপে হঠাৎ অনেক মানুষ কুইজ দিচ্ছে, কিন্তু কেউ নতুন প্রশ্ন যোগ করছে না। মাইক্রোসার্ভিসে আপনি শুধু 'Quiz Service'-এর ক্ষমতা বাড়িয়ে দিতে পারবেন, পুরো অ্যাপের নয়। এতে খরচ বাঁচে।
-
Decoupling (ডিকাপলিং): সার্ভিসগুলো একে অপরের ওপর সরাসরি নির্ভরশীল থাকে না। তারা নেটওয়ার্কের মাধ্যমে একে অপরের সাথে কথা বলে।
শব্দার্থ:
-
Scaling (স্কেলিং): কোনো অ্যাপ্লিকেশনে ব্যবহারকারী বেড়ে গেলে তার ধারণক্ষমতা বাড়ানো।
-
Decoupled (ডিকাপলড): একটার সাথে অন্যটার সরাসরি শক্ত কোনো বাঁধন না থাকা, যাতে একটা নষ্ট হলে অন্যটা চলতে পারে।
৩. মাইক্রোসার্ভিসের প্রয়োজনীয় উপাদানসমূহ
ভিডিও রেফারেন্স: [07:07] - [08:58]
মাইক্রোসার্ভিস বানানো সহজ হলেও এদেরকে একে অপরের সাথে কানেক্ট করা চ্যালেঞ্জিং। ভিডিওতে নিচের গুরুত্বপূর্ণ বিষয়গুলো উল্লেখ করা হয়েছে:
-
Service Registry (সার্ভিস রেজিস্ট্রি): যখন অনেকগুলো সার্ভিস থাকে, তখন কে কোথায় আছে তা জানার জন্য একটি ফোনবুকের মতো সিস্টেম লাগে। একেই বলে সার্ভিস রেজিস্ট্রি।
-
API Gateway (এপিআই গেটওয়ে): এটি একটি দরজার মতো। ক্লায়েন্ট বা ইউজার সরাসরি সার্ভিসে না গিয়ে প্রথমে এই গেটওয়েতে আসে, তারপর গেটওয়ে ঠিক করে দেয় কোন সার্ভিসে যেতে হবে।
-
Load Balancer (লোড ব্যালেন্সার): যদি একটি সার্ভিসের অনেকগুলো কপি থাকে, তবে কার কাছে রিকোয়েস্ট পাঠালে কাজ দ্রুত হবে তা এটি ঠিক করে।
-
Circuit Breaker (সার্কিট ব্রেকার): যদি কোনো একটি সার্ভিস ডাউন হয়ে যায়, তবে পুরো সিস্টেম যাতে ক্র্যাশ না করে এবং ইউজারকে একটি সুন্দর এরর মেসেজ (Fallback) দেখানো যায়, তা এটি নিশ্চিত করে।
৪. অ্যানালাইসিস এবং লেখকের চিন্তাভাবনা
ভিডিওর শেষে ক্রিয়েটর বোঝাতে চেয়েছেন যে, মাইক্রোসার্ভিস মানে শুধু কোড আলাদা করা নয়, বরং এটি একটি বড় সিস্টেমকে স্মার্টলি ম্যানেজ করার পদ্ধতি।
বাস্তব প্রেক্ষাপট ও পরামর্শ:
-
কখন ব্যবহার করবেন: আপনার প্রোজেক্ট যদি ছোট হয়, তবে মাইক্রোসার্ভিস ব্যবহার না করাই ভালো। কারণ এটি সিস্টেমকে জটিল করে তোলে। কিন্তু যখন ইউজার কয়েক লাখ ছাড়িয়ে যায়, তখন মাইক্রোসার্ভিস ছাড়া উপায় নেই।
-
বিকল্প: শুরুতে Modular Monolith (মনোলিথিকের ভেতরেই মডিউল আলাদা করা) দিয়ে শুরু করা যায়, পরে প্রয়োজন বুঝে মাইক্রোসার্ভিসে যাওয়া ভালো।
-
পরামর্শ: যারা বিগিনার, তারা আগে জাভা স্প্রিং বুট (Spring Boot) দিয়ে ছোট ছোট প্রোজেক্ট করুন, তারপর সার্ভিস রেজিস্ট্রি (Eureka) বা এপিআই গেটওয়ে শেখা শুরু করুন।
উপসংহার: ভিডিওটি মূলত একটি রোডম্যাপ। পরবর্তী ভিডিওগুলোতে কীভাবে হাতে কলমে কোড করে এই সার্ভিসগুলো আলাদা করা যায় এবং একে অপরের সাথে কানেক্ট করা যায় (যেমন: Question Service এবং Quiz Service), তা দেখানো হবে।
রেফারেন্স: এই সম্পূর্ণ তথ্যটি ইউটিউব চ্যানেল "Telusko"-এর 'Building Microservices Introduction' ভিডিও থেকে নেওয়া হয়েছে। ভিডিও লিংক
[
Building Microservices Introduction
Telusko · 66K views
](http://www.youtube.com/watch?v=cNU5vlbq7k4)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d