SOA बनाम माइक्रोसर्विसेज – उनके बीच अंतर
SOA और माइक्रोसर्विसेज के बीच मुख्य अंतर
- SOA अनुप्रयोग सेवा पुन: प्रयोज्यता पर ध्यान केंद्रित करता है, जबकि माइक्रोसर्विसेज वियुग्मन पर अधिक ध्यान केंद्रित करता है।
- SOA अखंड प्रकृति का है, जबकि माइक्रोसर्विसेज पूर्ण-स्टैक है।
- SOA अनुप्रयोग अनेक व्यावसायिक कार्य करने के लिए बनाए जाते हैं, लेकिन माइक्रोसर्विसेज़ एकल व्यावसायिक कार्य करने के लिए बनाए जाते हैं।
- SOA में सेवाओं के बीच डेटा भंडारण को साझा करना शामिल है, जबकि माइक्रोसर्विसेस में, प्रत्येक सेवा में स्वतंत्र डेटा भंडारण हो सकता है।
- SOA को सेवाओं के बीच संसाधनों को साझा करने के लिए डिज़ाइन किया गया है, जबकि माइक्रोसर्विसेज को उन सेवाओं को होस्ट करने के लिए डिज़ाइन किया गया है जो स्वतंत्र रूप से कार्य कर सकती हैं।
- SOA में Archiतकनीक के अनुसार, DevOps और सतत वितरण लोकप्रिय हो रहे हैं लेकिन अभी तक मुख्यधारा में नहीं आए हैं, जबकि माइक्रोसर्विसेज में DevOps और सतत वितरण पर अधिक जोर दिया जाता है।
- SOA एक कम स्केलेबल आर्किटेक्चर है, जबकि माइक्रोसर्विसेस एक अत्यधिक स्केलेबल आर्किटेक्चर है।
सेवा-उन्मुख वास्तुकला (SOA) क्या है?
SOA कंप्यूटर सॉफ्टवेयर डिजाइन में एक आर्किटेक्चरल पैटर्न है। इस प्रकार के अनुप्रयोग में, घटक संचार प्रोटोकॉल के माध्यम से अन्य घटकों को सेवाएँ प्रदान करते हैं, आमतौर पर एक नेटवर्क पर। सेवा-उन्मुखीकरण के सिद्धांत किसी भी उत्पाद, विक्रेता या तकनीक से स्वतंत्र हैं। SOA का पूर्ण रूप सेवा-उन्मुख वास्तुकला है
SOA विभिन्न नेटवर्कों पर सॉफ्टवेयर घटकों के लिए एक दूसरे के साथ काम करना आसान बनाता है। SOA आर्किटेक्चर के अनुसार निर्मित वेब सेवाएं वेब सेवाओं को अधिक स्वतंत्र बनाती हैं।
माइक्रोसर्विसेज क्या हैं?
Microservices एक सेवा-उन्मुख वास्तुकला पैटर्न है जिसमें अनुप्रयोगों को विभिन्न छोटी स्वतंत्र सेवा इकाइयों के संग्रह के रूप में बनाया जाता है। यह एक सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण है जो किसी एप्लिकेशन को अच्छी तरह से परिभाषित इंटरफेस के साथ एकल-फ़ंक्शन मॉड्यूल में विघटित करने पर केंद्रित है।
इन मॉड्यूलों को छोटी टीमों द्वारा स्वतंत्र रूप से तैनात और संचालित किया जा सकता है, जो सेवा के संपूर्ण जीवनचक्र का स्वामित्व रखती हैं।
"माइक्रो" शब्द का तात्पर्य माइक्रोसर्विस के आकार से है जिसे एक ही विकास दल (5 से 10 डेवलपर्स) द्वारा प्रबंधित किया जाना चाहिए। इस पद्धति में, बड़े अनुप्रयोगों को सबसे छोटी स्वतंत्र इकाइयों में विभाजित किया जाता है।
SOA और माइक्रोसर्विसेज के बीच अंतर
SOA और माइक्रोसर्विसेज के बीच अंतर इस प्रकार हैं:
SOA (सेवा-उन्मुख) Archiटेक्चर) | Microservices |
---|---|
SOA के मॉडल में एक एकल डेटा भंडारण परत होती है जिसे उस एप्लिकेशन में सभी सेवाओं द्वारा साझा किया जाता है। | माइक्रोसर्विसेज ऐप्स ज्यादातर डेटाबेस या अन्य प्रकार के स्टोरेज को उन सेवाओं के लिए समर्पित करते हैं जिन्हें इसकी आवश्यकता होती है। |
SOA ऐप में विभिन्न सेवाओं के बीच संचार सरल और सीधे तरीकों का उपयोग करता है। | माइक्रोसर्विसेज जटिल API का उपयोग करती हैं। |
अनुप्रयोग सेवा पुनः प्रयोज्यता को अधिकतम करने पर ध्यान केंद्रित किया गया। | वियुग्मन पर अधिक ध्यान केन्द्रित किया गया। |
व्यवस्थित परिवर्तन के लिए मोनोलिथ को संशोधित करना आवश्यक है। | एक व्यवस्थित परिवर्तन आपको एक नई सेवा बनाने में मदद करता है। |
DevOps और सतत वितरण लोकप्रिय हो रहे हैं लेकिन अभी तक मुख्यधारा में नहीं आ पाए हैं। | DevOps और सतत वितरण पर विशेष जोर |
प्रकृति में अखंड | प्रकृति में पूर्ण-स्टैक |
एकाधिक संदेश प्रोटोकॉल का समर्थन करता है. | HTTP, REST, या Thrift API जैसे हल्के प्रोटोकॉल का उपयोग करता है। |
इसे सेवाओं के बीच संसाधनों को साझा करने के लिए डिज़ाइन किया गया है। | इसे ऐसी सेवाओं को होस्ट करने के लिए डिज़ाइन किया गया है जो स्वतंत्र रूप से कार्य कर सकती हैं। |
इसमें अक्सर घटक साझाकरण शामिल होता है | आमतौर पर, इसमें घटक साझाकरण शामिल नहीं होता है |
इसमें सेवाओं के बीच डेटा संग्रहण साझा करना शामिल है | प्रत्येक सेवा में स्वतंत्र डेटा भंडारण हो सकता है। |
बड़े पैमाने पर एकीकरण के लिए बेहतर | छोटे और वेब-आधारित अनुप्रयोगों के लिए बेहतर। |
ईएसबी के माध्यम से संचार करता है | API परत के माध्यम से संचार करें |
संसाधनों को साझा करने पर निर्भर करता है | युग्मन के लिए परिबद्ध संदर्भ पर निर्भर करता है। |
Less तैनाती में लचीलापन | त्वरित एवं आसान तैनाती. |
SOA का प्रौद्योगिकी स्टैक माइक्रोसर्विस की तुलना में कम है। | माइक्रोसर्विस प्रौद्योगिकी स्टैक बहुत बड़ा हो सकता है। |
व्यावसायिक इकाइयाँ आश्रित हैं। | व्यावसायिक इकाइयाँ एक दूसरे से स्वतंत्र होती हैं। |
एक SOA ऐप में दो या तीन सेवाएँ शामिल होती हैं। | एक माइक्रोसर्विसेस ऐप में दर्जनों सेवाएँ हो सकती हैं। |
SOA अनुप्रयोग अनेक व्यावसायिक कार्य करने के लिए बनाए गए हैं। | वे एक ही व्यावसायिक कार्य करने के लिए बनाए गए हैं। |
तैनाती एक समय लेने वाली प्रक्रिया है। | तैनाती सरल और कम समय लेने वाली है। |
बिजनेस लॉजिक घटकों को एकल सेवा डोमेन सरल वायर प्रोटोकॉल (HTTP के साथ XML JSON) के अंदर संग्रहीत किया जाता है, API SDKs/क्लाइंट्स द्वारा संचालित होता है। | व्यावसायिक तर्क डोमेन एंटरप्राइज़ सेवा बस में सेवाओं के बीच अलग-अलग परतों की तरह रह सकते हैं। |
संचार के लिए एंटरप्राइज़ सर्विस बस (ESB) का उपयोग करता है | यह कम विस्तृत और सरल संदेश प्रणाली का उपयोग करता है |
सॉफ्टवेयर का आकार किसी भी पारंपरिक सॉफ्टवेयर से बड़ा है | माइक्रोसर्विसेज में सॉफ्टवेयर का आकार छोटा होता है |
I/O को संभालने के लिए कई ओवरहेड्स के साथ मल्टी-थ्रेडेड | सिंगल-थ्रेडेड का उपयोग ज्यादातर नॉन-लॉकिंग I/O हैंडलिंग के लिए इवेंट लूप सुविधाओं के साथ किया जाता है |
मोनोलिथ को संशोधित करने के लिए एक व्यवस्थित परिवर्तन की आवश्यकता है | माइक्रोसर्विसेज में, व्यवस्थित परिवर्तन का मतलब है एक नई सेवा बनाना |
अनुप्रयोग सेवा पुनः प्रयोज्यता को अधिकतम करने पर ध्यान केन्द्रित करें। | वियुग्मन पर जोर. |
समान शासन एवं मानक। | शासन में ढील दी गई है, तथा लोगों के सहयोग और पसंद की स्वतंत्रता पर अधिक ध्यान दिया गया है। |
तैनाती की प्रक्रिया समय लेने वाली है। | तैनाती आसान है और इसमें समय भी कम लगता है। |
Less स्केलेबल वास्तुकला. | अत्यधिक स्केलेबल वास्तुकला. |
एसओए क्या है? Archiटेक्चर?
सेवा-उन्मुख वास्तुकला सॉफ्टवेयर डिजाइन की एक शैली है। एक वास्तुकला को दो भागों में वर्गीकृत किया जाता है
- कार्यात्मक पहलू और
- सेवा की गुणवत्ता के पहलू।
आइये इन दोनों को विस्तार से देखें:
कार्यात्मक पहलू
कार्यात्मक पहलू में शामिल हैं:
ट्रांसपोर्टयह घटक सेवा उपभोक्ता से सेवा अनुरोधों को सेवा प्रदाता तक तथा उनसे सेवा प्रतिक्रियाओं को सेवा उपभोक्ता तक पहुंचाता है।
सेवा संचार प्रोटोकॉलयह सेवा प्रदाता और उपभोक्ता को एक दूसरे के साथ संवाद करने की अनुमति देता है।
सर्विस Descriptआयन: यह सेवा और उसे लागू करने के लिए आवश्यक डेटा के बारे में बताता है।
सर्विसयह एक वास्तविक सेवा है.
व्यवसाय प्रक्रिया: यह घटक व्यवसाय की मांगों को पूरा करने के लिए विशिष्ट नियमों से जुड़े एक निश्चित पूर्वनिर्धारित अनुक्रम में बुलाए गए सेवाओं के समूह का प्रतिनिधित्व करता है।
सेवा रजिस्ट्रीइस रजिस्ट्री में उस डेटा का विवरण होता है जिसका उपयोग सेवा प्रदाताओं द्वारा अपनी सेवाओं को प्रकाशित करने के लिए किया जाता है।
सेवा की गुणवत्ता के पहलू
सेवा की गुणवत्ता में निम्नलिखित शामिल हैं:
- नीति: यह प्रोटोकॉल का एक सेट है जिसके अनुसार सेवा प्रदाता उपभोक्ताओं के लिए सेवाएं बनाते हैं और प्रदान करते हैं।
- सुरक्षा: यह पहचान और प्राधिकरण प्रक्रिया के लिए आवश्यक प्रोटोकॉल के सेट का प्रतिनिधित्व करता है।
- लेन-देन: यह लगातार परिणाम की गारंटी प्रदान करता है।
- प्रबंधन: SOA का यह घटक आपको विशेषताओं के सेट को परिभाषित करने में मदद करता है जिनका उपयोग सेवाओं को प्रबंधित करने के लिए किया जाता है।
माइक्रोसर्विस क्या है? Archiटेक्चर?
यह एक वास्तुशिल्प विकास शैली है जो किसी अनुप्रयोग को व्यवसाय डोमेन के लिए विकसित छोटी स्वायत्त सेवाओं के संग्रह के रूप में बनाने की अनुमति देती है।
आइए माइक्रोसर्विस आर्किटेक्चर के साथ विकसित ई-कॉमर्स एप्लिकेशन का एक उदाहरण लेते हैं। इस उदाहरण में, प्रत्येक माइक्रोसर्विस एकल व्यावसायिक क्षमता पर केंद्रित है। खोज, रेटिंग और समीक्षा, और भुगतान प्रत्येक का अपना इंस्टेंस (सर्वर) होता है और वे एक दूसरे के साथ संवाद करते हैं।
इस अखंड में Archiतकनीक में, सभी घटक एक ही मॉड्यूल में मिल जाते हैं। लेकिन, माइक्रोसर्विस में Archiतकनीक में, वे अलग-अलग मॉड्यूल (माइक्रोसर्विस) में फैले हुए हैं जो एक दूसरे के साथ संवाद करते हैं।
माइक्रोसर्विस के बीच संचार एक स्टेटलेस संचार है जहाँ अनुरोध और प्रतिक्रिया की प्रत्येक जोड़ी स्वतंत्र होती है। इसलिए, माइक्रोसर्विस आसानी से संचार कर सकते हैं। माइक्रोसर्विस में Archiटेक्चर में, डेटा फ़ेडरेटेड है। प्रत्येक माइक्रोसर्विस का एक अलग डेटा स्टोर होता है।
SOA की विशेषताएं
SOA की महत्वपूर्ण विशेषताएं इस प्रकार हैं
- SOA ऐसे इंटरफेस का उपयोग करता है जो बड़ी प्रणालियों में कठिन एकीकरण समस्याओं को हल करता है।
- SOA XML स्कीमा का उपयोग करके ग्राहकों, प्रदाताओं और आपूर्तिकर्ताओं के साथ संचार करता है।
- SOA प्रदर्शन माप को बेहतर बनाने और सुरक्षा हमलों का पता लगाने के लिए संदेश निगरानी का उपयोग करता है।
- चूंकि इसमें सेवा का पुनः उपयोग होता है, इसलिए सॉफ्टवेयर विकास और प्रबंधन की लागत थोड़ी कम होती है।
माइक्रो-सर्विसेज की विशेषताएं
माइक्रोसर्विसेज की आवश्यक विशेषताएं इस प्रकार हैं:
- माइक्रोसर्विसेज में मॉड्यूल शिथिल रूप से युग्मित होते हैं
- परियोजना का प्रबंधन भी मॉड्यूलर किया जा सकता है।
- स्केलेबिलिटी की लागत अल्प है
- किसी अनुप्रयोग में अनेक सुविधाओं के रूप में अनेक प्रौद्योगिकियों का उपयोग करना बहुत आसान है।
- यह विकासपरक प्रणालियों के लिए एक आदर्श सेवा है, जहां आप यह अनुमान नहीं लगा सकते कि एक दिन कौन से उपकरण आपके एप्लिकेशन तक पहुंचेंगे।
SOA के लाभ
SOA के पक्ष/लाभ इस प्रकार हैं
- किसी भी सेवा को संपादित करना और अपडेट करना आसान है
- सेवाओं की निर्देशिका संरचना समान होती है, जो उपभोक्ताओं को हर बार एक ही निर्देशिका से सेवा डेटा तक पहुंचने की अनुमति देती है।
- सेवाएँ एक सामान्य भाषा का उपयोग करके अन्य अनुप्रयोगों के साथ संचार करती हैं, जिसका अर्थ है कि यह प्लेटफ़ॉर्म से स्वतंत्र है
- पूर्ण विकसित एप्लिकेशन की तुलना में सेवाएँ आमतौर पर छोटे आकार की होती हैं। इसलिए, स्वतंत्र सेवाओं को डीबग करना और उनका परीक्षण करना आसान होता है।
- SOA मौजूदा सिस्टम की सेवा का पुनः उपयोग करने तथा वैकल्पिक रूप से नई प्रणाली बनाने की अनुमति देता है।
- यह नई व्यावसायिक आवश्यकताओं को पूरा करने के लिए नई सेवाएं शुरू करने या मौजूदा सुविधाओं को उन्नत करने की पेशकश करता है।
- आप किसी सेवा के प्रदर्शन, कार्यक्षमता को बढ़ा सकते हैं, तथा आसानी से सिस्टम को अपग्रेड कर सकते हैं।
- SOA विभिन्न बाह्य वातावरणों को समायोजित या संशोधित कर सकता है
- कम्पनियां मौजूदा अनुप्रयोगों को बदले बिना अनुप्रयोग विकसित कर सकती हैं।
- यह विश्वसनीय अनुप्रयोग प्रदान करता है जिसमें आप बड़ी संख्या में कोड की तुलना में स्वतंत्र सेवाओं का परीक्षण और डीबग कर सकते हैं।
माइक्रो-सर्विसेज का लाभ
माइक्रो-सर्विसेज के उपयोग के लाभ/पक्ष इस प्रकार हैं:
- आसान आर्किटेक्चर पैटर्न जो डेवलपर्स के लिए समझना आसान है
- आईडीई तेज़ है जिससे डेवलपर्स तेज़ और उत्पादक बन रहे हैं
- वेब कंटेनर तेजी से शुरू होता है; इससे परिनियोजन और विकास की प्रक्रिया में तेजी लाने में मदद मिलती है।
- यह टीम को अन्य सभी टीमों से स्वतंत्र रूप से अपनी सेवा को विकसित करने, तैनात करने और बढ़ाने की अनुमति देता है।
SOA के नुकसान
सेवा उन्मुख वास्तुकला का उपयोग करने के नुकसान इस प्रकार हैं:
- सेवा में भेजे जाने से पहले सभी इनपुटों को सत्यापित किया जाना चाहिए
- मानव संसाधन, विकास और प्रौद्योगिकी के संदर्भ में SOA एक महंगी सेवा है।
- कुछ वेब सेवाओं को बार-बार संदेश और सूचना भेजने और प्राप्त करने की आवश्यकता होती है, इसलिए यह प्रतिदिन आसानी से दस लाख अनुरोधों तक पहुंच जाती है।
- SOA के लिए उच्च निवेश लागत की आवश्यकता होती है
- जब एक सेवा किसी अन्य सेवा के साथ इंटरैक्ट करती है तो ओवरहेड अधिक होता है, इससे प्रतिक्रिया समय बढ़ जाता है
- SOA सेवा GUI (ग्राफिकल यूजर इंटरफेस) अनुप्रयोगों के लिए उपयुक्त नहीं है, इसलिए जब SOA को भारी डेटा एक्सचेंज की आवश्यकता होगी तो यह अधिक जटिल हो जाएगा।
माइक्रो-सर्विसेज के नुकसान
माइक्रो-सर्विसेज के नुकसान/कमियां इस प्रकार हैं:
- इसे अखंड अनुप्रयोगों के निर्माण के लिए विकसित किया गया है, इसलिए यह वितरित अनुप्रयोगों के विकास के लिए स्पष्ट समर्थन प्रदान नहीं करता है।
- परीक्षण अधिक कठिन है
- डेवलपर्स को अंतर-सेवा संचार तंत्र को लागू करना होगा।
- एकाधिक सेवाओं तक फैले उपयोग मामलों को क्रियान्वित करने के लिए टीमों के बीच समन्वय की आवश्यकता होती है।
- माइक्रोसर्विस महंगा है, क्योंकि आपको विभिन्न व्यावसायिक कार्यों के लिए हमेशा अलग-अलग सर्वर स्पेस बनाए रखने की आवश्यकता होती है
कौन सा Archiटेक्चर बेहतर है?
SOA बड़े और जटिल व्यावसायिक अनुप्रयोगों के लिए एक आदर्श वास्तुकला विधि है। यह उन वातावरणों के लिए सबसे उपयुक्त है जिनमें कई विविध अनुप्रयोगों के साथ एकीकरण की आवश्यकता होती है।
हालाँकि, वर्कफ़्लो-आधारित अनुप्रयोग जिनमें एक अच्छी तरह से परिभाषित प्रसंस्करण प्रवाह होता है, उन्हें SOA आर्किटेक्चर पैटर्न की मदद से लागू करना चुनौतीपूर्ण होता है। इसलिए छोटे अनुप्रयोग भी SOA के लिए आदर्श नहीं हैं क्योंकि उन्हें मिडलवेयर मैसेजिंग घटकों की आवश्यकता नहीं होती है। दूसरी ओर, माइक्रोसर्विस पैटर्न छोटे और अच्छी तरह से विभाजित वेब-आधारित सिस्टम के लिए उपयुक्त है।