Alternative to NGINX That Makes Your Life Easier: Apache APISIX
September 15, 2022
API डिजिटल दुनिया का एक आवश्यक हिस्सा है, और API गेटवे इसकी सुरक्षा और स्थिरता की रक्षा करने की भारी जिम्मेदारी वहन करता है, क्योंकि यह API का पहला द्वार होता है। कई सॉफ्टवेयर इंजीनियर और टीमें पहले NGINX का उपयोग करते थे लेकिन NGINX की बाधाओं और प्रतिबंधों से परेशान थे। क्या इसका कोई बेहतर विकल्प है?
NGINX का एक बेहतर विकल्प Apache APISIX है, तो Apache APISIX क्या है?
Apache APISIX क्या है

Apache APISIX एक उच्च-प्रदर्शन, गतिशील, पूर्ण-ट्रैफिक API गेटवे है। Apache APISIX की चार उल्लेखनीय विशेषताएं हैं:
- Apache संपत्ति: APISIX ओपन सोर्स है और यह Apache सॉफ्टवेयर फाउंडेशन का एक शीर्ष-स्तरीय प्रोजेक्ट भी है। इसे मध्य में ओपन सोर्स लाइसेंस को बदलना असंभव है, जैसा कि ElasticSearch और MongoDB ने किया था। क्योंकि APISIX Apache सॉफ्टवेयर फाउंडेशन (ASF) से संबंधित है, यह अब किसी कंपनी या व्यक्ति का प्रोजेक्ट नहीं है।
- उच्च प्रदर्शन: APISIX OpenResty (एक NGINX वितरण) पर आधारित है, इसलिए APISIX NGINX की शक्ति को भी विरासत में लेता है।
- गतिशील: यदि NGINX एक मजबूत आधारभूत संरचना प्रदान करता है, तो OpenResty NGINX के व्यवहार को नियंत्रित करने के लिए Lua का उपयोग करके NGINX को और अधिक संभावनाएं प्रदान करता है। और APISIX, अपनी लचीलापन और अन्य सिस्टम के साथ मजबूत संबंध के साथ, एक पूरी तरह से गतिशील API गेटवे बन जाता है।

- रियल-टाइम: APISIX कॉन्फ़िगरेशन को etcd में संग्रहीत करता है। यह लाभ है कि कॉन्फ़िगरेशन परिवर्तनों को etcd RESTful API के माध्यम से रियल-टाइम में मॉनिटर और प्राप्त किया जा सकता है, क्योंकि etcd स्वयं एक वितरित KV डेटाबेस है, जिसका उपयोग Kubernetes भी कॉन्फ़िगरेशन संग्रहीत करने के लिए करता है। NGINX कॉन्फ़िगरेशन को स्टैटिक फाइलों में संग्रहीत करता है, और यदि कॉन्फ़िगरेशन अपडेट होता है, तो NGINX को रीलोड करने का समय बहुत लंबा होगा।
Apache APISIX बनाम NGINX
चूंकि हमने उल्लेख किया है कि APISIX NGINX पर आधारित है, आप पूछ सकते हैं: APISIX और NGINX में क्या अंतर है?
पहली बात यह है कि APISIX और NGINX के बीच तुलना एक समान तुलना नहीं है। आखिरकार, NGINX एक हल्का प्रॉक्सी है, और APISIX उत्पाद के कार्यों को और अधिक परिपक्व बनाने पर ध्यान केंद्रित करता है। साथ ही, इसमें अधिक सुविधाएं हैं क्योंकि APISIX NGINX पर आधारित है।
यदि आप NGINX को गेटवे के रूप में उपयोग कर रहे हैं, तो APISIX के निम्नलिखित दो लाभ आपको और अधिक गहराई से महसूस कराएंगे।
अधिक लचीला कॉन्फ़िगरेशन
NGINX के कॉन्फ़िगरेशन फाइलों की तुलना में, APISIX विभिन्न तरीकों से कॉन्फ़िगरेशन प्रदान करता है। उदाहरण के लिए:
- आप HTTP API के माध्यम से APISIX को कॉन्फ़िगर कर सकते हैं। कॉन्फ़िगरेशन etcd में लिखा जाएगा, और फिर etcd द्वारा प्रत्येक नोड पर सिंक्रनाइज़ किया जाएगा;
- आप इसे APISIX डैशबोर्ड के साथ कर सकते हैं। APISIX डैशबोर्ड में, ग्राफिकल विज़ुअलाइज़ेशन आपको कॉन्फ़िगरेशन को और अधिक स्पष्ट रूप से करने में मदद करेगा;
- यदि आप etcd जैसे स्टेटफुल स्टोरेज तरीकों का उपयोग नहीं करना चाहते हैं, तो आप K8s की तरह स्टैटिक फाइलों का उपयोग कर सकते हैं। APISIX स्थानीय YAML फाइलों से व्यक्तिगत कॉन्फ़िगरेशन प्राप्त करने का भी समर्थन करता है;
- यदि आप APISIX को K8s में डिप्लॉय करते हैं, तो आप APISIX Ingress Controller का उपयोग करके CRD द्वारा जारी कॉन्फ़िगरेशन प्राप्त कर सकते हैं;
- यदि आप APISIX को Istio के डेटा प्लेन के रूप में डिप्लॉय करते हैं, तो आप xDS को पहचान कर Istio द्वारा जारी कॉन्फ़िगरेशन भी प्राप्त कर सकते हैं।
बेहतर विस्तारितता
हालांकि NGINX ने भी NJS को डायनामिक कंट्रोल प्राप्त करने के लिए पेश किया है, यह APISIX की विस्तारितता जितना आदर्श नहीं है।
चूंकि APISIX को LuaJIT के साथ विस्तारित किया जा सकता है, यह आउट-प्रोसेस प्लगइन रनर का भी समर्थन करता है जो Go, Java, Python, Node.js आदि जैसी भाषाओं में लिखे गए बाहरी प्लगइन्स को चलाने के लिए।

इसके अलावा, APISIX 2.11 से शुरू करके, आप Wasm प्लगइन चला सकते हैं। इस फ़ंक्शन के साथ, आप APISIX में Rust, TinyGo, और अन्य भाषाओं में प्लगइन्स लिख सकते हैं और फिर उन्हें Wasm कोड में संकलित करके APISIX पर चला सकते हैं।
APISIX में Wasm प्लगइन्स और Lua प्लगइन्स को कॉन्फ़िगर करने में कार्यक्षमता में लगभग कोई अंतर नहीं दिखता है। परिणामस्वरूप, यह Lua के मूल कार्यान्वयन के समान प्रदर्शन प्राप्त कर सकता है और उच्च-स्तरीय भाषाओं की विकास दक्षता प्राप्त कर सकता है।
Apache APISIX के मुख्य लाभ क्या हैं
ऊपर वर्णित लाभ काफी अच्छे हैं, लेकिन वे APISIX के सबसे महत्वपूर्ण लाभ नहीं हैं। APISIX का सबसे बड़ा लाभ इसका पारिस्थितिकी तंत्र नेटवर्क है जो कई प्रोजेक्ट्स के साथ जुड़ा हुआ है।

- प्रमाणीकरण स्तर पर, APISIX OIDC और LDAP जैसे प्रोटोकॉल का समर्थन करता है। साथ ही, यह कई प्रमाणीकरण सेवाओं या फ्रेमवर्क्स के साथ एकीकृत हो सकता है, जैसे Keycloak, Casdoor, Casbin, OPA, आदि।
- अवलोकन स्तर पर, APISIX कई लॉग टूल्स के साथ कनेक्शन का समर्थन करता है, जैसे Clickhouse, Datadog, Splunk, Apache Kafka, Apache RocketMQ, आदि। यह Prometheus के माध्यम से समृद्ध मेट्रिक्स को भी एक्सपोज़ कर सकता है ताकि कई ट्रेसिंग सिस्टम्स का समर्थन कर सके, जैसे OpenTracing, OpenTelemetry, और Apache Skywalking।
- सेवा खोज स्तर पर, APISIX न केवल Nacos, Eureka, Consul, और Zookeeper से अपस्ट्रीम पतों को प्राप्त करने का समर्थन करता है, बल्कि DNS से भी (चाहे A/AAAA रिकॉर्ड्स या SRV रिकॉर्ड्स के माध्यम से)। इसके अलावा, यदि आप APISIX को K8s Ingress Controller के रूप में उपयोग करते हैं, तो आप Ingress संसाधन से संबंधित कॉन्फ़िगरेशन प्राप्त कर सकते हैं (APISIX K8s Gateway API स्पेसिफिकेशन का समर्थन करता है)।
वर्तमान APISIX अभी भी तेजी से विकास के चरण में है। समय के साथ, APISIX अधिक से अधिक प्रोजेक्ट्स के साथ एकीकृत होगा, सहयोग के लिए और अधिक संभावनाएं खोलेगा और मौजूदा सिस्टम्स के साथ एकीकरण के काम को बहुत सरल करेगा।
यदि आप जिस सेवा को कनेक्ट करना चाहते हैं वह APISIX प्लगइन पारिस्थितिकी तंत्र में नहीं है, तो आप सीधे मौजूदा प्लगइन्स का उपयोग करके कस्टम विकास कर सकते हैं, जिससे आपके व्यवसाय के लिए अधिक विशिष्ट कार्य प्राप्त कर सकते हैं।
आपको किस API गेटवे का चयन करना चाहिए
बेशक, एक उपयुक्त गेटवे का चयन करने के लिए, आपको अपने वास्तविक व्यवसाय स्थिति पर भी विचार करना होगा।
यदि आप पहले से ही NGINX का उपयोग व्यावसायिक एप्लिकेशन्स के सामने प्रॉक्सी के रूप में कर रहे हैं, और कुछ लॉजिक NGINX पर रखा गया है, तो APISIX आपका सबसे अच्छा विकल्प होगा। चूंकि APISIX NGINX पर आधारित है, आप अपनी आवश्यकताओं के आधार पर NGINX को APISIX पर सुचारू रूप से माइग्रेट कर सकते हैं।
यदि आपने कभी गेटवे का उपयोग नहीं किया है और अपनी टीम की स्थिति के आधार पर एक उपयुक्त ओपन-सोर्स API गेटवे प्रोजेक्ट चुनना चाहते हैं, तो आपको निम्नलिखित पहलुओं पर ध्यान केंद्रित करना होगा:
- क्या अपडेट की आवृत्ति पर्याप्त है। आप प्रत्येक प्रोजेक्ट की गतिविधि को देखकर एक अच्छी तरह से बनाए रखा गया API गेटवे प्रोजेक्ट चुन सकते हैं, क्योंकि कोई भी ऐसा प्रोजेक्ट नहीं चाहता जो नीचे की ओर जा रहा हो। आप Contributor Over Time ग्राफ के माध्यम से प्रोजेक्ट गतिविधि का अंदाजा लगा सकते हैं।
- क्या प्रोजेक्ट के कार्य पूर्ण हैं। यदि चयनित गेटवे टीम की वर्तमान और भविष्य की व्यावसायिक आवश्यकताओं को पूरा नहीं कर सकता है, और क्योंकि प्रोजेक्ट विकास कार्य को जोड़ता है (जैसे कॉन्फ़िगरेशन प्रबंधन, आंतरिक सेवाओं के साथ डॉकिंग), तो कृपया सावधानी से विचार करें।
- क्या प्रोजेक्ट के कुछ जटिल तकनीकी मेट्रिक्स अच्छा प्रदर्शन करते हैं, जैसे कि QPS, विलंबता, और मेमोरी उपयोग व्यावसायिक आवश्यकताओं को पूरा करते हैं। आम तौर पर, एक गेटवे का उल्लंघनात्मक अनुकूलन करना चुनौतीपूर्ण है। इसलिए, यदि एक गेटवे इन जटिल मेट्रिक्स को पूरा नहीं कर सकता है, तो बाद में इसे कैसे भी इटरेट किया जाए, इसमें सफलता प्राप्त करना मुश्किल होगा।
- क्या टीम में पर्याप्त कार्यबल और समय है API गेटवे को सीखने और बनाए रखने के लिए। आखिरकार, तकनीकी निर्णय लेना एक शुद्ध तकनीकी गतिविधि नहीं है।
बेशक, यदि आपने अन्य API गेटवे का उपयोग किया है, लेकिन गेटवे वर्तमान व्यावसायिक परिदृश्य को पूरा नहीं कर सकता है, तो आप Apache APISIX को अपने विकल्पों में से एक के रूप में उपयोग कर सकते हैं।
NGINX से Apache APISIX पर कैसे माइग्रेट करें
यदि आप इसे देखते हैं और अपने मौजूदा NGINX को APISIX से बदलने का निर्णय लेते हैं, तो आप बुद्धिमान हैं!
लेकिन माइग्रेट करने से पहले, आपको उन उत्पाद सुविधाओं को ताज़ा करना होगा जो आपके पास हैं या उपयोग कर रहे हैं। आमतौर पर इन सुविधाओं को तीन श्रेणियों में विभाजित किया जा सकता है:
- सीधे प्रतिस्थापित करने योग्य। APISIX उपयोगकर्ताओं को NGINX कॉन्फ़िगरेशन का सीधे उपयोग करने की अनुमति देता है, इसलिए NGINX के अधिकांश ग्लोबल कॉन्फ़िगरेशन को APISIX द्वारा पुन: उपयोग किया जा सकता है। एप्लिकेशन-स्तरीय कॉन्फ़िगरेशन के लिए, इसे APISIX Routes द्वारा प्रतिस्थापित किया जा सकता है;
- समायोजन की आवश्यकता है, जैसे मेट्रिक्स में परिवर्तन;
- अतिरिक्त विकास की आवश्यकता है
आवश्यक विकास पूरा करने के बाद, आप वास्तविक व्यावसायिक परिदृश्यों में NGINX को APISIX से धीरे-धीरे प्रतिस्थापित करेंगे। सुचारू माइग्रेशन प्रक्रिया के दौरान, आपको निम्नलिखित तीन प्रश्नों पर विचार करना होगा:
- क्लाइंट अनुरोधों को APISIX पर कैसे प्रॉक्सी करें?
- समकक्ष कॉन्फ़िगरेशन को APISIX और NGINX में कैसे डालें?
- APISIX और NGINX द्वारा एक्सपोज़ किए गए मेट्रिक्स को कैसे संभालें?
आपको उपरोक्त तीन प्रश्नों और अपने वास्तविक एप्लिकेशन वातावरण पर विचार करना होगा। अंत में, "बग्स के लिए रोलबैक प्लान" को पहले से तैयार करना न भूलें।
इस लेख के माध्यम से, मुझे विश्वास है कि आप Apache APISIX की शक्ति को समझ गए हैं। आइए Apache APISIX को अपने API गेटवे के रूप में उपयोग करने का प्रयास करें!