iQIYI ने Apache APISIX के साथ API Gateway नवाचार को अनलॉक किया

September 7, 2021

Case Study

अवलोकन

चुनौतियाँ

  1. बड़े ट्रैफ़िक के कारण प्रतिदिन CPU IDLE बहुत कम होने की अलर्ट आती हैं।
  2. सिस्टम आर्किटेक्चर पर बहुत सारे घटक निर्भर हैं।
  3. ऑपरेशन और रखरखाव (O&M) की लागत बहुत अधिक है।

लक्ष्य

  1. iQIYI की आवश्यकताओं के अनुरूप एक बेहतर API गेटवे चुनना।
  2. माइग्रेशन लागत को कम करना।
  3. एक सक्रिय समुदाय और स्वस्थ पारिस्थितिकी तंत्र वाला API गेटवे ढूंढना।
  4. क्लाउड-नेटिव ट्रेंड के अनुरूप एक नया API गेटवे बनाना।

परिणाम

  1. प्रदर्शन पहले से 10 गुना बेहतर हुआ, जो प्रतिदिन लाखों QPS संभालता है।
  2. 9,000 से अधिक API ऑनलाइन व्यावसायिक परियोजनाओं को आसानी से समर्थन दिया गया।
  3. चीन भर में कई साइटों और स्तरों के डेटा आपदा पुनर्प्राप्ति को सफलतापूर्वक लागू किया गया।

iQIYI के पीछे क्या हुआ?

iQIYI के वरिष्ठ R&D इंजीनियर कांग हे ने हाल ही में शंघाई में आयोजित Apache APISIX Meetup में एक भाषण दिया। वह IIG इंफ्रास्ट्रक्चर विभाग की कंप्यूटिंग क्लाउड टीम में काम करते हैं और iQIYI में गेटवे और ऑप्स कार्य के विकास के लिए जिम्मेदार हैं। आइए उनके भाषण और iQIYI के API गेटवे की कहानी को समझने के लिए Apache APISIX के बारे में जानें।

22 अप्रैल, 2010 को चीन के सबसे बड़े ऑनलाइन सर्च इंजन बैदू द्वारा स्थापित, iQIYI वर्तमान में दुनिया के सबसे बड़े ऑनलाइन वीडियो साइट्स में से एक है, जिस पर प्रतिमाह लगभग 6 अरब घंटे बिताए जाते हैं और 500 मिलियन से अधिक मासिक सक्रिय उपयोगकर्ता हैं।

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

  1. गेटवे का प्रदर्शन अब iQIYI की आवश्यकताओं को पूरा नहीं करता है, और बड़े ट्रैफ़िक के कारण प्रतिदिन CPU IDLE बहुत कम होने की अलर्ट आती हैं।
  2. सिस्टम आर्किटेक्चर पर बहुत सारे घटक निर्भर हैं।
  3. ऑपरेशन और रखरखाव (O&M) की लागत बहुत अधिक है।

इस वर्ष इस परियोजना को संभालने के बाद, कांग ने उपरोक्त समस्याओं और कठिनाइयों को हल करने के लिए समान गेटवे उत्पादों की जांच शुरू की और अंत में Apache APISIX को पाया।

Apache APISIX Kong से कैसे आगे निकलता है

Apache APISIX को चुनने से पहले, iQIYI ने Kong का उपयोग शुरू कर दिया था, लेकिन बाद में उसे छोड़ दिया।

Kong को क्यों छोड़ा?

Kong के साथ वास्तविक अभ्यास के बाद, कांग ने दिखाया कि उनकी टीम ने Kong को क्यों छोड़ा। नीचे Kong के कुछ मुख्य नुकसान दिए गए हैं।

  1. Kong के रूट ट्रैवर्सल क्वेरी का उपयोग करते हैं, जो तेज़ नहीं हैं।
  2. Kong का Postgres डेटाबेस ब्लोटेड डिप्लॉयमेंट, कम-कुशल सिंक्रनाइज़ेशन और कम उपलब्धता का कारण बनता है।
  3. कोड में कपलिंग अधिक है।

APISIX को क्यों चुना?

"हमने जांच के दौरान Apache APISIX और Kong के प्रदर्शन की तुलना की, और आश्चर्यजनक रूप से पाया कि Apache APISIX प्रदर्शन अनुकूलन के मामले में Kong से 10 गुना बेहतर था। हमने Apache APISIX की कुछ अन्य प्रमुख गेटवे उत्पादों से भी तुलना की, और Apache APISIX की प्रतिक्रिया विलंबता हमेशा अन्य उत्पादों से 50% से अधिक कम थी। इसके अलावा, Apache APISIX CPU उपयोग 70% से अधिक होने पर भी स्थिर रूप से चल सकता है। APISIX वास्तव में अद्भुत है!" कांग ने कहा।

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

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

APISIX का उपयोग करने के बाद iQIYI के API गेटवे आर्किटेक्चर में नवाचार

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

iQIYI's API Gateway Architecture Diagram

DPVS iQIYI द्वारा LVS पर आधारित विकसित एक ओपन-सोर्स प्रोजेक्ट है। Hubble मॉनिटरिंग अलार्म भी एक ओपन-सोर्स प्रोजेक्ट पर आधारित गहन कस्टम विकास है, और Consul के प्रदर्शन और उच्च उपयोगिता पर कुछ अनुकूलन किए गए हैं।

उपलब्धि 1: क्लस्टर और सेवा प्रबंधन के लिए डेटा और कंट्रोल प्लेन को सुधारा

डेटा प्लेन मुख्य रूप से फ्रंटएंड उपयोगकर्ताओं के लिए है, और LB से गेटवे तक का पूरा आर्किटेक्चर आपदा पुनर्प्राप्ति के लिए मल्टी-साइट और मल्टी-लिंक डिप्लॉयमेंट है, जिससे उपयोगकर्ता अपने निकटतम डेटा सेंटर तक पहुंच सकते हैं

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

microservice-gateway.webp

उपलब्धि 2: अधिक सुविधाएँ जोड़ी: सुरक्षा नियंत्रण, दर सीमित करना और मॉनिटरिंग

iQIYI ने Apache APISIX के अनुकूल होने के बाद API आर्किटेक्चर में कुछ बुनियादी कार्यक्षमताएं लागू कीं, जैसे दर सीमित करना, प्रमाणीकरण, अलार्म, मॉनिटर आदि।

पहला भाग HTTPS के बारे में है। सुरक्षा नियंत्रण के लिए, iQIYI गेटवे सर्वर पर किसी भी प्रमाणपत्र या कुंजी को संग्रहीत नहीं करता है, बल्कि एक समर्पित रिमोट सर्वर पर करता है। हालांकि, Kong का उपयोग करते समय इसे लागू करना मुश्किल था; इसके बजाय, iQIYI ने HTTPS ऑफलोड करने के लिए प्रीफिक्स NGINX का उपयोग किया। Apache APISIX पर माइग्रेट करने के बाद, iQIYI ने इस सुविधा को Apache APISIX पर सफलतापूर्वक लागू किया, जो लिंक पर एक और टियर ट्रांसफरिंग बचाता है

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

मॉनिटरिंग अलार्म कार्यक्षमता Apache APISIX के बिल्ट-इन प्लगइन - Prometheus का उपयोग करके प्राप्त की गई है, और संकेतक डेटा सीधे कंपनी की मॉनिटर सिस्टम को भेजा जाएगा। Apache APISIX iQIYI को लॉगिंग और ट्रेस विश्लेषण सेवाएं भी प्रदान करता है।

उपलब्धि 3: डायनामिक सेवा खोज अपडेट प्रक्रिया स्थापित की

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

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

iQIYI's dynamic service discovery updating process

उपलब्धि 4: दिशात्मक रूट क्षमता में सुधार किया

गेटवे में मल्टी-साइट डिप्लॉयमेंट है, और पहले से ही मल्टी-साइट बैकअप लिंक का एक पूरा सेट बनाया गया है। इसके अलावा, कांग यह भी सुझाव देते हैं कि उपयोगकर्ताओं को अपनी बैकएंड सेवा के लिए मल्टी-साइट निकटतम-पहुंच डिप्लॉयमेंट होना चाहिए। इस प्रकार, उपयोगकर्ता Skywalker गेटवे प्लेटफॉर्म में एक API सेवा बना सकते हैं, और कंट्रोलर सभी DC गेटवे क्लस्टर में API रूट्स को डिप्लॉय करेगा। इसके साथ ही, सेवा डोमेन का डिफ़ॉल्ट CNAME एकीकृत गेटवे डोमेन नाम पर रूट किया जाएगा।

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

iQIYI's directional routes diagram

उपलब्धि 5: मल्टी-साइट और मल्टी-लेवल आपदा सहनशीलता में सुधार किया

बड़े ट्रैफ़िक, बहुत सारे क्लस्टर और ग्राहकों के व्यापक दर्शकों को संभालने के लिए, iQIYI को निकटतम सेवा तक पहुंच और आपदा पुनर्प्राप्ति की आवश्यकता है।

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

  1. यदि सबसे दूर का बैकएंड सेवा नोड डाउन हो जाता है, तो iQIYI सेवा केंद्र और गेटवे स्वास्थ्य जांच तंत्र के माध्यम से डेड DC के सिंगल नोड कटऑफ या फेलओवर को प्राप्त कर सकता है। इस प्रकार, प्रभाव विशिष्ट सेवाओं तक सीमित होगा, जिससे कोई उपयोगकर्ता प्रभावित नहीं होगा।
  2. यदि गेटवे डाउन हो जाता है, तो iQIYI L4 DPVS के स्वास्थ्य जांच तंत्र का उपयोग करके विफल गेटवे नोड्स को काट सकता है, और प्रभाव अपेक्षाकृत छोटा होगा, जिससे कोई उपयोगकर्ता प्रभावित नहीं होगा।
  3. यदि उपरोक्त सर्किट ब्रेकर उपाय डेड नोड को ठीक नहीं कर सकते हैं, तो iQIYI एक्सट्रानेट में डोमेन नाम ग्रैन्युलैरिटी के मल्टी-नोड उपयोगिता डेली टेस्ट के माध्यम से DNS में स्वचालित फेलओवर प्राप्त कर सकता है। हालांकि, यह विधि अपेक्षाकृत धीमी है और कई अन्य सेवाओं को प्रभावित कर सकती है, और उपयोगकर्ता इसके बारे में जान सकते हैं।

iQIYI की भविष्य की योजना

APISIX के साथ एकीकरण में, iQIYI अपने व्यवसाय को बेहतर ढंग से फिट करने के लिए कुछ मुद्दों को अनुकूलित करने की कोशिश कर रहा है।

  1. कुछ निर्भर घटकों के संभावित बॉटलनेक पर विचार करते हुए, जैसे etcd, Prometheus मॉनिटर, और लॉगिंग सेवा, iQIYI हाइब्रिड डिप्लॉयमेंट विधि का उपयोग करने की योजना बना रहा है। यानी: बड़े क्लस्टर के अंदर जानकारी साझा करना और छोटे क्लस्टर को स्वतंत्र रखना। उदाहरण के लिए, महत्वपूर्ण सेवाओं को छोटे क्लस्टर के साथ डिप्लॉय किया जाएगा।

  2. Prometheus मॉनिटरिंग मेट्रिक्स के लिए अधिक संबंधित कमी और अनुकूलन किया जाएगा, विशेष रूप से DNS सेवा खोज के लिए।

कांग ने कहा, "हम आशा करते हैं कि Apache APISIX भविष्य के विकास और अपडेट में अधिक सुविधाओं का समर्थन कर सकता है और उत्कृष्ट प्रदर्शन दक्षता और स्थिरता बनाए रख सकता है।"

APISIX सपोर्ट की तलाश में हैं?

क्या आप iQIYI की तरह आत्मविश्वास के साथ अपने विकास को तेज करना चाहते हैं? APISIX सपोर्ट को अधिकतम करने के लिए, आपको API7 की आवश्यकता है। हम आपकी आवश्यकताओं के आधार पर APISIX और API प्रबंधन समाधान के लिए गहन सपोर्ट प्रदान करते हैं!

जब भी आप चाहें हमसे संपर्क करें: https://api7.ai/contact

Tags: