আমরা স্বতন্ত্র মাইক্রোসার্ভিসেস (একটি রেবিটমিকিউ বাসের মাধ্যমে সংযুক্ত) এর উপর ভিত্তি করে একটি সিস্টেম ডিজাইন করছি। কোডটি (কমপক্ষে প্রথম উপাদানগুলির জন্য) পাইথনে লেখা হবে (পাইথন 2 এবং পাইথন 3)) ইতিমধ্যে আমাদের কাছে কিছু ব্যবসায়িক যুক্তি বাস্তবায়িত করে একটি মনোলিথ অ্যাপ্লিকেশন রয়েছে, যা আমরা মাইক্রোসার্চেস হিসাবে রিফ্যাক্টর করতে চাই এবং প্রসারিত করতে চাই। একটি প্রশ্ন যা আমাকে চিন্তিত করে তা হ'ল:
বিভিন্ন মাইক্রোসার্চেসের মধ্যে কোড ভাগ করার সর্বোত্তম উপায় কী। আমাদের সাধারণ সাহায্যকারী ফাংশন রয়েছে (ডেটা প্রসেসিং, লগিং, কনফিগারেশন পার্সিং ইত্যাদি), যা অবশ্যই বেশ কয়েকটি মাইক্রোসার্ভিসেস দ্বারা ব্যবহার করা উচিত।
মাইক্রোসার্ভেসিসগুলি নিজেরাই পৃথক প্রকল্প (গিট সংগ্রহস্থল) হিসাবে বিকাশ করতে চলেছে। সাধারণ গ্রন্থাগারগুলিকে একটি স্ব-অন্তর্ভুক্ত প্রকল্প হিসাবেও বিকাশ করা যেতে পারে। আমি কীভাবে এই গ্রন্থাগারগুলিকে মাইক্রোসার্ভেসিসের মধ্যে ভাগ করব?
আমি বেশ কয়েকটি পন্থা দেখতে পাচ্ছি:
- প্রতিটি মাইক্রোসার্ভেসের জন্য প্রয়োজনীয় লাইব্রেরির সংস্করণটি অনুলিপি করুন এবং প্রয়োজন অনুসারে আপডেট করুন
- একটি সাধারণ অভ্যন্তরীণ পিপিআইতে সাধারণ লাইব্রেরি প্রকাশ করুন এবং মাইক্রো সার্ভিসের প্রয়োজনীয়তার উপর নির্ভরশীলতা হিসাবে সেই পাঠাগারগুলি তালিকাভুক্ত করুন
- গিট সাবমডিউল হিসাবে গ্রন্থাগার সংগ্রহস্থল অন্তর্ভুক্ত করুন
কীভাবে এগিয়ে যেতে হবে তার সিদ্ধান্ত নেওয়ার আগে প্রস্তাবিত পদ্ধতির, সেরা অনুশীলনগুলি, অতীতের অভিজ্ঞতাগুলি সম্পর্কে আমি আরও কিছুটা পড়তে চাই। আপনার কোন পরামর্শ বা লিঙ্ক আছে?
fib(n)
(ফিবোনাচি সিরিজের বাস্তবায়ন)। আপনি প্রতিটি মাইক্রো সার্ভিসে সেই প্রয়োগটি পুনরাবৃত্তি করতে চান না। এটি কোনও utils
লাইব্রেরির অন্তর্ভুক্ত (বৈশিষ্ট্য এবং বাগফিক্সগুলির জন্য সংস্করণযুক্ত)। এটি কোনও বিতরণ করা মনোলিথ নয়, এটি সাধারণ কার্যকারিতার মাত্র একটি স্তর। আমার প্রশ্ন হল বাস্তবায়ন স্তরে এই স্তরটি কীভাবে পরিচালনা করতে হয়?