माइक्रोसर्विसेज आर्किटेक्चर का परिचय
इस लेख का संदर्भ लेकर, आप माइक्रोसर्विस आर्किटेक्चर का बेहतर विचार प्राप्त कर पाएंगे और इसका उपयोग कब करना है। इसके अलावा, इस लेख में निम्नलिखित सामग्री शामिल है।
◼ लेख के संक्षिप्त रूप
◼ परिचय
◼ माइक्रोसर्विसेज इकोसिस्टम
◼ मोनोलिथ आर्किटेक्चर बनाम माइक्रोसर्विस आर्किटेक्चर
◼ माइक्रोसर्विसेज में चुनौतियां
◼ माइक्रोसर्विसेज का उपयोग कब करें
लघुरूप
- एपीआई: एप्लीकेशन प्रोग्रामिंग इंटरफेस
- एमएस: माइक्रोसर्विसेज
- NoSQL: केवल SQL ही नहीं
- आरटीई: रनटाइम पर्यावरण
माइक्रोसर्विसेज आर्किटेक्चर अनुप्रयोग विकास के लिए एक दृष्टिकोण है जिसमें एक बड़े एप्लिकेशन को मॉड्यूलर सेवाओं के एक सूट के रूप में बनाया गया है (इसका मतलब है कि यह (माइक्रोसर्विस) एक प्रकार का एप्लिकेशन आर्किटेक्चर है जहां एप्लिकेशन को सेवाओं के संग्रह के रूप में विकसित किया जाता है)। प्रत्येक मॉड्यूल एक विशिष्ट व्यावसायिक लक्ष्य का समर्थन करता है और सेवाओं के अन्य सेटों के साथ संवाद करने के लिए एक सरल अच्छी तरह से परिभाषित इंटरफ़ेस का उपयोग करता है। इसके अलावा, केंद्रीकृत प्रबंधन सेवाओं की एक न्यूनतम संख्या है, जो विभिन्न प्रोग्रामिंग भाषाओं जैसे कि जावा, पायथन, आदि में लिखी जा सकती हैं, और माइक्रोसर्विसेज आर्किटेक्चर में रिलेशनल और NoSQL जैसी विभिन्न डेटा स्टोरेज तकनीकों का उपयोग करती हैं।
माइक्रोसर्विसेज की कुछ प्रमुख विशेषताएं/विशेषताएं निम्नानुसार हैं।
- अत्यधिक रखरखाव योग्य और परीक्षण योग्य
- शिथिल युग्मित (इंटरफ़ेस के माध्यम से संचार करें)
- स्वतंत्र रूप से तैनात करने योग्य
- व्यावसायिक क्षमताओं के आसपास संगठित
- एक छोटी सी टीम के स्वामित्व में (क्रॉस-फंक्शनल टीम)
सामान्य तौर पर, माइक्रोसर्विसेज सिस्टम में निम्नलिखित सूचीबद्ध संस्थाएँ होती हैं। इनमें से कुछ संस्थाएँ मानक सॉफ़्टवेयर विकास के चरण हैं और उनमें से कुछ माइक्रोसर्विसेज विशिष्ट प्रक्रियाएँ हैं जो एक कुशल माइक्रोसर्विसेज सिस्टम के लिए आधार प्रदान करेंगी।
भार संतुलन
लोड बैलेंसर की मुख्य जिम्मेदारी आने वाले लोड को माइक्रोसर्विसेज के कई उदाहरणों के बीच वितरित करना है। मुख्य रूप से 2 प्रकार के लोड बैलेंसर होते हैं जिन्हें क्लाइंट डिस्कवरी (क्लाइंट-साइड लोड बैलेंसर) और सर्वर डिस्कवरी (सर्वर-साइड लोड बैलेंसर) कहा जाता है। क्लाइंट डिस्कवरी में क्लाइंट सर्विस रजिस्ट्री से बात करता है और लोड बैलेंसिंग करता है। क्योंकि क्लाइंट को सर्विस रजिस्ट्री के बारे में पता होना चाहिए। सर्वर डिस्कवरी में, क्लाइंट लोड बैलेंसर से बात करता है और लोड बैलेंसर सर्विस रजिस्ट्री से बात करता है। इसलिए, ग्राहक सेवा को सेवा रजिस्ट्री के बारे में पता नहीं होना चाहिए। निम्नलिखित आरेखों को देखकर आप इन 2 प्रकार के लोड बैलेंसर की अधिक समझ प्राप्त कर सकते हैं।
सेवा डिस्कवरी सर्वर
सेवा खोज की कार्यक्षमता माइक्रोसर्विसेज को स्टार्टअप पर स्व-पंजीकरण करने की अनुमति देती है, न कि मैन्युअल रूप से इस बात पर नज़र रखने के लिए कि वर्तमान में कौन सी माइक्रोसर्विसेज तैनात हैं और हमें कौन से होस्ट और पोर्ट की आवश्यकता है। इसलिए, यदि MS1 MS2 के साथ बात करना चाहता है, तो सबसे पहले, MS1 उस रजिस्ट्री सेवा से विवरण प्राप्त करता है जो परिदृश्य से संबंधित है और फिर MS2 के साथ बात करती है। इसके अलावा, जब MS3 नामक एक और MS होता है जो उसी परिदृश्य में ऊपर या नीचे होता है तो रजिस्ट्री सेवा स्वचालित रूप से अपडेट हो जाएगी।
एपीआई गेटवे
एपीआई गेटवे एक सर्वर है। यह एक प्रणाली में एकल प्रवेश बिंदु है। एपीआई गेटवे आंतरिक सिस्टम आर्किटेक्चर को एनकैप्सुलेट करता है। यह एक एपीआई प्रदान करता है जो प्रत्येक ग्राहक के अनुरूप होता है। इसके पास प्रमाणीकरण, निगरानी, लोड संतुलन, कैशिंग, अनुरोध आकार देने और प्रबंधन, और स्थिर प्रतिक्रिया प्रबंधन जैसी अन्य जिम्मेदारियां भी हैं। एपीआई गेटवे अनुरोध रूटिंग, संरचना और प्रोटोकॉल अनुवाद के लिए भी जिम्मेदार है। क्लाइंट द्वारा किए गए सभी अनुरोध एपीआई गेटवे के माध्यम से जाते हैं। उसके बाद, एपीआई गेटवे मार्ग उपयुक्त माइक्रोसेवा के लिए अनुरोध करता है।
एपीआई गेटवे अनुरोध को दो तरीकों में से एक में संभालता है:
- यह उपयुक्त सेवा के लिए अनुरोधों को रूट या प्रॉक्सी करता है।
- एक से अधिक सेवाओं के अनुरोध को फैलाना (फैलाना)।
अब हम जानते हैं कि एक ही पारिस्थितिकी तंत्र में विभिन्न नोड्स पर बहुत सारी माइक्रोसर्विसेज चल रही हैं। इसलिए, हमें एक ही सिस्टम में एक साथ उनकी निगरानी करने की आवश्यकता है। हाइस्ट्रिक्स डैशबोर्ड और स्प्रिंग बूट एडमिन डैशबोर्ड निगरानी उपकरणों के कुछ उदाहरण हैं। माइक्रोसर्विसेज की निगरानी के पांच सिद्धांत इस प्रकार हैं:
- कंटेनरों की निगरानी करें और उनके अंदर क्या है।
- सेवा प्रदर्शन पर चेतावनी।
- लोचदार और बहु-स्थान वाली सेवाओं की निगरानी करें।
- मॉनिटर एपीआई।
- संगठनात्मक संरचना की निगरानी करें
जब हम माइक्रोसर्विसेज को लागू कर रहे होते हैं तो वे विभिन्न आरटीई जैसे जेआरई और नोड.जेएस पर चल रहे होते हैं क्योंकि माइक्रोसर्विसेज का कार्यान्वयन विभिन्न तकनीकों का उपयोग करके किया जा सकता है। इसके अलावा, आप जानते हैं कि इन माइक्रोसर्विसेज को पॉलीग्लॉट तरीके से तैनात किया जाता है। इसलिए नोड्स तैनात माइक्रोसेवा के आरटीई को नहीं जानते हैं और हमें इसे प्रत्येक नोड में मैन्युअल रूप से स्थापित करने की आवश्यकता है। लेकिन जब कंटेनरीकरण की बात आती है, तो हम अपने आरटीई को अपनी माइक्रोसर्विस के साथ पैकेज करते हैं। इसलिए हम आरटीई पर विचार किए बिना माइक्रोसर्विसेज को हर जगह चला सकते हैं और हम इन सेवाओं को आसानी से प्रबंधित और अपडेट कर सकते हैं।
परिपथ वियोजक
यह माइक्रोसर्विसेज के पारिस्थितिकी तंत्र में एक बहुत ही महत्वपूर्ण इकाई है। अधिकांश समय इसे एक पैटर्न के रूप में परिभाषित किया जाता है। समझने के उद्देश्यों के लिए, यह आपके घर के सर्किट ब्रेकर के समान ही है। यह आपको आपदा से बचाता है और उत्पन्न हुई समस्या के प्रसार को रोकता है। माइक्रोसर्विसेज के संबंध में यहां (एमएस में सर्किट ब्रेकर) एक ही परिदृश्य हो रहा है। मान लेते हैं कि ग्राहक आपूर्तिकर्ता माइक्रोसर्विस को एक अनुरोध भेजता है और जब प्रतिक्रिया आ रही होती है तो कनेक्शन की समस्या होती है। क्योंकि क्लाइंट लंबे समय से प्रतिक्रिया की प्रतीक्षा कर रहा है और यह अन्य सेवाओं को भी प्रभावित कर सकता है। सर्किट ब्रेकर आर्किटेक्चर के बाद से, समस्याग्रस्त चैनल को छोड़ दिया जाता है और पिछली प्रतीक्षा समस्या हल हो जाती है। इसके अलावा, सर्किट ब्रेकर के तीन अलग-अलग राज्य हैं जिन्हें बंद कहा जाता है, खुला और आधा खुला।
मोनोलिथ आर्किटेक्चर बनाम माइक्रोसर्विस आर्किटेक्चर
कीमत
- मोनोलिथिक: एक बार प्रोजेक्ट स्केल होने के बाद उच्चतर
- माइक्रोसर्विस: विकास के पहले चरण में उच्चतर
- मोनोलिथिक : पूरे उत्पाद के लिए एक संयुक्त कोडबेस और डेटाबेस
- माइक्रोसर्विस : एकाधिक कोड फ़ाइलें; प्रत्येक सेवा आधार और डेटा संग्रहण को संभालती है
- अखंड: पूरे कोड बेस को तैनात करने की जरूरत है
- माइक्रोसर्विस: प्रत्येक माइक्रोसर्विस को व्यक्तिगत रूप से तैनात किया जाता है
- अखंड: समान कोड स्टैक
- माइक्रोसर्विस: अलग-अलग ढेर (भाषा, रनटाइम वातावरण और आदि)
कुछ चुनौतियाँ हैं जब हम निम्नानुसार माइक्रोसर्विसेज के साथ काम कर रहे हैं।
- अंतर-प्रक्रिया संचार (नेटवर्क के माध्यम से)
- वितरित लेनदेन
- बड़ी संख्या में सेवाएं
- अधिक स्वचालन की आवश्यकता है
अब हमें माइक्रोसर्विसेज और उनकी चुनौतियों की अच्छी समझ है। आइए देखें कि माइक्रोसर्विसेज के साथ जाने के लिए कौन से परिदृश्य उपयुक्त हैं।
- कंपनी तुरंत स्वच्छ, पठनीय कोड बनाना चाहती है और तकनीकी कर्ज से बचना चाहती है
- कंपनी के पास माइक्रोसर्विसेज डेवलपमेंट के लिए मानव संसाधन हैं
- कंपनी अल्पकालिक लाभों पर दीर्घकालिक लाभ को प्राथमिकता देती है
- डेवलपर्स की एक टीम विभिन्न तकनीकी स्टैक और टूल का उपयोग करती है
- प्लेटफॉर्म को अत्यधिक स्केलेबल होना चाहिए और विभिन्न बाजारों में विस्तार करना चाहिए