Apache APISIX 3.0: ओपन सोर्स API गेटवे के 11 मुख्य आकर्षण

Ming Wen

Ming Wen

September 22, 2022

Products

ओपन सोर्स API गेटवे Apache APISIX का संस्करण 3.0 आ रहा है! हमने संक्षिप्त अवलोकन देने के लिए 11 आवश्यक सुविधाओं का चयन किया है।

API गेटवे लंबे समय से एक आवश्यक घटक के रूप में कार्य कर रहा है। यह दर सीमित करने, प्रमाणीकरण (जैसे, API को सुरक्षित करने के लिए Keycloak का उपयोग), और अवलोकन जैसे विभिन्न कार्यों को व्यावसायिक स्तर पर प्रदान करने के लिए प्रतिबद्ध है।

API गेटवे Apache APISIX

Apache APISIX का जन्म क्लाउड-नेटिव वातावरण और माइक्रोसर्विसेज में नई समस्याओं को हल करने में उद्यमों की मदद करने के लिए हुआ था। उदाहरण के लिए, यह पूरी तरह से डायनामिक सुविधा और एक बार में संशोधन के माध्यम से व्यावसायिक ट्रैफिक का स्वचालित स्केलिंग प्रदान करता है, जिससे क्लस्टर प्रबंधन को अधिक सुविधाजनक बनाया जा सकता है।

इसलिए, APISIX के आर्किटेक्चरल डिज़ाइन में, डेटा प्लेन और कंट्रोल प्लेन को अलग किया गया है ताकि पूरी तरह से डायनामिक और क्लस्टर प्रबंधन प्राप्त किया जा सके, जो मुख्य रूप से etcd घटकों द्वारा पूरा किया जाता है।

Apache APISIX आर्किटेक्चर

APISIX रूटिंग-संबंधित और प्लगइन-संबंधित कॉन्फ़िगरेशन को etcd में संग्रहीत और प्रबंधित करता है। जैसा कि ऊपर दिए गए चित्र में दिखाया गया है, Admin API (कंट्रोल प्लेन) से कॉन्फ़िगरेशन etcd में संग्रहीत होते हैं, जबकि बाईं ओर का डेटा प्लेन मुख्य रूप से etcd में परिवर्तनों की निगरानी करता है। डेटा प्लेन कॉन्फ़िगरेशन फ़ाइलों को संशोधित किए बिना तेजी से परिवर्तनों का पता लगा सकता है।

लेकिन केवल इन समस्याओं को हल करना पर्याप्त नहीं है। अपस्ट्रीम और डाउनस्ट्रीम दोनों से अनुरोध प्राप्त करने वाले मिडलवेयर के रूप में, API गेटवे उद्यम आर्किटेक्चर में ट्रैफिक प्रवेश और सेवा परतों के बीच कनेक्शन के रूप में एक महत्वपूर्ण स्थान रखता है। API गेटवे की भूमिका डेटाबेस से अलग है, जो केवल उपयोगकर्ता के व्यावसायिक स्तर से अनुरोध प्राप्त करता है।

व्यावसायिक स्तर की आवश्यकताओं के अलावा, API गेटवे में कस्टमाइज़ेशन और एकीकरण की भी आवश्यकताएं होती हैं। इसलिए, APISIX का उपयोग करते समय डेवलपर्स के लिए कस्टम विकास को आसान बनाना एक और महत्वपूर्ण समस्या है जिसे APISIX हल करता है, जिससे डेवलपर्स के लिए कोडिंग की दहलीज कम हो जाती है।

APISIX में, प्लगइन्स मुख्य रूप से Lua के माध्यम से विकसित किए जाते हैं, और LuaJIT (Lua के लिए एक Just-In-Time कंपाइलर) का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि संकलित कोड का प्रदर्शन पर्याप्त रूप से अच्छा हो।

यदि आप Lua से परिचित नहीं हैं, तो आप Plugin Runner का उपयोग कर सकते हैं, जो आपको APISIX प्लगइन्स को उन प्रोग्रामिंग भाषाओं में विकसित करने की अनुमति देता है जिनसे आप परिचित हैं। हमने APISIX में Wasm को भी एम्बेड किया है, और आप Wasm का उपयोग करके Wasm बाइटकोड को APISIX में चलाने के लिए संकलित कर सकते हैं। परिणामस्वरूप, उपयोगकर्ता Lua, Go, Python, Wasm, आदि का उपयोग करके APISIX पर कस्टम प्लगइन्स बना सकते हैं।

APISIX के आर्किटेक्चर और प्रदर्शन के लाभ के कारण, APISIX के वैश्विक उपयोगकर्ताओं की संख्या में उसके शुरुआत के तीन वर्षों में अपेक्षा से कहीं अधिक वृद्धि हुई है। उदाहरण के लिए, WPS, Sina Weibo, और iQiyi जैसी बड़ी टेक कंपनियां प्रतिदिन दसियों अरब API अनुरोधों को संभालने वाले उद्यम-स्तरीय उपयोगकर्ता हैं। इसके अलावा, NASA और European Factory Platform जैसे वैज्ञानिक अनुसंधान संस्थान APISIX का उपयोग कर रहे हैं।

APISIX 3.0 की 11 नई हाइलाइट्स

APISIX ने 2022 की शुरुआत में एक नया 3.0 रोडमैप प्रस्तावित किया। संस्करण 3.0 में, इसके पुनरावृत्तियों और अद्यतनों का ध्यान उपयोगिता और पारिस्थितिकी तंत्र पर होगा।

Apache APISIX 3.0 रोडमैप

APISIX 3.0 अक्टूबर 2022 के अंत में आधिकारिक रूप से जारी किया गया है। आइए रोमांचक नई हाइलाइट्स का अवलोकन करें!

1. ARM64 का पूर्ण समर्थन

ARM64 क्लाउड निर्माताओं के लिए एक बहुत ही मुख्यधारा का सर्वर आर्किटेक्चर चयन बन गया है। AWS Graviton, GCP Tau T2A से लेकर Huawei Kunpeng और अन्य उत्पादों तक, हम देख सकते हैं कि विभिन्न क्लाउड निर्माताओं ने Arm आर्किटेक्चर पर आधारित सर्वर लॉन्च करना शुरू कर दिया है। निम्नलिखित ग्राफ लोकप्रिय Arm-आधारित सर्वरों पर APISIX के प्रदर्शन का तनाव परीक्षण दिखाता है:

Apache APISIX बेंचमार्क

वर्तमान डेटा के अनुसार, Arm-आधारित सर्वरों का प्रदर्शन x86 की तुलना में थोड़ा बेहतर है। समय की तकनीकी प्रवृत्ति के अनुरूप, APISIX ने भी ARM64 पर व्यापक CI रिग्रेशन परीक्षण किया है ताकि यह सुनिश्चित किया जा सके कि उपयोगकर्ता Arm आर्किटेक्चर में APISIX चलाते समय विभिन्न कार्यों को सुचारू रूप से चला सकें।

2. AI प्लेन

Apache APISIX संस्करण 3.0 में एक AI प्लेन जोड़ता है, जो प्रदर्शन को 30% तक बढ़ाता है (तनाव परीक्षण के तहत QPS द्वारा मापा गया)। AI प्लेन डेटा प्लेन कॉन्फ़िगरेशन को गतिशील रूप से अनुकूलित करेगा, जो उपयोगकर्ताओं के रूट और प्लगइन्स पर सेटिंग्स, साथ ही लॉग मेट्रिक्स जैसे व्यापक डेटा का उपयोग करेगा। उदाहरण के लिए, निम्नलिखित तीन परिदृश्यों को AI प्लेन द्वारा स्वचालित रूप से अनुकूलित किया जा सकता है:

  1. जब मिलान आवश्यकता सरल हो (जैसे केवल uri या host शामिल हो), तो रूट मिलान प्रक्रिया को तेज करने के लिए कैश सक्षम किया जाता है।
  2. यदि कोई प्लगइन नहीं है, तो केवल अपस्ट्रीम से संबंधित कोड चलाया जाएगा।
  3. यदि केवल एक अपस्ट्रीम नोड है और कोई अन्य कॉन्फ़िगरेशन विकल्प सक्षम नहीं है, तो अपस्ट्रीम को हल्के तरीके से कॉन्फ़िगर किया जाएगा।

AI प्लेन ट्रैफिक प्रसंस्करण में नई संभावनाएं लाता है। भविष्य में, अपस्ट्रीम सेवाओं का स्वचालित वार्म-अप और सुरक्षा खतरों का पता लगाना सभी AI प्लेन के माध्यम से संसाधित किया जा सकता है।

3. gRPC क्लाइंट जोड़ना

संस्करण 3.0 में, Apache APISIX एक नया core.grpc मॉड्यूल समर्थित करेगा। हालांकि, यदि आप NGINX और OpenResty से परिचित हैं, तो आपको पता होगा कि उनका gRPC समर्थन काफी सीमित है, केवल रिवर्स प्रॉक्सी या लोड बैलेंसिंग जैसी बुनियादी सुविधाएं प्रदान करता है।

APISIX ने वर्तमान 2.x संस्करण में gRPC और HTTP प्रोटोकॉल के बीच ट्रांसकोड को पहले ही लागू कर दिया है। संस्करण 3.0 में, Apache APISIX एक नया gRPC क्लाइंट जोड़ेगा ताकि डेवलपर्स को अतिरिक्त घटकों को पेश किए बिना या सेवा प्रदाताओं को अलग HTTP इंटरफेस का उपयोग करने की आवश्यकता के बिना सीधे तीसरे पक्ष की gRPC सेवाओं को कॉल करने की अनुमति मिल सके, जिससे प्रक्रिया बहुत सरल हो जाती है।

4. Admin API का पुनर्डिज़ाइन

आज APISIX का उपयोग करते समय, आप पाएंगे कि APISIX का प्रतिक्रिया शरीर बहुत सारे अर्थहीन डेटा से मिश्रित होता है, जैसे कि कुछ etcd रिटर्न मान जो सीधे क्लाइंट को पास किए जाते हैं बिना किसी टेलरिंग के। साथ ही, पूरे प्रतिक्रिया शरीर का आर्किटेक्चरल डिज़ाइन आदर्श नहीं है, जिसमें कई अनावश्यक फ़ील्ड हैं।

APISIX 3.0 संस्करण में, प्रतिक्रिया शरीर की संरचना में सुधार किया गया है। इसके अलावा, नया डिज़ाइन समग्र अनुरोध प्रारूप और प्रतिक्रिया शरीर को अधिक RESTful बनाता है, जिससे उपयोगकर्ताओं के लिए नवीनतम संस्करण के Admin API का उपयोग करना आसान हो जाता है। बेशक, यह प्रक्रिया आपको पैरामीटर के माध्यम से यह सेट करने की भी अनुमति देती है कि किस संस्करण के Admin API का उपयोग करना है, जिससे उपयोगकर्ताओं को असंगत संस्करणों में अपग्रेड करने के डर से मुक्त किया जाता है।

5. डेटा प्लेन (DP) और कंट्रोल प्लेन (CP) का अलगाव

APISIX ने पिछले दो वर्षों में कई सुरक्षा-संबंधित कमजोरियों का सामना किया है। अधिकांश कमजोरियों का मूल कारण यह है कि डिफ़ॉल्ट डिप्लॉयमेंट मोड में DP और CP को एक साथ तैनात किया जाता है। इसलिए, एक बार डेटा प्लेन पर सुरक्षा कमजोरी मौजूद होने पर, हमलावर DP के माध्यम से सीधे CP पर आक्रमण कर सकता है, जिससे अन्य सभी DP प्रभावित हो सकते हैं।

इसलिए, संस्करण 3.0 में, डिप्लॉयमेंट मोड कॉन्फ़िगरेशन समर्थित है, और डिफ़ॉल्ट डिप्लॉयमेंट मोड traditional है, जहां DP और CP को एक साथ तैनात किया जाता है। बेशक, नए डिप्लॉयमेंट मोड में अनुशंसा की जाती है कि आप इसे data_plane या control_plane के रूप में सेट करें ताकि उन्हें अलग किया जा सके।

जब वे अलग होते हैं, तो न केवल उपरोक्त सुरक्षा जोखिमों को हल किया जा सकता है, बल्कि DP और CP पर फ़ंक्शन पुनरावृत्तियों को भी अधिक प्रबंधनीय बनाया जा सकता है, जिससे वे एक दूसरे को प्रभावित नहीं करते हैं।

6. सेवा खोज समर्थन में सुधार

वर्तमान संस्करण में, APISIX ने कई सेवा खोज घटकों के एकीकरण का समर्थन किया है, जैसे Apache ZooKeeper, Consul, Nacos, और इसी तरह। लेकिन फिलहाल, ये एकीकरण सभी डेटा प्लेन पर किए जाते हैं। एक बार जब आपके पास DP पर बहुत सारे नोड्स होते हैं, तो यह निम्नलिखित सेवा खोज घटकों पर बहुत दबाव डालता है। साथ ही, उपयोगकर्ताओं के वास्तविक उत्पादन वातावरण में, वे Consul KV या DNS एकीकरण जैसे सरल एकीकरण और स्वास्थ्य जांच जैसे पूर्ण कार्यों का एकीकरण चाहते हैं।

इसलिए, APISIX 3.0 में, हमने एक सब-प्रोजेक्ट APISIX-SEED जोड़कर सेवा खोज समर्थन को कंट्रोल प्लेन स्तर पर प्राप्त करने और सेवा खोज घटक पर दबाव को कम करने के लिए एक परत जोड़ी है।

Apache APISIX with Service Discovery

7. xRPC फ्रेमवर्क जोड़ना

वर्तमान संस्करण में APISIX TCP प्रॉक्सी का समर्थन करता है, लेकिन कई बार शुद्ध TCP प्रोटोकॉल प्रॉक्सी पर्याप्त नहीं होता है। उपयोगकर्ताओं को विशिष्ट एप्लिकेशन प्रोटोकॉल के लिए प्रॉक्सी की आवश्यकता होती है, जैसे Redis प्रॉक्सी, Kafka प्रॉक्सी, आदि, क्योंकि कुछ कार्य केवल प्रोटोकॉल को एन्कोड और डिकोड करने के बाद ही लागू किए जा सकते हैं।

इसलिए, संस्करण 3.0 में, APISIX ने एक ट्रांसपोर्ट लेयर प्रोटोकॉल एक्सटेंशन फ्रेमवर्क xRPC लागू किया है जो डेवलपर्स को विशिष्ट एप्लिकेशन प्रोटोकॉल को कस्टमाइज़ करने की अनुमति देता है। xRPC के आधार पर, डेवलपर्स Lua कोड के माध्यम से अनुरोधों और प्रतिक्रियाओं को एन्कोड और डिकोड कर सकते हैं और फिर प्रोटोकॉल की सामग्री को समझने के आधार पर फॉल्ट इंजेक्शन, लॉग रिपोर्टिंग, और गतिशील रूटिंग को लागू कर सकते हैं।

xRPC फ्रेमवर्क के आधार पर, APISIX कई मुख्यधारा के एप्लिकेशन प्रोटोकॉल के लिए प्रॉक्सी कार्यान्वयन प्रदान कर सकता है। साथ ही, उपयोगकर्ता इस फ्रेमवर्क के आधार पर अपने निजी TCP-आधारित एप्लिकेशन प्रोटोकॉल का भी समर्थन कर सकते हैं, जिससे उन्हें HTTP प्रोटोकॉल प्रॉक्सी के समान सटीक ग्रैन्युलैरिटी और उच्च स्तर की एप्लिकेशन लेयर नियंत्रण प्राप्त हो सकता है। इसके अलावा, विभिन्न प्रोटोकॉल के शीर्ष पर, कुछ सामान्य कारकों को अमूर्त किया जा सकता है ताकि संबंधित प्लगइन सुविधाओं को लागू किया जा सके, जिससे अन्य प्रोटोकॉल इन सुविधाओं को साझा कर सकें।

8. ट्रांसपोर्ट लेयर प्रोटोकॉल पर अधिक अवलोकन समर्थन

APISIX ने हमेशा अवलोकन समर्थन में भारी निवेश किया है, लगभग सभी अवलोकन घटकों का समर्थन करता है, जैसे Zipkin, Apache SkyWalking, Datadog, और अधिक। विभिन्न लॉगिंग घटकों का भी समर्थन किया जाता है, लेकिन अधिकांश एप्लिकेशन लेयर में किए जाते हैं।

Apache APISIX संस्करण 3.0 में ट्रांसपोर्ट लेयर पर अधिक अवलोकन समर्थन जोड़ेगा। उदाहरण के लिए, Prometheus और विभिन्न लॉग्स के लिए समर्थन जोड़ा गया है, जिससे उपयोगकर्ताओं को एप्लिकेशन लेयर ट्रैफिक की समस्याओं का आसानी से अवलोकन करने और ट्रांसपोर्ट लेयर ट्रैफिक के संचालन स्थिति की जांच करने में सक्षम बनाया जा सकता है।

9. OpenAPI स्पेसिफिकेशन का एकीकरण

API एक ऐसा तत्व है जो विकास के पूरे जीवनचक्र को शामिल करता है, डिज़ाइन से लेकर कोडिंग, परीक्षण और डिप्लॉयमेंट तक। APISIX 3.0 में, Apache APISIX मानक OpenAPI 3.0 स्पेसिफिकेशन का समर्थन करेगा।

इसलिए, यदि आप API डिज़ाइन और परीक्षण सॉफ़्टवेयर पर APIs का प्रबंधन करते हैं, तो APISIX में डेटा को निर्यात और आयात करके प्रबंधित और बनाए रखना बहुत आसान है। साथ ही, APISIX में विभिन्न APIs को OpenAPI 3.0 स्पेसिफिकेशन के माध्यम से शिप किया जा सकता है और फिर अन्य सिस्टम में उपयोग के लिए आयात किया जा सकता है।

इसके अलावा, APISIX 3.0 Postman-संबंधित कस्टम प्रारूप (Postman Collection Format v2) का भी समर्थन करता है, जिससे दोनों के बीच डेटा स्थानांतरण संभव होता है, जिससे एकीकरण आसान हो जाता है।

10. गेटवे API और सर्विस मेश का पूर्ण समर्थन

गेटवे API का समर्थन APISIX Ingress Controller में शुरू हो गया है, और नवीनतम 1.5 रिलीज़ में लगभग सभी गेटवे API कॉन्फ़िगरेशन समर्थित हैं।

इस मामले में, APISIX Ingress को गेटवे API का उपयोग करके कॉन्फ़िगर किया जा सकता है, जिसका अर्थ है कि आप विभिन्न डेटा प्लेन के बीच स्विच कर सकते हैं। इस वर्ष के अंत तक, APISIX Ingress में गेटवे API का पूर्ण समर्थन और अतिरिक्त ट्रांसपोर्ट और एप्लिकेशन लेयर सुविधाएं होंगी।

अधिकांश सर्विस मेश समाधानों के विपरीत, APISIX का सर्विस मेश समाधान डेटा प्लेन में लाभ रखता है (APISIX के उच्च प्रदर्शन के कारण)। इसलिए, कंट्रोल प्लेन का चयन करते समय, हम चाहते हैं कि यह समुदाय में कुछ मुख्यधारा के समाधानों के साथ संगत हो। अंत में, xDS प्रोटोकॉल का उपयोग करके Istio के साथ एकीकृत करके और प्राप्त कॉन्फ़िगरेशन को APISIX के xDS कॉन्फ़िगरेशन केंद्र में लिखकर, APISIX द्वारा विशिष्ट रूटिंग नियम उत्पन्न किए जाते हैं ताकि संबंधित रूटिंग अनुरोध पूरे किए जा सकें।

यह समाधान न केवल पूरे सर्विस मेश को हल्का बनाता है, बल्कि APISIX की उच्च विस्तारशीलता के साथ कस्टम विकास और माइग्रेशन को अधिक सुविधाजनक बनाता है।

11. अधिक पारिस्थितिकी तंत्र के साथ एकीकरण

ऊपर उल्लिखित OpenAPI मानक के अलावा, संस्करण 3.0 में कई पारिस्थितिकी तंत्र प्लगइन्स जोड़े जाएंगे, जैसे OpenFunction, ClickHouse, Elasticsearch, SAML, CAS, आदि, ताकि प्रमाणीकरण, सुरक्षा, और अवलोकन के लिए अधिक समर्थन एकीकृत किया जा सके।

एक रोमांचक प्लगइन, workflow, ट्रैफिक शेड्यूलिंग के लिए उपयोग किया जाता है: हम ट्रैफिक नियंत्रण स्तर पर कुछ ग्रैन्युलर प्रसंस्करण कर सकते हैं।

curl http://127.0.0.1:9180/apisix/admin/routes/1 \ -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/hello/*", "plugins":{ "workflow":{ "rules":[ { "case": [ ["uri", "==", "/hello/rejected"] ], "actions": [ [ "return", {"code": 403} ] ] }, { "case": [ ["uri", "==", "/hello/v2/appid"] ], "actions": [ [ "limit-count", { "count": 2, "time_window": 60, "rejected_code": 429 } ] ] } ] } }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:1980": 1 } } }'

उदाहरण के लिए, जब शर्त A सत्य हो, तो एक विशिष्ट कार्रवाई करें, जब शर्त B सत्य हो, तो एक अन्य कार्रवाई करें, आदि। इस तरह, उपयोगकर्ता विभिन्न व्यावसायिक ट्रैफिक को अधिक सुविधाजनक रूप से शेड्यूल कर सकते हैं।

Apache APISIX 3.0 के साथ शुरुआत करें

अब आप GitHub रिलीज़ पेज और डाउनलोड पेज पर APISIX 3.0 की जांच कर सकते हैं!

APISIX शुरुआत से लेकर संस्करण 3.0 तक बहुत विकसित हुआ है। एक ओपन सोर्स प्रोजेक्ट को केवल प्रदर्शन और कार्यक्षमता के आधार पर नहीं आंका जा सकता है, बल्कि उपयोगकर्ताओं, डेवलपर्स, और उद्यमों के परिप्रेक्ष्य से विचार करना चाहिए कि क्या वे उत्पाद का उपयोग करके अपनी वर्तमान समस्याओं को जल्दी और प्रभावी ढंग से हल कर सकते हैं।

इस लेख में उल्लिखित हाइलाइट्स और नई सुविधाएं सभी ओपन सोर्स समुदाय के माध्यम से बनाई गई हैं। Apache APISIX विभिन्न डेवलपर्स और उद्यम उपयोगकर्ताओं से प्रतिक्रिया प्राप

Tags: