সরাসরি প্রধান সামগ্রীতে চলে যান

মাইক্রোসার্ভিস আর্কিটেকচার: মনোলিথিক থেকে আধুনিক পদ্ধতিতে রূপান্তর

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]

মাইক্রোসার্ভিস বানানো সহজ হলেও এদেরকে একে অপরের সাথে কানেক্ট করা চ্যালেঞ্জিং। ভিডিওতে নিচের গুরুত্বপূর্ণ বিষয়গুলো উল্লেখ করা হয়েছে:

  1. Service Registry (সার্ভিস রেজিস্ট্রি): যখন অনেকগুলো সার্ভিস থাকে, তখন কে কোথায় আছে তা জানার জন্য একটি ফোনবুকের মতো সিস্টেম লাগে। একেই বলে সার্ভিস রেজিস্ট্রি।

  2. API Gateway (এপিআই গেটওয়ে): এটি একটি দরজার মতো। ক্লায়েন্ট বা ইউজার সরাসরি সার্ভিসে না গিয়ে প্রথমে এই গেটওয়েতে আসে, তারপর গেটওয়ে ঠিক করে দেয় কোন সার্ভিসে যেতে হবে।

  3. Load Balancer (লোড ব্যালেন্সার): যদি একটি সার্ভিসের অনেকগুলো কপি থাকে, তবে কার কাছে রিকোয়েস্ট পাঠালে কাজ দ্রুত হবে তা এটি ঠিক করে।

  4. 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)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...