মাইক্রোসার্ভিস আর্কিটেকচার একটি জটিল অ্যাপ্লিকেশনকে ছোট স্বয়ংসম্পূর্ণ অ্যাপ্লিকেশনগুলিতে ভাঙ্গার সাথে জড়িত যাতে তাদের প্রতিটিকে স্কেল করা যায় এবং স্বাধীনভাবে রক্ষণাবেক্ষণ করা যায়। মাইক্রোসার্ভিস আর্কিটেকচারের সাথে যে সুবিধার আধিক্য আসে, তাতে অবাক হওয়ার কিছু নেই কেন আইটি সেক্টরের সবাই এই নতুন আর্কিটেকচারের দিকে এগিয়ে যাচ্ছে!
মাইক্রোসার্ভিস আর্কিটেকচারের মূলে রয়েছে বিপরীত প্রক্সি করার ধারণা। একটি বিপরীত প্রক্সি বিভিন্ন মাইক্রোসার্ভিসের মধ্যে ট্র্যাফিক পরিচালনার পাশাপাশি একটি মাইক্রোসার্ভিসের একাধিক দৃষ্টান্ত জুড়ে কাজের চাপ বিতরণে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। বিপরীত প্রক্সি ব্যতীত, মাইক্রোসার্ভিস আর্কিটেকচারের মধ্যে মিথস্ক্রিয়া এবং লোড বিতরণের জটিল ওয়েব যেমনটি আমরা আজকে বুঝি তা সম্ভব হবে না!
আসুন আমরা একটি মাইক্রোসার্ভিসেস সেটিংসে একটি বিপরীত প্রক্সির ভূমিকায় গভীরভাবে ডুব দিই!
একটি প্রক্সি একটি সার্ভার যা একটি ক্লায়েন্টের কম্পিউটার এবং ইন্টারনেটের মধ্যে বসে। ক্লায়েন্টের মেশিন থেকে যে কোনো ট্রাফিক প্রক্সি সার্ভারের মধ্য দিয়ে যায়। বাকি ইন্টারনেটের জন্য, মনে হচ্ছে প্রক্সি সার্ভার অনুরোধগুলি শুরু করছে।
একটি প্রক্সি সার্ভার ব্যবহার করার বিভিন্ন কারণ রয়েছে। তার মধ্যে কয়েকটি নিম্নরূপ-
একটি বিপরীত প্রক্সি হল একটি সার্ভার যা ইন্টারনেট এবং ব্যাকএন্ড সার্ভারের মধ্যে বসে। সার্ভারের জন্য নির্ধারিত যেকোন ট্রাফিক অবশ্যই বিপরীত প্রক্সির মধ্য দিয়ে যেতে হবে। বাকি ইন্টারনেটের জন্য, মনে হচ্ছে যেন বিপরীত প্রক্সি অনুরোধগুলি পরিবেশন করছে৷
সাধারণভাবে বিপরীত প্রক্সি ব্যবহার করার বিভিন্ন সুবিধা রয়েছে। আপনি এখানে তালিকাভুক্ত কিছু খুঁজে পেতে পারেন.
একটি বিপরীত প্রক্সির ধারণা মাইক্রোসার্ভিস আর্কিটেকচারে প্রাণ দেয়, ক্লায়েন্টকে কোন সার্ভারগুলি অ্যাক্সেস করতে হবে তা নির্ধারণ করে মাইক্রোসার্ভিসের গতিশীল পরিবেশে নেভিগেট করতে সক্ষম করে। এই গুরুত্বপূর্ণ উপাদানটি ছাড়া, ক্লায়েন্টকে মাইক্রোসার্ভিসেস আর্কিটেকচারের জটিল ল্যান্ডস্কেপ কার্যকরভাবে নেভিগেট করার উপায় ছাড়াই ছেড়ে দেওয়া হবে।
একটি মাইক্রোসার্ভিস আর্কিটেকচারে পরিষেবাগুলি লোডের উপর ভিত্তি করে উপরে এবং নিচের দিকে স্কেল করে। এর মানে হল যে কোনও পরিষেবার প্রতিলিপি কোনও অ্যাপ্লিকেশনের জীবদ্দশায় যে কোনও সময় আসতে পারে এবং যেতে পারে। বিপরীত প্রক্সি একটি পরিষেবার সার্ভার সনাক্ত করে এবং কার্যকরভাবে ক্লায়েন্টের ট্রাফিককে এগুলির দিকে নির্দেশ করে৷
যেহেতু একটি পরিষেবার একাধিক প্রতিলিপি চলমান থাকতে পারে, তাই এটি গুরুত্বপূর্ণ হয়ে ওঠে যে ক্লায়েন্টের অনুরোধগুলি উপলব্ধ সার্ভারগুলিতে সঠিকভাবে বিতরণ করা হয়। লোড ব্যালেন্সিং হল রেভার প্রক্সির আরেকটি বৈশিষ্ট্য যা এখানে ব্যবহার করা যায়। বিপরীত প্রক্সি একটি পরিষেবার উপলব্ধ প্রতিলিপি জুড়ে স্মার্টভাবে লোড বিতরণ করে।
যেহেতু আমাদের অ্যাপ্লিকেশনে প্রবেশ করা যেকোনো অনুরোধ বিপরীত প্রক্সির মাধ্যমে যায়, তাই অনুরোধগুলি নিরীক্ষণ এবং লগিং করার জন্য এটি একটি ভাল জায়গা। এটি সিস্টেমে উপস্থিত পরিষেবার সংখ্যা সম্পর্কে গুরুত্বপূর্ণ অন্তর্দৃষ্টি অর্জনে সহায়তা করে৷
একটি মাইক্রোসার্ভিসেস সেটিংয়ে, ক্লাস্টারের অভ্যন্তরীণ ট্র্যাফিক রুট করতে একটি বিপরীত প্রক্সিও ব্যবহার করা হয়। এটি পরিষেবা থেকে পরিষেবা যোগাযোগের ক্ষেত্রে বিশেষভাবে কার্যকর।
ক্যাশিং একটি সাধারণ সুবিধা যা বিপরীত-প্রক্সি ব্যবহারের সাথে আসে। প্রক্সি সার্ভার অনুরূপ প্রশ্নের জন্য ক্যাশে ফলাফল ফেরত দিতে পারে, এইভাবে ক্লায়েন্টের জন্য প্রতিক্রিয়া করার সময় উন্নত করে।
একটি একক ক্লায়েন্টের অনুরোধের জন্য ব্যাকএন্ডে একাধিক পরিষেবা থেকে প্রতিক্রিয়া সমষ্টির প্রয়োজন হতে পারে। এই ধরনের একত্রীকরণ বিপরীত প্রক্সি দ্বারা সঞ্চালিত হতে পারে যা ক্লায়েন্টকে ব্যবহার করার জন্য একটি পরিষ্কার এন্ডপয়েন্ট রেখে দেয়!
একটি বিপরীত প্রক্সি বিভিন্ন কনফিগারেশনে ব্যবহার করা যেতে পারে। এই কনফিগারেশনগুলি সাধারণত OSI স্তরকে নির্দেশ করে যেখানে রাউটিং সিদ্ধান্ত নেওয়া হয়। জনপ্রিয়ভাবে দুটি বিখ্যাত প্রক্সি করা আছে - (1) লেয়ার 4 এ প্রক্সি করা এবং (2) লেয়ার 7 এ প্রক্সি করা। আমরা যখন লেয়ারগুলো উপরে নিয়ে যাই, আমরা ইন্টারনেট প্যাকেট থেকে আরও তথ্য ডিকোড করি যা রাউটিং সিদ্ধান্তের জন্য ব্যবহার করা যেতে পারে।
OSI মডেলের লেয়ার 4 হল ট্রান্সপোর্ট লেয়ার। একটি অ্যাপ্লিকেশন বিকাশকারীর দৃষ্টিকোণ থেকে, রাউটিং সিদ্ধান্তের জন্য স্তর 4 এ উপলব্ধ জিনিসগুলি হল -
এইভাবে একটি স্তর 4 প্রক্সি শুধুমাত্র আইপি এবং সার্ভার এবং ক্লায়েন্টের পোর্টের উপর ভিত্তি করে রাউটিং সিদ্ধান্ত নিতে পারে। এটি অনুরোধের বিষয়বস্তু খতিয়ে দেখতে পারে না এবং এইভাবে সীমিত রাউটিং সিদ্ধান্ত নিতে পারে।
কেন কেউ লেয়ার 4 প্রক্সি ব্যবহার করবে তার বেশ কয়েকটি কারণ রয়েছে -
লেয়ার 4 প্রক্সিতেও বেশ কিছু খারাপ দিক রয়েছে -
OSI মডেলের লেয়ার 7 হল অ্যাপ্লিকেশন লেয়ার। একটি অ্যাপ্লিকেশন বিকাশকারীর দৃষ্টিকোণ থেকে, রাউটিং সিদ্ধান্তের জন্য স্তর 7 এ উপলব্ধ জিনিসগুলি হল -
যেহেতু লেয়ার 7 এ সিদ্ধান্ত নেওয়ার জন্য অনেক বেশি কন্টেন্ট পাওয়া যায়, তাই আরও স্মার্ট রাউটিং করা যেতে পারে।
এখানে কিছু কারণ রয়েছে কেন কেউ একটি লেয়ার 7 প্রক্সি ব্যবহার করবে -
এখানে একটি স্তর 7 প্রক্সি ব্যবহার করার কিছু খারাপ দিক রয়েছে -
বিপরীত প্রক্সি নিঃসন্দেহে একটি মাইক্রোসার্ভিস আর্কিটেকচারের একটি গুরুত্বপূর্ণ অংশ। এটি ছাড়া, মাইক্রোসার্ভিস আর্কিটেকচারের প্রকৃত সুবিধাগুলি সম্পূর্ণরূপে উপলব্ধি করা যাবে না।
এটি দিয়ে আমরা এই ব্লগের শেষ পর্যন্ত পৌঁছেছি! আমি আশা করি আপনি আজ নতুন কিছু শিখেছেন।