5

में एप्लिकेशन का डिज़ाइन मुझे नए एज़ूर सर्विस फैब्रिक टेम्पलेट में फिट करने के लिए हमारे एप्लिकेशन को डिज़ाइन करने के बारे में सोचना चाहिए।Azure सेवा फैब्रिक

आज हमारे पास Azure क्लाउड सर्विसेज पर एक एप्लिकेशन बनाया गया है। आवेदन डीडीडी के आसपास बनाया गया है और हमारे पास आवेदन के विभिन्न उपप्रणाली भागों के लिए अलग-अलग बाध्य संदर्भ हैं। बाध्य संदर्भ आज एक कार्यकर्ता भूमिका में होस्ट किए जाते हैं जो एक ही वेबएपीआई का उपयोग करके इन उपप्रणाली का खुलासा करता है।

इसके अतिरिक्त हमारे पास वेब फ्रंटेंड की मेजबानी करने वाली एक वेब भूमिका है और एक वर्कर रोल एक पृष्ठभूमि कतार को संसाधित करता है।

हम एक माइक्रो सेवा वास्तुकला में जाने का प्रयास करते हैं। पहली चीज़ जो मैंने करने की योजना बनाई थी वह सभी बाध्य संदर्भ को अपने स्वयं के एपीआई-होस्टों में निकालना था। इसके परिणामस्वरूप हमारे उपप्रणाली का समर्थन करने वाली 5-10 नई वेबएपीआई सेवाएं होंगी।

मेरे प्रश्न के लिए, क्या इन सभी उपप्रणाली/बाध्य संदर्भ/एपीआई-होस्ट अपने स्वयं के सेवा फैब्रिक एप्लिकेशन या एक सेवा फैब्रिक एप्लिकेशन के भीतर एक सेवा होनी चाहिए?

मैं प्रलेखन पढ़ा है, यहाँ अधिक से अधिक पाया Service Fabric Application Model, और मैं समझ नहीं सकता है, जहां अपनी सेवाओं में फिट बैठता है।

हम सिस्टम सेवाओं के विभिन्न संस्करणों का समर्थन करने के लिए, और सेवाओं चाहते हैं दूसरे से अलग पैमाने पर भी संभव होना चाहिए। एक बड़े वीएम आकार में बाकी के लिए एक माइक्रो सेवा चलाने की आवश्यकता भी हो सकती है।

कृपया कोई मुझे मार्गदर्शन कर सकता है जिसमें मेरी आवश्यकताओं के अनुरूप है।

+0

यदि आप स्वतंत्र रूप से भागों को अपग्रेड करना चाहते हैं, तो उन्हें प्रत्येक एप्लिकेशन होना चाहिए। अपने अनुप्रयोगों को आर्किटेक्ट करने के तरीके के लिए, यह वास्तव में आपकी व्यक्तिगत जरूरतों पर निर्भर है। सुनिश्चित करें कि आप अपनी विभाजन योजनाओं को भविष्य के विकास के लिए खाते में स्थापित करें। एसएफ के साथ, आप अपने सभी विभाजनों को छोटी संख्या में मशीनों पर डाल देते हैं और बाद में उन्हें अपने विकास के रूप में फैलाते हैं। सड़क के नीचे और विभाजन जोड़ते हैं। – dharms

उत्तर

9

मुझे लगता है कि आपके पास सही विचार है, सामान्य शब्दों में, प्रत्येक बाध्य संदर्भ एक (माइक्रो) सेवा है। सेवा फैब्रिक आपको संगठनों और सेवाओं के साथ संगठन के दो स्तर प्रदान करता है, जहां एक आवेदन सेवाओं का तार्किक समूह है। यहां आपके लिए इसका अर्थ है:

तर्कसंगत रूप से, कार्यक्षमता के एक संयोजक सेट के रूप में एक एप्लिकेशन के बारे में सोचें। सामूहिक रूप से कार्यक्षमता के संयोजन को सेट करने वाली सेवाओं को एक आवेदन के रूप में समूहीकृत किया जाना चाहिए। आप प्रत्येक सेवा के लिए खुद से पूछ सकते हैं: "क्या यह अन्य सेवाओं के बिना स्वयं ही इस सेवा को तैनात करने के लिए समझ में आता है?" यदि उत्तर नहीं है, तो उन्हें शायद उसी एप्लिकेशन में समूहीकृत किया जाना चाहिए।

विकासशील रूप से, विजुअल स्टूडियो टूलींग एक आवेदन में कई सेवाओं की ओर थोड़ा और अधिक है, लेकिन आपके पास एक समाधान में कई एप्लिकेशन भी हो सकते हैं।

परिचालन के तौर पर, एक आवेदन, एक प्रक्रिया सीमा का प्रतिनिधित्व करता है समूह, और वर्ज़निंग समूह उन्नयन:

  • आपके द्वारा बनाए गए एक आवेदन के प्रत्येक उदाहरण के लिए अपने स्वयं के प्रक्रिया हो जाता है (या प्रक्रियाओं का सेट करता है, तो आप में एक से अधिक सेवा प्रकार है आवेदन पत्र)। सेवा प्रकार शेयर होस्ट प्रक्रियाओं के सेवा उदाहरण। विभिन्न सेवा प्रकारों के सेवा उदाहरण प्रति प्रकार अपनी प्रक्रिया प्राप्त करते हैं।
  • एप्लिकेशन शीर्ष स्तर अपग्रेड इकाई है, यानी, आप जो भी अपग्रेड करते हैं वह एक एप्लिकेशन अपग्रेड है। आप किसी एप्लिकेशन के भीतर व्यक्तिगत सेवाओं को अपग्रेड कर सकते हैं (आपको हमेशा एप्लिकेशन में प्रत्येक सेवा को अपग्रेड नहीं करना पड़ता है), लेकिन प्रत्येक बार जब आप अपग्रेड करते हैं, तो एप्लिकेशन संस्करण बदल जाता है।
  • आप अपने क्लस्टर में एक ही एप्लिकेशन प्रकार के विभिन्न संस्करणों के साइड-बाय-साइड उदाहरण बना सकते हैं। आप एप्लिकेशन इंस्टेंस के भीतर उसी सेवा प्रकार के विभिन्न संस्करणों के साइड-बाय-साइड उदाहरण नहीं बना सकते हैं।

सेवा में प्लेसमेंट और स्केल किया जाता है। तो उदाहरण के लिए, आप एक सेवा में एक सेवा स्केल कर सकते हैं, और आप एक और सेवा एक बड़े वीएम पर रख सकते हैं।

+0

आपके विस्तृत उत्तर के लिए धन्यवाद! मुझे बहुत मदद की :-) – honk

संबंधित मुद्दे