Amazon Lambda का उपयोग करते समय आपको Apache APISIX की आवश्यकता क्यों है
Xiaolan Cheng
December 9, 2022
सर्वरलेस और अमेज़न लैम्ब्डा
सर्वरलेस क्या है?
सर्वरलेस कंप्यूटिंग, या सरल रूप में सर्वरलेस, वर्तमान सॉफ्टवेयर बाजार में एक लोकप्रिय ट्रेंड है। अधिक से अधिक कंपनियां अपने ऑपरेशंस को पारंपरिक सर्वर-उन्मुख आर्किटेक्चर से तेज़ और लागत-प्रभावी सर्वरलेस आर्किटेक्चर में माइग्रेट कर रही हैं।
सर्वरलेस आर्किटेक्चर एक ऐसा तरीका है जिसमें इंफ्रास्ट्रक्चर को मैनेज किए बिना एप्लिकेशन बनाए और चलाए जाते हैं। यह इंफ्रास्ट्रक्चर को क्लाउड वेंडर्स या कुछ सेल्फ-डिप्लॉयड सर्वरलेस प्लेटफॉर्म पर डिप्लॉय करता है ताकि इंजीनियर्स एप्लिकेशन के बिजनेस लॉजिक पर ध्यान केंद्रित कर सकें, बिना इंफ्रास्ट्रक्चर के निर्माण, प्रबंधन और स्केलिंग पर अधिक प्रयास खर्च किए। बिग-3 क्लाउड वेंडर्स (अमेज़न वेब सर्विसेज, माइक्रोसॉफ्ट एज़्योर और गूगल क्लाउड) सर्वरलेस सेवाओं को प्रदान करने में बहुत रुचि दिखाते हैं। उदाहरण के लिए, अमेज़न लैम्ब्डा AWS (अमेज़न वेब सर्विसेज) के लिए मुख्य सर्वरलेस कंप्यूटिंग सेवा है।
नीचे दिए गए चित्र में दिखाए गए अनुसार, पारंपरिक डिप्लॉयमेंट विधि से अलग, अमेज़न लैम्ब्डा का उपयोग करके, आपको केवल सोर्स फ़ाइल अपलोड करनी होती है, एक्सेक्यूशन एनवायरनमेंट चुनना होता है और इसे एक्सेक्यूट करना होता है। फिर आप ऑपरेशन का परिणाम प्राप्त कर सकते हैं। सर्वर में अपलोड और कंपाइल करने के चरणों से मुक्त हो जाते हैं। इस प्रक्रिया में, सर्वर डिप्लॉयमेंट, रनटाइम इंस्टॉलेशन और कंपाइलेशन सभी अमेज़न सर्वरलेस कंप्यूटिंग प्लेटफॉर्म द्वारा प्रबंधित और एक्सेक्यूट किए जाते हैं। इंजीनियर्स को केवल अपने सोर्स कोड और एक्सेक्यूशन एनवायरनमेंट के संबंधित कॉन्फ़िगरेशन को बनाए रखने की आवश्यकता होती है।
इससे संबंधित तकनीक BaaS (बैकएंड एज़ ए सर्विस) है, जिसका अर्थ है कि हम अब सर्वर-साइड कंपोनेंट्स को लिखने और प्रबंधित करने की आवश्यकता नहीं है और एप्लिकेशन के सभी हिस्सों को पूरी तरह से आउटसोर्स करते हैं। सर्वरलेस एक नया होस्टिंग एनवायरनमेंट है जिसमें कोड चलता है।

हमें सर्वरलेस की आवश्यकता क्यों है?
सर्वरलेस के कई फायदे हैं:
- डेवलपर्स के लिए, सर्वरलेस अधिक अनुकूल है। यह सर्वर प्रबंधन के विवरण को अमूर्त कर सकता है, जिससे इंजीनियर्स बिजनेस कोड पर ध्यान केंद्रित कर सकते हैं।
- लागत के मामले में, सर्वरलेस पे-पर-यूज़ेज विधि पर चलता है।
- प्रदर्शन के मामले में, यह अनुरोध ट्रैफ़िक के अनुसार ऑटोस्केल कर सकता है।
- यह फ़ंक्शन को आवंटित मेमोरी की मात्रा को समायोजित करके कोड एक्सेक्यूशन और प्रतिक्रिया समय को भी अनुकूलित कर सकता है।
सर्वरलेस का उपयोग करते समय हमें API गेटवे की आवश्यकता क्यों है?
सर्वरलेस की कुछ कमजोरियां भी हैं:
- फ़ंक्शन URL एप्लिकेशन में हार्डकोडेड होता है।
- जटिल प्राधिकरण और प्रमाणीकरण लॉजिक।
- क्लाउड वेंडर पर अत्यधिक निर्भरता: यदि क्लाउड वेंडर डाउन हो जाता है, तो सेवा भी डाउन हो जाती है।
- विभिन्न क्लाउड वेंडर्स के पास बहुत अलग योजनाएं होती हैं, जिनका कोई विशिष्ट मानक नहीं होता है, जिससे एक से दूसरे में माइग्रेट करना आमतौर पर महंगा होता है।
API गेटवे इन समस्याओं को स्वाभाविक रूप से हल कर सकते हैं। एक साथ मिलकर, सर्वरलेस एक मजबूत आर्किटेक्चर बन सकता है। नीचे दिया गया चित्र बताता है कि कैसे अमेज़न सर्वरलेस सेवाओं के साथ एक सरल वेब सेवा को जल्दी से असेंबल किया जा सकता है। API गेटवे प्राधिकरण, रूट परिभाषा और प्रॉक्सी अनुरोध प्रदान करने में महत्वपूर्ण है। Apache APISIX को उदाहरण के रूप में लेते हुए, यह AWS और Azure के लिए सर्वरलेस समर्थन प्रदान करता है। आप एप्लिकेशन में फ़ंक्शन URL को हार्डकोड करने के बजाय एक सर्वरलेस प्लगइन को सक्षम करने के लिए एक रूट परिभाषित कर सकते हैं। फ़ंक्शन URI को हॉट-अपडेट करने की लचीलापन के साथ, विभिन्न FaaS (फ़ंक्शन एज़ ए सर्विस) क्लाउड सेवा प्रदाताओं को अपडेट करना आसान हो जाता है। इसके अलावा, यह दृष्टिकोण जटिल प्राधिकरण और प्रमाणीकरण के दर्द को कम करता है।

Apache APISIX
Apache APISIX Apache Software Foundation (ASF) के तहत एक क्लाउड-नेटिव API गेटवे है। डायनामिक, रियल-टाइम और हाई-परफॉर्मेंस होने के कारण, APISIX लोड बैलेंसिंग, डायनामिक अपस्ट्रीम, कैनरी रिलीज़, सर्किट ब्रेकिंग, प्रमाणीकरण और ऑब्जर्वेबिलिटी जैसी सुविधाएं प्रदान करता है। हम Apache APISIX का उपयोग सेवाओं के बीच पारंपरिक उत्तर-दक्षिण और पूर्व-पश्चिम ट्रैफ़िक को संभालने के लिए कर सकते हैं। साथ ही, इसे K8s इन्ग्रेस कंट्रोलर के रूप में भी उपयोग किया जा सकता है। APISIX बिल्ट-इन प्लगइन्स के माध्यम से अपने इकोसिस्टम का विस्तार करता है, जो API गेटवे के विभिन्न उपयोग परिदृश्यों को कवर करता है, जैसे प्रमाणीकरण, सुरक्षा, ऑब्जर्वेबिलिटी, ट्रैफ़िक प्रबंधन, मल्टी-प्रोटोकॉल एक्सेस, आदि। बेशक, इसमें कई सर्वरलेस-संबंधित प्लगइन्स भी शामिल हैं।
aws-lambda प्लगइन
aws-lambda प्लगइन AWS लैम्ब्डा को APISIX के साथ एक डायनामिक अपस्ट्रीम के रूप में एकीकृत करता है ताकि किसी विशिष्ट URI के लिए सभी अनुरोधों को AWS क्लाउड पर प्रॉक्सी किया जा सके। जब सक्षम होता है, तो प्लगइन कॉन्फ़िगर किए गए URI के लिए चल रहे अनुरोध को समाप्त करता है और क्लाइंट की ओर से AWS लैम्ब्डा गेटवे URI पर एक नया अनुरोध शुरू करता है। यह नया अनुरोध पहले से कॉन्फ़िगर किए गए प्राधिकरण विवरण, अनुरोध हेडर, बॉडी और पैरामीटर्स (सभी तीन मूल अनुरोध से पास किए गए) को ले जाता है। यह प्रतिक्रिया को हेडर, स्टेटस कोड और बॉडी के साथ क्लाइंट को वापस भेजता है जिसने APISIX के साथ अनुरोध शुरू किया था। यह प्लगइन AWS API कुंजी और AWS IAM सीक्रेट्स के माध्यम से प्राधिकरण का समर्थन करता है।
अधिक जानकारी के लिए APISIX या इस ब्लॉग को देखें।
Apache APISIX में सर्वरलेस-संबंधित प्लगइन्स
अमेज़न लैम्ब्डा के अलावा, Apache APISIX Azure फ़ंक्शन, Lua फ़ंक्शन और Apache OpenWhisk जैसे सर्वरलेस-संबंधित इकोसिस्टम के साथ एकीकरण का समर्थन करता है और संबंधित सर्वरलेस प्लगइन्स प्रदान करता है।
तालिका 1 Apache APISIX सर्वरलेस संबंधित प्लगइन
| प्लगइन नाम | विवरण |
|---|---|
| serverless | उपयोगकर्ता सर्वरलेस प्लगइन के माध्यम से कस्टम Lua स्क्रिप्ट अपलोड कर सकते हैं और कॉन्फ़िगरेशन के अनुसार कोड एक्सेक्यूशन चरण निर्दिष्ट कर सकते हैं। उदाहरण के लिए, एक्सेस चरण में अनुरोधों पर एक्सेस कंट्रोल करना, हेडर फ़िल्टर और बॉडी फ़िल्टर चरणों में प्रतिक्रिया हेडर या प्रतिक्रिया बॉडी को संशोधित करना, लॉग चरण में व्यक्तिगत लॉग प्रिंट करना, आदि। साथ ही, चूंकि सर्वरलेस प्लगइन हॉट-रिलोडेड है, संशोधन बिना Apache APISIX को रीस्टार्ट किए तुरंत प्रभावी हो सकते हैं। |
| azure-functions | APISIX को Azure सर्वरलेस फ़ंक्शन के साथ एक डायनामिक अपस्ट्रीम के रूप में एकीकृत करने के लिए उपयोग किया जाता है ताकि किसी विशिष्ट URI के लिए सभी अनुरोधों को Microsoft Azure क्लाउड पर प्रॉक्सी किया जा सके। जब सक्षम होता है, तो azure-functions प्लगइन कॉन्फ़िगर किए गए URI के लिए चल रहे अनुरोध को समाप्त करता है और क्लाइंट की ओर से Azure फ़ंक्शन्स पर एक नया अनुरोध शुरू करता है। नया अनुरोध पहले से कॉन्फ़िगर किए गए प्राधिकरण विवरण, अनुरोध हेडर, बॉडी और पैरामीटर्स (सभी तीन मूल अनुरोध से पास किए गए) को ले जाता है। फिर, यह प्रतिक्रिया को हेडर, स्टेटस कोड और बॉडी के साथ क्लाइंट को वापस भेजता है जिसने APISIX के साथ अनुरोध शुरू किया था। |
| openwhisk | APISIX को ओपन-सोर्स डिस्ट्रीब्यूटेड सर्वरलेस प्लेटफॉर्म Apache OpenWhisk के साथ एकीकृत करने के लिए उपयोग किया जाता है। जब सक्षम होता है, तो प्लगइन कॉन्फ़िगर किए गए URI के लिए चल रहे अनुरोध को समाप्त करता है और क्लाइंट की ओर से OpenWhisk के API होस्ट एंडपॉइंट पर एक नया अनुरोध शुरू करता है, और openwhisk प्लगइन प्रतिक्रिया जानकारी को क्लाइंट को वापस भेजता है। |
| openfunction | APISIX को ओपन सोर्स डिस्ट्रीब्यूटेड सर्वरलेस प्लेटफॉर्म CNCF OpenFunction के साथ एक डायनामिक अपस्ट्रीम के रूप में एकीकृत करने के लिए उपयोग किया जाता है। जब सक्षम होता है, तो प्लगइन कॉन्फ़िगर किए गए URI के लिए चल रहे अनुरोध को समाप्त करता है और क्लाइंट की ओर से OpenFunction फ़ंक्शन पर एक नया अनुरोध शुरू करता है, और फिर openfunction प्लगइन प्रतिक्रिया जानकारी को क्लाइंट को वापस भेजता है। |

सारांश
हाल के वर्षों में, माइक्रोसर्विस आर्किटेक्चर के उभरने के साथ, सब कुछ क्लाउड की ओर माइग्रेट हो रहा है, और कई क्लाउड सेवा प्रदाता सर्वरलेस-संबंधित उत्पाद भी लॉन्च कर रहे हैं। सर्वरलेस-आधारित विकास एक बहुत ही सुविधाजनक विकास मॉडल बन गया है। क्लाउड-नेटिव ट्रेंड्स के साथ कदम मिलाते हुए, APISIX सर्वरलेस, azure-functions, openwhisk और openfunction प्लगइन्स प्रदान करके सर्वरलेस कंप्यूटिंग का समर्थन करता है।
यदि आप API गेटवे और इसकी सर्वरलेस सुविधाओं के बारे में अधिक जानना चाहते हैं, तो हमसे https://api7.ai/contact पर संपर्क करें।