API management
মাইক্রোসার্ভিস এর সাথে এর ক্লায়েন্ট বা কনজুমার এর কমিউনিকেশন মূলত API এর মাধ্যমে হয়ে থাকে। যদি ক্লায়েন্ট বা কনজুমার ডিরেক্ট একটা মাইক্রোসার্ভিস এর API কল করে ডাটা পায় তাহলে এটা একটা সমস্যা। কারণ এটা সার্ভার এর সাথে কনজুমার এর টাইট সম্পর্ক তৈরি করে। তার ফলে নিচের কাজ করা কঠিন হয়ে যায়
মাইক্রোসার্ভিস রিফেক্টর করা
যদি মাইক্রোসার্ভিস এর API কে রিফেক্টর করি বা দুইটা মাইক্রোসার্ভিসকে জোরা লাগাই বা একটা মাইক্রোসার্ভিস ভেঙে দুইটা মাইক্রোসার্ভিস বানাই তখন সব সময় পুরান API কে আগের মত রাখা সম্ভব হয় না। যদি আমরা API পরিবর্তন করতে চাই, তখন সব ক্লায়েন্ট বা কনজুমার কেও পরিবর্তন করতে হয়।পাবলিক এবং প্রাইভেট API
আবার আমাদের মাইক্রোসার্ভিস নিজেদের মধ্যে API এর মাধ্যমে ডাটা আদান প্রদান করে, আমার চাই প্রাইভেট API যেনো পাবলিক API থেকে আলাদা থাকে
API ভার্সনিং করা
আবার একটা API এর নতুন ভার্সন তৈরি করতে চাই বা সাবক্রিপশন অনুযায়ী আলাদা API ডিজাইন করতে চাই।
লগিং, মনিটরিং সেন্ট্রাল অথেন্টিকেশন
তার উপর আমরা চাই আমাদের সব API এর উপর মনিটরিং বসাতে, লগিং ডাটা রাখতে বা সব মাইক্রোসার্ভিস অথেন্টিকেশন না রেখে একটা সেন্ট্রাল অথেন্টিকেশন বসানো
সমাধান
এইসব সমস্যাকে সমাধান করতে API Gateway ব্যবহার করা হয়। স্পেশালি মাইক্রোসার্ভিস এপ্লিকেশনে অবশ্যই API Gateway থাকা উচিৎ। API Gateway এর মানে হচ্ছে সমস্ত API কল প্রথমে একটা সার্ভিসে আসবে এবং সেই সার্ভিস জানবে এই রিকোয়েস্ট কার কাছে পাঠাতে হবে। লগিং, মনিটরিং, থ্রোটোলিং বা অথেন্টিকেশন এর মতো কাজ API Gateway তে করা হবে, ফলে প্রতিটা মাইক্রোসার্ভিস এ আলাদা ভাবে এগুলো করার দরকার হবে না।
লোডব্যালেন্সার এবং এপিআই গেটওয়ে
যারা লোডব্যালেন্সার এর সাথে পরিচিত, তারা মনে করতে পারেন যে লোডব্যালেন্সার ও একই কাজ করে। আসলে লোডব্যালেন্সার এবং এপিআই গেটওয়ে একই জিনিষ না।
লোডব্যালেন্সার | এপিআই গেটওয়ে |
লোডব্যালেন্সার এর মূল কাজ হচ্ছে একই রকম অনেকগুলো সার্ভার থেকে রিকোয়েস্ট একটা সার্ভারকে দেয়া, এর জন্য স্পেফিক এলগরিদম আছে | এপিআই গেটওয়ের কাজ হচ্ছে রিকোয়েস্ট একটা স্পেফিক সার্ভিসকে দেয়া |
এর মধ্যে তেমন কোন লজিক দেয়া থাকে না, মূলত সার্ভার এর হেলথ চেক এবং রাওটিং এলগরিদম থাকে | প্রচুর লজিক দেয়া থাকতে পরে, মনিটরিং, থটোলিং, অথেন্টিকেশন, লগিং, API ভার্সনিং |
মাইক্রোসার্ভিস এর ক্ষেত্রে লোডব্যালেন্সার থাকে সার্ভার এর আগে | মাইক্রোসার্ভিস এর ক্ষেত্রে রিকোয়েস্ট প্রথমে এপিআই গেটওয়ের কাছে আসে এবং সেখান থেকে লোডব্যালেন্সার এর কাছে যায় লোডব্যালেন্সার |