माइक्रोसर्विसेज आर्किटेक्चर (Microservices Architecture)
यह क्या है
माइक्रोसर्विसेज आर्किटेक्चर (microservices architecture) एक ऐसा वास्तुशिल्पीय दृष्टिकोण है जो एप्लीकेशन को अलग-अलग स्वतंत्र (माइक्रो) सर्विसेज में विभाजित करता है, जहाँ प्रत्येक सर्विस किसी एक विशिष्ट कार्यक्षमता पर केंद्रित होती है। ये सर्विसेज आपस में घनिष्ठता से मिलकर काम करती हैं, और अंतिम उपयोगकर्ता को एक ही इकाई के रूप में दिखाई देती हैं। उदाहरण के लिए नेटफ्लिक्स (Netflix) को लें। इसका इंटरफ़ेस आपको वीडियो तक पहुँचने, उन्हें खोजने और उनका पूर्वावलोकन करने की अनुमति देता है। ये क्षमताएँ संभवतः छोटी सर्विसेज द्वारा संचालित होती हैं, जिनमें से प्रत्येक एक कार्यक्षमता को संभालती है, जैसे प्रमाणीकरण (authentication), खोज (search), और आपके ब्राउज़र में पूर्वावलोकन चलाना।
यह वास्तुशिल्पीय दृष्टिकोण डेवलपर्स को नई सुविधाएँ जारी करने या कार्यक्षमता को अद्यतन करने में कहीं अधिक तेज़ी प्रदान करता है, बजाय इसके कि वे सभी किसी मोनोलिथिक एप्लीकेशन की तरह आपस में कसकर युग्मित (tightly coupled) हों (इस पर आगे और चर्चा है)।
समस्या
एप्लीकेशन विभिन्न भागों से मिलकर बने होते हैं, जिनमें से प्रत्येक किसी विशिष्ट क्षमता के लिए ज़िम्मेदार होता है। किसी एक विशेष कार्यक्षमता की माँग आवश्यक रूप से एप्लीकेशन के अन्य भागों की माँग के साथ नहीं बढ़ती या घटती। अपने नेटफ्लिक्स उदाहरण पर वापस आते हैं। मान लीजिए कि किसी बड़े मार्केटिंग अभियान के बाद नेटफ्लिक्स में साइनअप (signup) में भारी उछाल आता है, लेकिन दिन के शुरुआती घंटों में स्ट्रीमिंग कमोबेश स्थिर रहती है। साइनअप में यह वृद्धि अधिक साइनअप क्षमता की माँग करती है। परंपरागत रूप से (मोनोलिथिक दृष्टिकोण में), इस वृद्धि को समायोजित करने के लिए पूरे एप्लीकेशन को स्केल करना पड़ता, जो संसाधनों का एक बहुत ही अकुशल उपयोग है।
मोनोलिथिक आर्किटेक्चर डेवलपर्स के लिए डिज़ाइन की खामियों में फँसना भी आसान बना देता है। चूँकि सारा कोड एक ही जगह होता है, इसलिए उस कोड को कसकर युग्मित बनाना आसान होता है और चिंताओं के पृथक्करण (separation of concerns) के सिद्धांत को लागू करना कठिन होता है। मोनोलिथ अक्सर डेवलपर्स से किसी भी परिवर्तन को परिनियोजित करने से पहले पूरे कोडबेस को समझने की अपेक्षा भी करते हैं। माइक्रोसर्विसेज आर्किटेक्चर इन्हीं चुनौतियों का उत्तर है।
समाधान
कार्यक्षमता को अलग-अलग माइक्रोसर्विसेज में विभाजित करने से उन्हें स्वतंत्र रूप से परिनियोजित (deploy), अद्यतन और स्केल करना आसान हो जाता है। यह विभिन्न टीमों को किसी बड़े एप्लीकेशन के एक छोटे हिस्से पर एक साथ काम करने की अनुमति भी देता है, और ऐसा करते समय अनजाने में शेष एप्लीकेशन पर नकारात्मक प्रभाव नहीं पड़ता। जहाँ माइक्रोसर्विसेज आर्किटेक्चर कई समस्याओं का समाधान करता है, वहीं यह परिचालन संबंधी अतिरिक्त भार भी उत्पन्न करता है, क्योंकि जिन चीज़ों को आपको परिनियोजित करना और उन पर नज़र रखनी होती है, उनकी संख्या कई गुना बढ़ जाती है। कई क्लाउड नेटिव तकनीकों का उद्देश्य माइक्रोसर्विसेज को परिनियोजित और प्रबंधित करना आसान बनाना है।
प्रतिक्रिया
क्या यह पृष्ठ उपयोगी था?
Thank you! Please let us know if you have any suggestions.
Thanks for your feedback. Please tell us how we can improve.