Intelligent Runtime Adaptation of Cloud-Native Microservices through Design-Principle-Aware Resource Management
यह शोध पत्र AMOF प्रस्तुत करता है, जो कुबेरनेट्स (Kubernetes) के लिए एक हाइब्रिड लर्निंग-आधारित रनटाइम कंट्रोलर है जो संसाधन प्रबंधन में आर्किटेक्चरल डिज़ाइन सिद्धांतों को एकीकृत करता है ताकि प्रदर्शन में गिरावट का सक्रिय रूप से पूर्वानुमान लगाया जा सके और लेटेंसी ट्रेड-ऑफ्स को प्रबंधित करते हुए संसाधन दक्षता में मानक ऑटोस्केलिंग से काफी बेहतर प्रदर्शन किया जा सके।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
आधुनिक सॉफ़्टवेयर अक्सर एक विशाल एकल कारखाने के बजाय छोटे, विशिष्ट दुकानों के एक विशाल शहर जैसा दिखता है। इस मॉडल में, जिसे माइक्रोसर्विसेज कहा जाता है, जटिल अनुप्रयोगों को छोटे, स्वतंत्र कार्यक्रमों में विभाजित किया जाता है जो काम पूरा करने के लिए एक-दूसरे से बात करते हैं। ये प्रोग्राम क्लाउड में रहते हैं, जो रिमोट कंप्यूटरों का एक विशाल नेटवर्क है जिसे मांग के अनुसार तुरंत बढ़ाया या घटाया जा सकता है। जब ग्राहकों की अचानक भीड़ आती है, तो सिस्टम लोड को संभालने के लिए इन कार्यक्रमों की अधिक प्रतियां स्वचालित रूप से जोड़ देता है; जब भीड़ समाप्त हो जाती है, तो यह पैसे बचाने के लिए उन्हें हटा देता है। यह स्वचालित समायोजन आधुनिक डिजिटल जीवन की रीढ़ है, जो ऑनलाइन स्टोर से लेकर बैंकिंग ऐप्स तक सब कुछ पीक समय के दौरान ऑनलाइन रहने में मदद करता है। हालांकि, इन प्रणालियों द्वारा खुद को प्रबंधित करने का वर्तमान तरीका काफी हद तक प्रतिक्रियाशील (reactive) है। वे तब तक प्रतीक्षा करते हैं जब तक कि कोई प्रोग्राम धीमा न हो जाए या उसकी मेमोरी समाप्त न हो जाए, इससे पहले कि वे प्रतिक्रिया दें, ठीक वैसे ही जैसे एक दुकानदार केवल तभी दूसरा काउंटर खोलता है जब लाइन पहले से ही बहुत लंबी हो चुकी हो। यह देरी उपयोगकर्ताओं के लिए सुस्त प्रदर्शन या अनावश्यक कंप्यूटर शक्ति पर पैसे की बर्बादी का कारण बन सकती है। शोधकर्ता अब यह पूछ रहे हैं कि क्या ये सिस्टम अधिक स्मार्ट हो सकते हैं, जो उन नियमों का उपयोग करें जिनका उपयोग आर्किटेक्ट सॉफ़्टवेयर को डिजाइन करने के लिए करते हैं, ताकि सॉफ़्टवेयर के चलते समय उसे प्रबंधित करने में मदद मिल सके।
पाकिस्तान, सऊदी अरब और यूनाइटेड किंगडम के विश्वविद्यालयों की एक टीम ने इस समस्या को हल करने के लिए डिज़ाइन किए गए एक नए सिस्टम का निर्माण और परीक्षण किया है। उन्होंने AMOF नामक एक फ्रेमवर्क बनाया, जो इन क्लाउड-आधारित सॉफ़्टवेयर दुकानों के लिए एक बुद्धिमान प्रबंधक के रूप में कार्य करता है। केवल यह देखने के बजाय कि एक प्रोग्राम कितनी कंप्यूटर शक्ति का उपयोग कर रहा है, AMOF सॉफ़्टवेयर आर्किटेक्चर के "सामाजिक" नियमों पर भी नज़र रखता है: वे एक-दूसरे से कितने मजबूती से जुड़े हुए हैं, वे अपने आंतरिक कार्य को कितनी अच्छी तरह से संभालते हैं, और उनकी भूमिकाएँ कितनी बड़ी या छोटी हैं। शोधकर्ताओं ने यह देखना चाहा कि क्या डिजाइन नियमों पर ध्यान देने से सिस्टम संकट होने से पहले ही भविष्यवाणी करने और वर्तमान तरीकों की तुलना में अधिक कुशलता से समायोजन करने में मदद मिल सकती है। उन्होंने अपने सिस्टम का परीक्षण दो बहुत अलग वास्तविक दुनिया के सॉफ़्टवेयर अनुप्रयोगों पर किया, जिनमें से एक एक जटिल ऑनलाइन स्टोर का प्रतिनिधित्व करता था और दूसरा एक सरल शॉपिंग साइट का, और उन्हें सामान्य, भारी और अत्यधिक ट्रैफिक लोड के अधीन रखा ताकि देखा जा सके कि वे कैसा प्रदर्शन करते हैं।
परिणामों ने दिखाया कि नया सिस्टम वास्तव में मुसीबत को देख सकता था। सॉफ़्टवेयर प्रोग्रामों के बीच संदेशों के प्रवाह का विश्लेषण करके, सिस्टम का प्रेडिक्टर (पूर्वानुमान लगाने वाला) वास्तव में होने से तीस सेकंड पहले ही मंदी की भविष्यवाणी कर सकता था, और इसकी सटीकता बहुत अधिक थी। इस प्रारंभिक चेतावनी ने सिस्टम को संकट को सुलझाने के लिए भागदौड़ करने के बजाय, तब कार्रवाई करने की अनुमति दी जब सॉफ़्टवेयर अभी भी सुचारू रूप से चल रहा था। वर्तमान में उद्योग में उपयोग किए जाने वाले मानक स्वचालित स्केलिंग टूल की तुलना में, नया सिस्टम काफी अधिक कुशल था। इसने आवश्यक कंप्यूटर प्रोसेसिंग पावर को 52 प्रतिशत तक कम कर दिया और मेमोरी के उपयोग को लगभग 49 प्रतिशत तक कम कर दिया। इसका अर्थ है कि समान मात्रा में काम के लिए, सिस्टम बहुत कम हार्डवेयर पर चल सकता है, जिससे संगठनों के क्लाउड बिलों पर पर्याप्त बचत हो सकती है।
हालांकि, इस दक्षता के साथ एक विशिष्ट समझौता (trade-off) भी आया। जबकि सिस्टम ने संसाधनों की बचत की, लेकिन यह सबसे चरम ट्रैफिक उछाल के दौरान प्रतिक्रिया समय को हमेशा उतना तेज़ नहीं रख सका जितना कि मानक उपकरण रख पाते हैं। परीक्षणों में, नए सिस्टम ने कभी-कभी अनुरोध को पूरा करने में लगने वाले समय में थोड़ी वृद्धि होने दी, विशेष रूप से जब लोड अपने पूर्ण शिखर पर था। शोधकर्ताओं ने पाया कि यह सिस्टम के तर्क में एक जानबूझकर किया गया चुनाव था: इसने संसाधनों को बचाने को पूर्ण गति बनाए रखने के ऊपर प्राथमिकता दी जब सिस्टम अधिकतम तनाव में था। एक परीक्षण अनुप्रयोग में, मानक उपकरण इतने आक्रामक थे कि उन्होंने अतिरिक्त क्षमता जोड़कर प्रतिक्रिया समय को अविश्वसनीय रूप से तेज़ रखा, लेकिन इसकी कीमत अनावश्यक कंप्यूटर शक्ति का बहुत अधिक उपयोग करना थी। नए सिस्टम ने कम शक्ति का उपयोग करने का विकल्प चुना, और संसाधनों को बर्बाद करने से बचने के लिए गति में मामूली देरी को स्वीकार किया।
अध्ययन ने सॉफ़्टवेयर की प्रकृति के बारे में कुछ आश्चर्यजनक भी उजागर किया। शोधकर्ताओं ने पाया कि वे ट्रैफिक को कैसे रूट किया जाता है, यह बदलकर प्रोग्रामों द्वारा अपने आंतरिक कार्य को कितनी अच्छी तरह से संभाला जाता है, जिसे 'कोहेजन' (cohesion) कहा जाता है, को आसानी से समायोजित कर सकते हैं। हालांकि, उन्होंने पाया कि वे सिस्टम के चलते समय प्रोग्रामों के एक-दूसरे से जुड़ने की मजबूती, जिसे 'कपलिंग' (coupling) कहा जाता है, को आसानी से नहीं बदल सकते। प्रोग्रामों के बीच के संबंध सॉफ़्टवेयर के डिजाइन में बहुत गहराई से निहित थे जिन्हें चलते समय बदला नहीं जा सकता था। यह सुझाव देता है कि जबकि सॉफ़्टवेयर आर्किटेक्चर के कुछ पहलुओं को गतिशील रूप से प्रबंधित किया जा सकता है, अन्य मूल ब्लूप्रिंट द्वारा निर्धारित होते हैं। सिस्टम ने सिद्ध किया कि प्रोग्रामों के बीच डेटा के प्रवाह को देखकर, वह क्षमता को कब जोड़ना है या हटाना है, इसके बारे में स्मार्ट निर्णय ले सकता है, लेकिन इसने यह भी रेखांकित किया कि सॉफ़्टवेयर को स्वयं फिर से लिखे बिना किन चीजों को बदला जा सकता है, इसकी सीमाएं क्या हैं।
अंततः, यह कार्य यह प्रदर्शित करता है कि सॉफ़्टवेयर आर्किटेक्चर को नियमों के एक जीवित, सांस लेते सेट के रूप में मानना क्लाउड संसाधनों के बेहतर प्रबंधन की ओर ले जा सकता है। यह सिस्टम मानक उपकरणों को प्रतिस्थापित नहीं करता है बल्कि उन स्थितियों के लिए एक अलग दृष्टिकोण प्रदान करता है जहाँ पैसे और संसाधनों को बचाने की बात गति के अंतिम अंश को निचोड़ने से अधिक महत्वपूर्ण है। यह दिखाता है कि सॉफ़्टवेयर के प्रदर्शन आंकड़ों के बजाय उसकी संरचना को समझकर, हम ऐसे सिस्टम बना सकते हैं जो अपने स्वयं के स्वास्थ्य के प्रति अधिक जागरूक और क्लाउड के विशाल संसाधनों का उपयोग करने में अधिक कुशल हों। शोधकर्ताओं ने अपने कोड और डेटा को दूसरों के सत्यापन के लिए उपलब्ध कराया है, जो यह सुझाव देता है कि आर्किटेक्चरल अंतर्दृष्टि को स्वचालित नियंत्रण के साथ जोड़ने का यह तरीका अगली पीढ़ी के क्लाउड अनुप्रयोगों के लिए एक व्यवहार्य मार्ग है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।