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