বিভিন্ন মাইক্রোসার্ভিসেসের মধ্যে ভাগ করা ডোমেন মডেল


61

দুটি ভিন্ন মাইক্রোসার্চেসের একটি দৃশ্য কল্পনা করুন। একটি পরিষেবার মধ্যে প্রমাণীকরণ হ্যান্ডেল করার জন্য, অন্যটি ব্যবহারকারী ব্যবস্থাপনার যত্ন নেয়। তারা উভয়েরই একটি ব্যবহারকারী ধারণা রয়েছে এবং তারা একে অপরকে কল করার মাধ্যমে ব্যবহারকারীদের সম্পর্কে কথা বলবে।

"ব্যবহারকারী" এর ডোমেন মডেলটি কোথায় থাকবে? ব্যবহারকারীদের ডাটাবেসের স্তরে কী রয়েছে তার উভয়েরই আলাদা উপস্থাপনা থাকবে? যখন আমাদের এপিআই কলগুলিতে ব্যবহার করার জন্য একটি ইউজারডিটিও থাকবে তখন কী তারা উভয়েরই নিজ নিজ এপিআইয়ের জন্য একটি থাকবে?

এই জাতীয় স্থাপত্য ইস্যুটির জন্য সাধারণ গৃহীত সমাধান কী?

উত্তর:


36

একটি মাইক্রোসারিজেস আর্কিটেকচারে প্রতিটি একে অপরের থেকে একেবারে স্বতন্ত্র এবং এটি অবশ্যই অভ্যন্তরীণ বাস্তবায়নের বিশদটি গোপন করে।

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

যদি তারা খুব বেশি সম্পর্কিত হয় তবে তারা সত্যিই @ সোরু বলে মত রয়েছে।

সম্পর্কিত প্রশ্নাবলী:


21
আমি সম্পূর্ণরূপে একমত হতে পারি না, যদি তারা সম্পূর্ণ স্বাধীন হয় তবে আপনার কাছে দুটি মনোলিথ রয়েছে। ধারণাটি হ'ল স্মার্ট এন্ডপয়েন্টস এবং বোবা পাইপ। এন্টারপ্রাইজ প্রসঙ্গে আপনি (বর্তমানে আমার দুঃস্বপ্নটি) প্রাচীরের সাথে আঘাত করছেন কারণ একটি অন্তর্নিহিত প্রচলিত ডোমেন মডেল রয়েছে (অন্তর্নিহিত কারণ আমরা এটির পূর্বে প্রত্যাশা করি নি) এবং প্রতিটি পরিষেবা চক্রের একটি% পুনরুদ্ধার করছে। এবং মাইক্রো-সার্ভিসেসের ইকোসিস্টেমটি ফোকাসের সাথে ক্রমবর্ধমান 100% কার্যকারিতা এবং দলের মালিকানাতে এনেছে, এটি ডোমেন মডেলটির সাথে বিশৃঙ্খলাবদ্ধ। আমাদের কাছে নতুন পরিষেবাদি তৈরি করার, অন্যকে গ্রাস করার, প্রচুর পরিশ্রমের সদৃশ করার দল রয়েছে। এখনও অমীমাংসিত।
juanmf

5
আমরা একটি অত্যন্ত গুরুত্বপূর্ণ আর্কিটেকচারের উল্লেখযোগ্য অ-কার্যকরী প্রয়োজনীয়তা, কর্মক্ষমতাও বাদ দিয়েছি। এই পরিষেবাগুলিতে অন্যান্য পরিষেবার আউটপুট প্রয়োজন, প্রতিটি ক্লায়েন্ট আরকিউয়ের জন্য একাধিক স্তর যোগাযোগের রেন্ডার দেয়। একটি ভারী রিফ্যাক্টর এবং সম্ভবত মাইক্রো সার্ভিস মার্জ করা না হলে সুরাহা যোগ করা addressed
juanmf

3
প্লাস, ডোমেন মডেলটির একটি সাধারণ ধারণা না থাকার কারণে কলিং মাইক্রো-পরিষেবা গৃহীত মডেলটির সাথে মাইক্রো-পরিষেবাদি প্রতিক্রিয়াগুলিকে মানিয়ে নিতে টিমগুলি অপ্রয়োজনীয় "নিরবচ্ছিন্ন + অবজেক্ট-অবজেক্ট ট্রান্সফর্মেশনস" প্রয়োগ করে apply আমি জানি যে একটি সাধারণ ডোমেন মডেল লাইবে সমস্ত পরিষেবাদির সংমিশ্রণ অন্যান্য ক্রিয়াকলাপের সমস্যা আনতে পারে তবে আমি কোনও বিকল্প সন্তোষজনক বলে মনে করি না।
juanmf

3
@ জুয়ানমফ আপনি নিজের সমস্যাগুলি সম্পর্কে কোনও প্রশ্ন পোস্ট করতে পারলে এটি খুব মূল্যবান হবে। আমিও এই বিষয়ে মতামত শুনতে আগ্রহী ...
মিলোস মের্ডোভিচ

1
আমি বসে বসে কিছু বোঝার চেষ্টা করব যা বোঝা যায়
juanmf

13

দুটি পরিষেবা যদি পর্যাপ্তভাবে জড়িত থাকে যে ডিটিও এবং অন্যান্য মডেল অবজেক্টগুলি ভাগ করে না নিলে সেগুলি বাস্তবায়নের জন্য ব্যথা হবে, এটি আপনার পক্ষে দুটি পরিষেবা না থাকা উচিত should

অবশ্যই উদাহরণ দুটি পরিষেবা হিসাবে সামান্য জ্ঞান করে; 'ইউজার ম্যানেজমেন্ট'-এর জন্য কোনও স্পেসিফিকেশন কল্পনা করা এত জটিল যে এটি পুরো টিমকে এতটাই ব্যস্ত রাখবে যে তাদের কাছে প্রমাণীকরণ করার সময় নেই।

যদি কোনও কারণে তারা হয়, তবে ওআউথ ২.০ অনুসারে তারা মূলত যথেচ্ছ স্ট্রিংগুলি ব্যবহার করে যোগাযোগ করবে ।


4

আপনি এগুলি দুটি পৃথক বাউন্ডেড কনটেক্সট (ডোমেন-ড্রাইভড ডিজাইন পার্লেন্সে) হিসাবে ভাবতে পারেন। প্রমাণীকরণের প্রসঙ্গে "ব্যবহারকারী "টিকে অন্য প্রসঙ্গে" ব্যবহারকারী "এর সাথে সম্পর্কিত করার জন্য ব্যবহৃত আইডি বাদে তাদের মধ্যে কোনও ডেটা ভাগ করা উচিত নয়। "ব্যবহারকারীর" কী এবং তাদের নিজস্ব ডোমেন মডেল যা তাদের ব্যবসায়ের দায়িত্ব সম্পাদনের জন্য প্রয়োজনীয় তথ্য, তার প্রত্যেকটির নিজস্ব উপস্থাপনা থাকতে পারে।

মনে রাখবেন যে একটি ডোমেন মডেল একটি বাস্তব বিশ্বের "জিনিস" মডেল করার চেষ্টা করে না তবে সেই জিনিসটি কোনও নির্দিষ্ট প্রসঙ্গে (যেমন পরিচয় / অনুমোদন পরিচালনা বা হিউম্যান রিসোর্সেস ইত্যাদি)।


2

তারা উভয়েরই একটি ব্যবহারকারী ধারণা রয়েছে এবং তারা একে অপরকে কল করার মাধ্যমে ব্যবহারকারীদের সম্পর্কে কথা বলবে।

@ সোরু যা বলেছিল তাতে আমিও একমত। যদি কোনও পরিষেবায় অন্য পরিষেবার ডেটার দরকার হয় তবে তার সীমানাটি ভুল।

আপনার প্রশংসাপূর্ণ প্রসঙ্গ হিসাবে আপনার পরিষেবাগুলিকে চিকিত্সা করে - @ প্রশাফিল্ড যা নিয়ে আসে তার একটি দুর্দান্ত সমাধান।

বিষয় সম্পর্কে কথা বলছি, শীঘ্রই লিখুন: ভাগ করা ডোমেন মডেলগুলি পরিষেবা স্বায়ত্তশাসনকে মেরে ফেলে, আপনার মাইক্রোসার্চিস সিস্টেমকে বিতরণকৃত একঘরে পরিণত করে। যা আপাতদৃষ্টিতে এক একরঙার চেয়েও খারাপ।

সুতরাং এখনও একটি সাধারণ প্রশ্ন এখনও অমীমাংসিত রয়েছে - কীভাবে পরিষেবা বা প্রসঙ্গের সীমানা সংজ্ঞায়িত করা যায়, যাতে তারা উচ্চ সংযুক্তি এবং আলগা দম্পতির মঙ্গলকে সাফল্য লাভ করে।

আমি আমার প্রসঙ্গে ব্যবসায়ের সক্ষমতা হিসাবে আচরণ করার সমাধান নিয়ে এসেছি। এটি একটি উচ্চ-স্তরের ব্যবসায়িক দায়িত্ব, ব্যবসায়-কার্যকারিতা, সামগ্রিক ব্যবসায়ের লক্ষ্যকে অবদান রাখে। ব্যবসায়িক মূল্য অর্জনের জন্য আপনার সংস্থার পদক্ষেপ নেওয়া দরকার বলে আপনি সেগুলি সম্পর্কে ভাবতে পারেন।

পরিষেবার সীমানা চিহ্নিত করার সময় আমি যে পদক্ষেপগুলি গ্রহণ করি তাগুলির সাধারণ ক্রমটি নিম্নলিখিত:

  1. উচ্চ-স্তরের ব্যবসা-দক্ষতা চিহ্নিত করুন। সাধারণত তারা একই ডোমেন থেকে সংস্থাগুলির মধ্যে একই রকম। পোর্টারের মান শৃঙ্খলা মডেলটি যাচাই করে দেখার মতো দেখতে এটির একটি ধারণা পেতে পারেন ।
  2. প্রতিটি ক্ষমতার মধ্যে, গভীরতর সন্ধান করুন এবং উপ-ক্ষমতাগুলি সনাক্ত করুন।
  3. ক্ষমতা মধ্যে যোগাযোগ নোট করুন। একটি সংস্থা কি করে দেখুন। সাধারণত, যোগাযোগ দক্ষতার মধ্যে কেন্দ্রীভূত হয়, তার কাজের ফলাফল সম্পর্কে বাকী অবহিত করে। প্রযুক্তিগত আর্কিটেকচার বাস্তবায়ন করার সময়, আপনার পরিষেবাটি ইভেন্টের মাধ্যমেও যোগাযোগ করা উচিত। এটির একাধিক ইতিবাচক পরিণতি রয়েছে। এই পদ্ধতির সাথে আপনার পরিষেবাদিগুলি স্বায়ত্তশাসিত এবং সম্মিলিত। তাদের একটি সুসংগত যোগাযোগ এবং বিতরণ লেনদেনের প্রয়োজন হয় না।

সম্ভবত এই কৌশলটির একটি উদাহরণ আপনার আগ্রহী হবে। আপনার সম্পর্কে কী ভাবছেন তা আমাকে জানাতে দ্বিধা করবেন না, যেহেতু আমি এই পদ্ধতির সত্যই লাভজনক পেয়েছি। অবশ্যই এটি আপনার পক্ষে কার্যকর হতে পারে।


1

মাইক্রোসার্ভাইস "শেয়ার কিছুই না" সম্পর্কে নয়, "যতটা সম্ভব শেয়ার করুন"। বেশিরভাগ ক্ষেত্রে "ব্যবহারকারী" সত্যই সাধারণ সত্তা (কেবল কারণ ব্যবহারকারীকে কিছু ভাগ করা শনাক্তকারী - ইউজারআইডি / ইমেল / ফোন দ্বারা চিহ্নিত করা হয়)। সংজ্ঞা অনুসারে এ জাতীয় সত্তা ভাগ করা হয়। ব্যবহারকারীর মডেলটি একটি মাইক্রোসার্ভেসের বাইরে নেই। সুতরাং আপনার অবশ্যই কিছু বিশ্বব্যাপী স্কিমা থাকতে হবে, যেখানে ব্যবহারকারী (কেবল তাদের সর্বাধিক সাধারণ ক্ষেত্র) স্থাপন করা উচিত। কঠোর ক্ষেত্রে কেবল আইডি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.