NGINX से APISIX – एयरलाइन गेटवे डायनेमिक्स को पुनर्परिभाषित करना

January 24, 2024

Case Study

अवलोकन

परिचय

स्काइट्रैक्स द्वारा विश्व के 5-स्टार एयरलाइन के रूप में नामित, यह प्रमुख एयरलाइन कंपनी 30 वर्षों से सुरक्षित रूप से संचालित हो रही है, जो कुल लगभग 1,900 अंतरराष्ट्रीय मार्गों को कवर करती है, जिसमें निर्धारित यात्री परिवहन, काम और स्कूल की पुनः शुरुआत के लिए चार्टर उड़ानें, और एशिया, यूरोप, अफ्रीका, उत्तरी अमेरिका और ओशिनिया आदि में यात्री उड़ानें शामिल हैं।

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

चुनौतियाँ

  • माइक्रोसर्विसेज और कंटेनराइज्ड डिप्लॉयमेंट के उदय के कारण बढ़ते NGINX इंस्टेंसेस और विविध डोमेन कॉन्फ़िगरेशन को प्रबंधित करने में कठिनाई होती है।
  • NGINX के बहुत सारे संस्करणों का सह-अस्तित्व प्लगइन्स को अपग्रेड, कंपाइल और अनुकूलित करने की जटिलता को बढ़ाता है।
  • पिछला API गेटवे केवल इस प्रमुख एयरलाइन कंपनी की मूल आवश्यकताओं को पूरा कर सकता था, लेकिन सर्किट ब्रेकर, कैनरी रिलीज़ आदि जैसी उन्नत सुविधाएं प्रदान नहीं कर सकता था।

परिणाम

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

पृष्ठभूमि

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

1. एकाधिक NGINX इंस्टेंसेस और डोमेन

इस कंपनी के भीतर, एकाधिक NGINX इंस्टेंसेस और विभिन्न डोमेन के सेट थे, जिनकी जटिलता ने प्रबंधन की कठिनाई को बढ़ा दिया। NGINX का मूल उसके कॉन्फ़िगरेशन फाइलों में निहित है। जैसे-जैसे NGINX इंस्टेंसेस की संख्या बढ़ी, केवल SCP के माध्यम से फाइलों को कॉपी करके कॉन्फ़िगरेशन प्रबंधन करना अधिक कठिन होता गया। विशेष रूप से बैकएंड में माइक्रोसर्विसेज और कंटेनराइज्ड डिप्लॉयमेंट के व्यापक उपयोग के साथ, रिवर्स प्रॉक्सी कॉन्फ़िगरेशन में लचीलापन की मांग बढ़ गई, जिससे कॉन्फ़िगरेशन स्थिरता के लिए कार्यभार में महत्वपूर्ण वृद्धि हुई।

2. विभिन्न NGINX संस्करण और प्लगइन अपग्रेड में परेशानी

ऐतिहासिक कारणों से, टीम एक साथ कई NGINX संस्करणों और कई NGINX प्लगइन्स का उपयोग कर रही थी। जबकि NGINX को अपग्रेड करने में कोई महत्वपूर्ण चुनौती नहीं थी, लेकिन विभिन्न प्लगइन्स को अपग्रेड, कंपाइल और अनुकूलित करने में कठिनाई होती थी। इनमें से कई अनौपचारिक थे, जिससे कंपाइलेशन के दौरान समस्या निवारण करना चुनौतीपूर्ण था। इसके अलावा, NGINX संस्करणों के साथ संगतता सुनिश्चित करना गारंटी नहीं था।

3. NGINX कॉन्फ़िगरेशन के लिए मानकों की कमी

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

4. आधुनिक गेटवे सुविधाओं की कमी

जबकि NGINX ने रिवर्स प्रॉक्सी और लोड बैलेंसिंग जैसी मूल उत्तर-दक्षिण गेटवे आवश्यकताओं को प्रभावी ढंग से पूरा किया, कंपनी की गतिशील व्यावसायिक आवश्यकताओं ने उन्नत सुविधाओं की आवश्यकता को बढ़ा दिया। सर्किट ब्रेकिंग, सुरक्षा नियंत्रण और कैनरी रिलीज़ जैसी सेवाओं को लागू करना केवल NGINX पर निर्भर करने में चुनौतीपूर्ण हो गया, जिससे अधिक मजबूत समाधानों की खोज की गई।

सटीक व्यावसायिक आवश्यकताओं के लिए गेटवे चयन

NGINX के साथ सामना की गई चुनौतियों को हल करने के लिए, इस प्रमुख एयरलाइन कंपनी ने एक नए गेटवे समाधान के लिए तीन प्राथमिक मूल आवश्यकताओं को सावधानीपूर्वक रेखांकित किया:

  1. प्रबंधन और कॉन्फ़िगरेशन में सरलता: उन्हें एक ऐसे समाधान की आवश्यकता है जो कई गेटवे नोड्स पर रूट और अपस्ट्रीम सेवाओं जैसे कॉन्फ़िगरेशन को आसानी से और एकीकृत रूप से प्रबंधित और डिप्लॉय करने में सुविधा प्रदान करे।
  2. API गेटवे की अधिक उन्नत सुविधाएं: नए गेटवे को आधुनिक API गेटवे व्यावसायिक आवश्यकताओं को पूरा करना चाहिए, जिसमें सर्किट ब्रेकिंग, सुरक्षा नियंत्रण और कैनरी रिलीज़ शामिल हैं।
  3. उपयोग में आसानी और कम सीखने की अवस्था: प्रबंधन लागत को कम करने के लिए, टीम उम्मीद करती है कि नया गेटवे समाधान अधिकांश मूल आवश्यकताओं को कॉन्फ़िगरेशन और लो-कोड विधियों के माध्यम से आसानी से पूरा करे।

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

OpenResty क्यों नहीं

शोध के दौरान, OpenResty को पहले विचार किया गया, जो कुछ कंपनियों द्वारा व्यापक रूप से अपनाया गया समाधान है। इसका मुख्य लाभ यह था कि कॉन्फ़िगरेशन फाइलें NGINX के साथ पूरी तरह से संगत थीं। NGINX से OpenResty में माइग्रेट करना कंपनी के लिए इतना कठिन नहीं था, हालांकि जटिल डोमेन के सेटअप मौजूद थे।

हालांकि, Kong और APISIX की तुलना में, OpenResty के ओपन-सोर्स संस्करण में व्यापक प्लगइन्स और विजुअल कॉन्फ़िगरेशन के लिए डैशबोर्ड की कमी थी। उपयोगकर्ताओं को कुछ मूल कार्यक्षमताओं को पूरा करने के लिए कोडिंग में संलग्न होना पड़ता था।

Kong क्यों नहीं

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

तनाव परीक्षणों में, APISIX ने Kong को पीछे छोड़ दिया, जिसमें प्रभावशाली प्रदर्शन दिखाया—बिना प्लगइन्स के Kong से दोगुना और रेट लिमिटिंग और Prometheus प्लगइन्स सक्षम होने पर दस गुना बेहतर। इसके अलावा, OpenResty पर आधारित APISIX ने उत्कृष्ट रूटिंग क्षमताओं का प्रदर्शन किया, जिससे टीम का आत्मविश्वास बढ़ा।

Envoy क्यों नहीं

Envoy की प्रभावशाली सुविधाओं के बावजूद, C++ भाषा और तकनीकी टीम की सीमा के कारण, विशेष रूप से सीखने की अवस्था में अधिक कठिनाई के कारण, टीम ने Envoy को पसंदीदा गेटवे समाधान के रूप में चुनने का निर्णय नहीं लिया।

अंत में, तकनीकी टीम ने APISIX को अपने नए गेटवे के रूप में चुना क्योंकि इसकी कार्यक्षमता और प्रदर्शन को मान्यता दी गई थी।

APISIX क्यों बेहतर है?

APISIX ने Kong की तुलना में दो मुख्य कारणों से बेहतर प्रदर्शन किया।

  • APISIX डैशबोर्ड

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

  • Apache ओपन-सोर्स प्रोजेक्ट

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

इसके अलावा, APISIX ने NGINX के संबंध में पहले उल्लिखित समस्याओं को प्रभावी ढंग से हल किया है।

  • APISIX कॉन्फ़िगरेशन को etcd में संग्रहीत करता है, जिससे डेवलपर्स को विभिन्न डोमेन के लिए कई APISIX नोड्स को आसानी से प्रबंधित करने की अनुमति मिलती है, एकल etcd क्लस्टर को डिप्लॉय करके।

  • APISIX में सामान्य प्लगइन्स शामिल हैं, जिनमें स्वास्थ्य जांच और अन्य मॉनिटरिंग प्लगइन्स शामिल हैं, जिससे NGINX के साथ सामना की गई संगतता और अपग्रेड संबंधी चिंताओं को दूर किया जाता है।

  • APISIX में विभिन्न सुरक्षा और ट्रैफ़िक नियंत्रण प्लगइन्स शामिल हैं, जिससे सर्किट ब्रेकिंग, सुरक्षा नियंत्रण, कैनरी रिलीज़ और अन्य सुविधाओं को आसानी से सक्षम किया जा सकता है।

कुल मिलाकर, APISIX तकनीकी टीम के लिए सबसे उपयुक्त उत्पाद के रूप में उभरा है।

NGINX से APISIX में माइग्रेशन: उन्नत लेकिन सरल समाधानों की खोज

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

इसके बजाय, APISIX डोमेन नामों के आधार पर रूट और अपस्ट्रीम को कॉन्फ़िगर करता है और इन रूट्स पर विभिन्न अतिरिक्त सुविधाओं को प्लगइन्स के माध्यम से लागू करता है। APISIX के अंतर्निहित CORS प्लगइन को अपनाकर क्रॉस-रिजन कॉन्फ़िगरेशन प्राप्त किया जा सकता है, जिससे इसे लाइन बाय लाइन कन्वर्ट करने की आवश्यकता नहीं होती है।

नीचे NGINX और APISIX में कॉन्फ़िगरेशन की कोड तुलना दी गई है।

# NGINX conf add_header 'Access-Control-Allow-Origin' $corsHost; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept,Authorization,appver'; if ($request_method = 'OPTIONS') { return 204; }
# APISIX plugins config "cors": { "allow_credential": true, "allow_headers": "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept,Authorization,appver", "allow_methods": "GET,POST,PUT,OPTIONS", "allow_origins": "https://wap.test.com,http://wap.test.com,", }, "response-rewrite": { "status_code": 204, "vars": [ [ "request_method", "==", "OPTIONS" ] ] }

NGINX और APISIX की तुलना करके, यह आसानी से पाया जा सकता है कि NGINX कॉन्फ़िगरेशन अधिक संक्षिप्त प्रतीत हो सकता है, लेकिन NGINX और CORS से अपरिचित व्यक्तियों के लिए, अंतर्निहित अर्थ को समझना इतना सीधा नहीं हो सकता है। इसके विपरीत, APISIX विभिन्न कार्यों को प्लगइन्स में एनकैप्सुलेट करता है, जिससे कॉन्फ़िगरेशन अधिक मॉड्यूलर हो जाता है। इसलिए, सुविधाओं को ढूंढना और कार्यों को समझना अधिक स्पष्ट हो जाता है। NGINX से APISIX में कॉन्फ़िगरेशन माइग्रेशन के समान उदाहरण विभिन्न परिदृश्यों के लिए मौजूद हैं, जैसे NGINX में WebSocket को कॉन्फ़िगर करना।

उपलब्धियाँ

सरलीकृत मल्टी-नोड कॉन्फ़िगरेशन प्रबंधन

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

APISIX प्लगइन्स के साथ सरलीकृत संचालन

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

इसके अलावा, APISIX में, क्रॉस-ओरिजिन रिसोर्स शेयरिंग (CORS) और WebSocket सपोर्ट जैसी सुविधाओं को प्लगइन्स का उपयोग करके सीमलेस रूप से लागू किया जा सकता है। यह दृष्टिकोण न केवल विकास प्रक्रिया को सरल बनाता है, बल्कि एयरलाइन कंपनी की चुनौतियों के अधिक परिष्कृत और कुशल समाधान में योगदान देता है।

एक व्यापक API गेटवे की स्थापना

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

पुराने कॉन्फ़िगरेशन को पुन: प्रयोज्य मॉड्यूल में बदल दिया गया

पूरे अपग्रेड प्रक्रिया के दौरान, तकनीकी टीम ने मौजूदा NGINX सेटअप में कई पुराने कॉन्फ़िगरेशन की खोज की, जिनमें से कई में अर्थहीन कॉपी-पेस्टिंग शामिल थी। यह अपग्रेड उनके पूरे उत्तर-दक्षिण गेटवे का एक व्यापक ओवरहॉल था, विशेष रूप से APISIX द्वारा प्रदान की गई कार्यक्षमताओं पर ध्यान केंद्रित किया गया, जैसे plugin_config। इन सुविधाओं ने गेटवे स्तर पर कॉन्फ़िगरेशन के मॉड्यूलर प्रबंधन और पुन: उपयोग को महत्वपूर्ण रूप से सुविधाजनक बनाया। APISIX के plugin_config और संबंधित क्षमताओं को लागू करने से न केवल कॉन्फ़िगरेशन प्रक्रिया को सरल बनाया गया, बल्कि हमारे उत्तर-दक्षिण गेटवे की समग्र दक्षता और रखरखाव क्षमता को भी बढ़ाया गया। यह अपग्रेड एक अधिक संगठित, मॉड्यूलर और पुन: प्रयोज्य कॉन्फ़िगरेशन प्रबंधन दृष्टिकोण की ओर एक महत्वपूर्ण बदलाव था।

सारांश

अप्रैल 2023 से, इस प्रमुख एयरलाइन कंपनी ने पहली बार APISIX का सामना किया, और उसी वर्ष जुलाई में उत्पादन वातावरण में NGINX से APISIX में सफलतापूर्वक माइग्रेशन किया, पूरी माइग्रेशन प्रक्रिया ने संतोषजनक परिणाम दिए हैं।

माइग्रेशन के शुरुआती चरणों में, तकनीकी टीम ने विभिन्न ऐतिहासिक कॉन्फ़िगरेशन से निपटा और यह चिंता व्यक्त की कि क्या APISIX प्लगइन्स हमारे मौजूदा NGINX की सभी कार्यक्षमताओं को पूरी तरह से दोहरा सकते हैं। हालांकि, अंतिम परिणाम ने दिखाया कि APISIX प्लगइन्स इस चुनौती को पूरा करने में पूरी तरह से सक्षम थे।

संक्षेप में, APISIX ने एक अधिक सुंदर समाधान प्रदान किया और प्रमुख एयरलाइन कंपनी को एक नए तकनीकी चरण में प्रवेश करने में मदद की। इसने NGINX में हमारे सामने आई विभिन्न समस्याओं को पूरी तरह से हल किया है और इसके समृद्ध प्लगइन सेट ने एयरलाइन कंपनी को ग्राहकों द्वारा प्रस्तुत विभिन्न नई आवश्यकताओं को आसानी से पूरा करने में सक्षम बनाया है।

Tags: