Apache APISIX ने WPS Office को लाखों QPS को आसानी से संभालने में सक्षम बनाया
September 28, 2021
पूर्वावलोकन
किंगसॉफ्ट और WPS ऑफिस के बारे में
किंगसॉफ्ट ऑफिस किंगसॉफ्ट की एक सहायक कंपनी है, जो चीन में स्थित एक प्रमुख सॉफ्टवेयर और इंटरनेट सेवाएं कंपनी है जो हांगकांग स्टॉक एक्सचेंज में सूचीबद्ध है। इसका प्रमुख उत्पाद — WPS ऑफिस एक ऑल-इन-वन ऑफिस सूट है जिसमें ऑफिस कार्यों को प्रबंधित करने के लिए राइटर, स्प्रेडशीट, प्रेजेंटेशन और PDF शामिल हैं। 2022 तक, WPS ऑफिस ने 494 मिलियन से अधिक मासिक सक्रिय उपयोगकर्ताओं और 1.2 बिलियन से अधिक इंस्टॉलेशन तक पहुंच बना ली है।
प्रारंभ में, किंगसॉफ्ट ने परिचालन चुनौतियों से निपटने के लिए NGINX को एक API गेटवे के रूप में उपयोग किया। मूल संस्करण में केवल आवश्यक कार्यक्षमताएं जैसे डायनामिक अपस्ट्रीम, ब्लैकलिस्ट कार्यक्षमता और वेब एप्लिकेशन फ़ायरवॉल (WAF) शामिल थीं। हालांकि, जैसे-जैसे आवश्यकताएं बढ़ीं, किंगसॉफ्ट ऑफिस ने अपनी बदलती आवश्यकताओं को बेहतर ढंग से पूरा करने वाले वैकल्पिक API गेटवे समाधानों की खोज शुरू की।
चुनौतियाँ
- पिछले सिस्टम में मूलभूत परिचालन और रखरखाव आवश्यकताओं को पूरा करने में सीमाएं थीं, जिसमें डायनामिक रूप से स्केल करने की क्षमता का अभाव था।
- सिस्टम भारी मात्रा में ट्रैफ़िक को संभालता है और इष्टतम प्रदर्शन के लिए एक मजबूत API गेटवे की आवश्यकता होती है।
- इसमें डायनामिक रूप से परिवर्तन लोड करने की क्षमता का अभाव था, जिसके लिए परिवर्तनों को प्रभावी बनाने के लिए रीलोडिंग की आवश्यकता होती थी।
परिणाम
- एक समाधान लागू किया गया जो उच्च प्रदर्शन और कम विलंबता वाले डायनामिक अपडेट प्रदान करता है, जिससे सीमलेस कस्टमाइज़ेशन और विस्तार संभव होता है।
- सिस्टम की क्षमता को लाखों प्रश्न प्रति सेकंड (QPS) को आसानी से संभालने के लिए काफी बढ़ाया गया, जिससे व्यावसायिक स्थिरता सुनिश्चित हुई।
- उच्च उपलब्धता उपायों को सफलतापूर्वक स्थापित किया गया और महत्वपूर्ण संचालन की सुरक्षा के लिए सिस्टम की सुरक्षा को बढ़ाया गया।
पृष्ठभूमि
प्रारंभिक चरणों में, किंगसॉफ्ट ऑफिस ने परिचालन समस्याओं से निपटने के लिए एक API गेटवे का उपयोग किया, और उन्होंने OpenResty और Lua पर आधारित अपना स्वयं का समाधान विकसित किया। इस समाधान ने डायनामिक अपस्ट्रीम प्रबंधन, ब्लैकलिस्ट कार्यक्षमता और वेब एप्लिकेशन फ़ायरवॉल (WAF) की सुविधाएं सक्षम कीं। हालांकि, 1.0 चरण में कुछ कमियां थीं।
उदाहरण के लिए,
- केवल अपस्ट्रीम डायनामिक था
- नए डोमेन नामों को अपडेट और प्रतिबिंबित करने के लिए रीलोडिंग की आवश्यकता होती थी, जिससे टीम को प्रतिदिन नए डोमेन और रूट बदलने का बोझ उठाना पड़ता था
- अंतर्निहित आर्किटेक्चर को कुशल प्रबंधन और परिचालन के लिए डिज़ाइन किया गया था, जो सीमित सुविधाओं और स्केलेबिलिटी के साथ सरल था
साथ ही, जैसे-जैसे उनका व्यवसाय बढ़ा, किंगसॉफ्ट को API गेटवे की कार्यक्षमता के लिए बढ़ती संख्या में आवश्यकताएं होने लगीं। परिणामस्वरूप, उन्होंने एक नए API गेटवे समाधान की तलाश शुरू की।
किंगसॉफ्ट ऑफिस ने APISIX को क्यों चुना?
2019 के अंत में, जब किंगसॉफ्ट ऑफिस ने API गेटवे उत्पादों पर शोध शुरू किया, तो कई लोकप्रिय विकल्प उपलब्ध थे। हालांकि, बाद के परीक्षणों से पता चला कि उनके द्वारा मूल्यांकन किए गए API गेटवे का प्रदर्शन उनकी आवश्यकताओं को पूरा करने में कमी थी।
एक अधिक मजबूत समाधान की तलाश में, किंगसॉफ्ट ऑफिस ने अपने शोध को और गहराई से किया, और तभी उन्हें Apache APISIX मिला।
कुछ अन्य API गेटवे कॉन्फ़िगरेशन सेंटर के रूप में PostgreSQL पर निर्भर थे, जिसका अर्थ था कि रूट अपडेट केवल गैर-इवेंट-ड्रिवन तरीकों से ही संभव था, जिसके लिए प्रत्येक नोड पर रूट को रीलोड करने की आवश्यकता होती थी।
किंगसॉफ्ट ऑफिस ने APISIX को तीन मुख्य विचारों के आधार पर चुना: प्रदर्शन, तकनीकी आर्किटेक्चर और समुदाय।

1. अत्यधिक उच्च प्रदर्शन
Apache APISIX अन्य API गेटवे की तुलना में सर्वश्रेष्ठ प्रदर्शन प्रदान करता है, जिसमें एकल-कोर QPS 18,000 और औसत विलंब 0.2 ms है। किंगसॉफ्ट ऑफिस के भीतर कठोर परीक्षण और बेंचमार्किंग ने लगातार APISIX के श्रेष्ठ प्रदर्शन की पुष्टि की, जिससे किंगसॉफ्ट ऑफिस उच्च लोड को संभाल सकता है और इष्टतम उपयोगकर्ता अनुभव प्रदान कर सकता है।
2. स्केलेबल, लचीला और उच्च-उपलब्धता वाला आर्किटेक्चर
APISIX, etcd को अपने कॉन्फ़िगरेशन सेंटर के रूप में लेता है, जो रूट, प्लगइन और अन्य महत्वपूर्ण घटकों के कुशल और डायनामिक प्रबंधन की अनुमति देता है। यह वितरित की-वैल्यू स्टोर APISIX की लचीलापन को बढ़ाता है, जिससे सीमलेस अपडेट संभव होता है और मैन्युअल कॉन्फ़िगरेशन परिवर्तनों से जुड़े परिचालन ओवरहेड को कम करता है। Apache APISIX के साथ, किंगसॉफ्ट ऑफिस इवेंट-ड्रिवन दृष्टिकोण का लाभ उठा सकता है, जिससे व्यक्तिगत नोड्स पर मैन्युअल रूट रीलोडिंग की आवश्यकता समाप्त हो जाती है।
3. सक्रिय और सहायक समुदाय
किंगसॉफ्ट ऑफिस ने नवाचार को बढ़ावा देने और संसाधन प्रदान करने में एक जीवंत और सहायक समुदाय के मूल्य को पहचाना। APISIX में एक सक्रिय और संलग्न समुदाय है जो इसके विकास में योगदान देता है, सर्वोत्तम प्रथाओं को साझा करता है और सहायता प्रदान करता है। यह समुदाय-संचालित वातावरण नवाचार और सहयोग को बढ़ावा देता है, जो तकनीकी प्रगति के अग्रिम में रहने के किंगसॉफ्ट ऑफिस के प्रतिबद्धता के साथ पूरी तरह से मेल खाता है।
किंगसॉफ्ट ऑफिस में अनुकूलित etcd आर्किटेक्चर
किंगसॉफ्ट ऑफिस में मूल आर्किटेक्चर में कई NGINX स्थिर कॉन्फ़िगरेशन होने के कारण, टीम ने APISIX के CLI का उपयोग करके स्वचालित रूप से कॉन्फ़िगरेशन जेनरेट करने का विकल्प नहीं चुना। इसके बजाय, उन्होंने Apache APISIX को एक फॉलबैक के रूप में उपयोग किया और धीरे-धीरे कॉन्फ़िगरेशन को APISIX में माइग्रेट किया, जिससे एक सहज संक्रमण सुनिश्चित हुआ।
कार्यान्वयन के दौरान, किंगसॉफ्ट ऑफिस टीम ने APISIX के आधार पर कुछ अनुकूलन किए, जैसे etcd आर्किटेक्चर को अनुकूलित करना। आम तौर पर, कंपनियों के भीतर API गेटवे आर्किटेक्चर में कई मशीनें शामिल होती हैं, कभी-कभी सैकड़ों की संख्या में। इसके अलावा, कार्यकर्ताओं की संख्या मशीन लोड को बढ़ाती है।
परिणामस्वरूप, जब कई मशीनें एक ही कुंजी की निगरानी करती हैं, तो etcd पर महत्वपूर्ण दबाव पड़ता है। ऐसी परिस्थितियों में, डेटा स्थिरता के लिए, etcd को सभी इवेंट्स को सुनने वाले अनुरोधों को वापस करने की आवश्यकता होती है, इससे पहले कि नए अनुरोधों को संसाधित किया जाए। जब कई मशीनें एक साथ सुन रही होती हैं, तो etcd टाइमआउट और ओवरलोड त्रुटियों जैसी समस्याएं होती हैं।
इस समस्या को हल करने के लिए, किंगसॉफ्ट ऑफिस ने एक etcd प्रॉक्सी विकसित किया, जैसा कि नीचे दिए गए आर्किटेक्चर डायग्राम के दाईं ओर दिखाया गया है। Apache APISIX और etcd के बीच काम करते हुए, etcd प्रॉक्सी कुंजियों की निगरानी करता है और परिणाम प्राप्त करने के बाद Apache APISIX को परिणाम वापस करता है। APISIX संस्करण 3.2 के रिलीज़ के बाद से, कनेक्शन की संख्या अब संसाधनों से प्रभावित नहीं होती है, जिससे etcd पर दबाव काफी कम हो गया है।

इसके अलावा, जैसे-जैसे कंपनी का आकार बढ़ता है, रूट की संख्या भी बढ़ती है। जब रूट को बार-बार अपडेट किया जाता है, तो गेटवे में CPU उपयोग और पैकेट लॉस में वृद्धि होती है। किंगसॉफ्ट ऑफिस टीम ने Lua कोड वातावरण के भीतर table.sort के उपयोग की अक्षमता से जुड़ी समस्या को ठीक किया। Apache APISIX ने भी अपडेटेड संस्करणों में इस समस्या को हल किया है।
APISIX अपनाने के बाद लाभ
1. लाखों QPS को आसानी से संभालना
व्यावसायिक स्तर पर, किंगसॉफ्ट ऑफिस एक जटिल पारिस्थितिकी तंत्र संचालित करता है जिसमें हजारों सेवाएं शामिल हैं जो सावधानीपूर्वक कंटेनराइज्ड और एक आंतरिक क्लाउड-नेटिव प्लेटफॉर्म पर तैनात की गई हैं। इस गतिशील वातावरण में, Apache APISIX विभिन्न सेवाओं और उपयोगकर्ताओं के बीच सीमलेस संचार और इंटरैक्शन को सुविधाजनक बनाने वाले केंद्रीय गेटवे के रूप में एक महत्वपूर्ण भूमिका निभाता है। विशेष रूप से मिडिल प्लेटफॉर्म विभाग की मांगों को पूरा करने के लिए तैयार, APISIX लाखों प्रश्न प्रति सेकंड को आसानी से संभालता है, जिसमें उल्लेखनीय सटीकता और विश्वसनीयता होती है।
2. स्केलेबल और लचीला API प्रबंधन हासिल किया
APISIX को अपनाकर, किंगसॉफ्ट ऑफिस ने अपने पिछले API प्रबंधन समाधानों की सीमाओं को पार कर लिया, और स्केलेबिलिटी और लचीलापन हासिल किया जो भविष्य के विकास और नवाचार के लिए आधार प्रदान करता है।
APISIX में माइग्रेट करके, किंगसॉफ्ट ऑफिस ने अपने API इंफ्रास्ट्रक्चर को तेजी से बढ़ते उपयोगकर्ता आधार और विकसित हो रहे व्यावसायिक परिदृश्य की मांगों को पूरा करने के लिए आसानी से स्केल करने की क्षमता हासिल की। APISIX का मॉड्यूलर आर्किटेक्चर मौजूदा सिस्टम और सेवाओं के साथ सीमलेस इंटीग्रेशन की अनुमति देता है, जिससे कंपनी चल रहे संचालन को बाधित किए बिना अपनी API प्रबंधन क्षमताओं को विस्तारित कर सकती है।
इसके अलावा, APISIX ने किंगसॉफ्ट ऑफिस को API प्रबंधन में अद्वितीय लचीलापन प्रदान किया, जिसमें रूटिंग, ट्रैफ़िक और प्रमाणीकरण नीतियों पर सूक्ष्म नियंत्रण प्रदान किया गया। यह नई लचीलापन कंपनी को विशिष्ट उपयोग मामलों के लिए अपनी API प्रबंधन रणनीतियों को अनुकूलित करने में सक्षम बनाता है, जिससे प्रदर्शन को अनुकूलित किया जाता है और उपयोगकर्ता अनुभव को बढ़ाया जाता है।
3. सिस्टम की उच्च उपलब्धता और सुरक्षा में सुधार
इसके अलावा, किंगसॉफ्ट ऑफिस ने सिस्टम की उच्च उपलब्धता और सुरक्षा को बढ़ाने के लिए कई सुविधाएं लागू की हैं, जिसमें कई डेटा सेंटरों में आनुपातिक ट्रैफ़िक वितरण और एक-क्लिक रूट-बैनिंग क्षमता शामिल है।
अनुपात कॉन्फ़िगर करके, विभिन्न डेटा सेंटरों में ट्रैफ़िक या अनुरोधों का वितरण पूर्वनिर्धारित अनुपात के आधार पर अनुकूलित किया जाता है। यह सिस्टम संसाधनों का कुशल उपयोग सुनिश्चित करता है और एकल डेटा सेंटर में विफलताओं के प्रभाव को कम करता है, जिससे लोड बैलेंसिंग, सिस्टम उपलब्धता में सुधार और फॉल्ट टॉलरेंस में वृद्धि होती है।
किसी विशिष्ट रूट में समस्याएं होने या अस्थायी ब्लॉकिंग की आवश्यकता होने पर, प्रशासक तुरंत एक-क्लिक रूट-बैनिंग सुविधा का उपयोग करके उस विशिष्ट रूट के लिए ट्रैफ़िक ट्रांसमिशन या पहुंच को तुरंत रोक सकते हैं। यह सिस्टम को दुर्भावनापूर्ण गतिविधियों से बचाता है और नेटवर्क ट्रैफ़िक और रूट प्रबंधन के लिए एक सीमलेस और सुविधाजनक दृष्टिकोण प्रदान करता है।
निष्कर्ष
व्यावहारिक अनुप्रयोग के दौरान, किंगसॉफ्ट ऑफिस टीम ने Apache APISIX की असाधारण लचीलापन और शक्ति की खोज की। APISIX की स्थिरता और विश्वसनीयता ने किंगसॉफ्ट ऑफिस का विश्वास जीता है, जबकि प्लगइन संशोधनों और कस्टम कंपाइलेशन को समायोजित करने की इसकी क्षमता अनुकूलित कस्टमाइज़ेशन के लिए पर्याप्त जगह प्रदान करती है।
टीम APISIX के उत्पाद परिवर्तनों को ध्यान से ट्रैक करती है, यह सुनिश्चित करती है कि उनका संस्करण नवीनतम अपडेट के साथ सिंक्रनाइज़ रहे। APISIX के साथ, किंगसॉफ्ट ऑफिस लाखों प्रश्न प्रति सेकंड को आसानी से संभालता है, जो समाधान की मजबूती और तेजी से बढ़ते उपयोगकर्ता आधार की मांगों को पूरा करने की इसकी क्षमता को प्रदर्शित करता है। Apache APISIX को अपनाकर, किंगसॉफ्ट ऑफिस ने अपनी बदलती आवश्यकताओं को प्रभावी ढंग से पूरा किया, परिचालन दक्षता को बढ़ाया और गतिशील नेटवर्किंग उत्पादों के परिदृश्य में भविष्य के विकास के लिए खुद को स्थापित किया।
