API Gateway बनाम Load Balancer

Beng Chen

March 3, 2023

Technology

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

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

इस लेख में, हम लोड बैलेंसर और API गेटवे की विशिष्ट विशेषताओं का परिचय देंगे और उनके अंतरों का पता लगाएंगे ताकि पाठक उनके संबंध को बेहतर ढंग से समझ सकें।

लोड बैलेंसर क्या है?

लोड बैलेंसर क्या है

लोड बैलेंसर का मुख्य कार्य कई बैकेंड सेवाओं के लिए लोड-बैलेंसिंग कार्यक्षमता प्रदान करना है, जिससे वे विभिन्न लोड-बैलेंसिंग एल्गोरिदम के आधार पर ट्रैफ़िक वितरित कर सकें। लोड बैलेंसर का इतिहास व्यापक है और इसे मोटे तौर पर निम्नलिखित चरणों में वर्गीकृत किया जा सकता है:

  • पहला चरण: इस चरण में लोड बैलेंसर आमतौर पर हार्डवेयर उपकरणों से बने होते हैं, जिनकी उच्च प्रदर्शन और उच्च विश्वसनीयता होती है, लेकिन वे लचीले नहीं होते और महंगे होते हैं।

  • दूसरा चरण: लोड बैलेंसर सॉफ्टवेयर में लागू होने लगे, जो अधिक लचीले और स्केलेबल होते हैं, और अक्सर सॉफ्टवेयर वितरण में दिखाई देते हैं, इसलिए कम महंगे होते हैं। LVS (Linux Virtual Server) इस प्रकार का एक उदाहरण है।

  • तीसरा चरण: क्लाउड कंप्यूटिंग प्रौद्योगिकी के उदय के साथ, लोड बैलेंसर के क्लाउड संस्करण भी उपलब्ध हो गए। ऐसे लोड बैलेंसर का एक महत्वपूर्ण लाभ यह है कि यह उद्यमों को कम लागत पर उच्च-प्रदर्शन लोड-बैलेंसिंग सेवाएं प्राप्त करने में मदद कर सकता है। एक और लाभ यह है कि यह क्लाउड कंप्यूटिंग की स्केलेबिलिटी और लचीलापन का लाभ उठाकर समग्र उपलब्धता को बढ़ा सकता है। क्लाउड लोड बैलेंसर के उदाहरणों में AWS का Classic Load Balancer, Application Load Balancer, और Network Load Balancer शामिल हैं।

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

API गेटवे क्या है?

API गेटवे क्या है

संक्षेप में, एक API गेटवे एक इंफ्रास्ट्रक्चर है जो API ट्रैफ़िक का प्रबंधन और फॉरवर्ड करता है, मुख्य रूप से लेयर 7 पर काम करता है। यह लोड बैलेंसर के पास नहीं होने वाली मजबूत स्केलेबिलिटी प्रदान करता है, जिसमें प्रमाणीकरण, अवलोकनशीलता, और कस्टम प्लगइन शामिल हैं। इसकी कुछ प्रमुख विशेषताएं हैं:

  • समृद्ध रूटिंग रणनीतियाँ: चूंकि API गेटवे लेयर 7 पर काम करता है, यह HTTP/HTTPS लेयर पर डेटा को पार्स कर सकता है। इसलिए, यह अनुरोध पथ, डोमेन, या हेडर जैसी शर्तों के आधार पर विभिन्न अपस्ट्रीम सर्वरों को अनुरोधों को निर्देशित कर सकता है।

  • प्रमाणीकरण: API गेटवे API स्तर पर कई प्रमाणीकरण विधियों का समर्थन करता है ताकि अनधिकृत अनुरोधों को रोका जा सके, जैसे OAuth2 और JWT। प्रमाणीकरण को व्यावसायिक तर्क से अलग रखा जा सकता है और स्वतंत्र रखा जा सकता है ताकि यह व्यावसायिक कोड के लिए गैर-आक्रामक या न्यूनतम आक्रामक हो।

  • दर सीमित करना: विभिन्न रूटिंग स्तरों पर सूक्ष्म दर सीमित करना लागू किया जा सकता है ताकि दुर्भावनापूर्ण हमलों को रोका जा सके और बैकेंड सेवा के ओवरलोड से बचा जा सके।

  • अवलोकनशीलता: अवलोकनशीलता का अर्थ है सिस्टम के बाहर से आंतरिक प्रोग्राम के चलने की स्थिति और संसाधन उपयोग को देखने की क्षमता। API गेटवे Kafka, Google Cloud Logging सेवा, Elasticsearch, आदि से लॉग को जोड़ने का समर्थन करता है, और प्रासंगिक मेट्रिक्स को prometheus, datadog, आदि से जोड़ता है।

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

वर्तमान में, बाजार में कई अलग-अलग API गेटवे उपलब्ध हैं, जैसे Apache APISIX, Kong, Tyk, Zuul, आदि। डेवलपर्स अपनी विशिष्ट आवश्यकताओं के अनुसार सबसे उपयुक्त API गेटवे का चयन कर सकते हैं।

API गेटवे और लोड बैलेंसर के बीच मुख्य अंतर

विशिष्ट फोकस क्षेत्र

API गेटवे और लोड बैलेंसर के बीच अंतर img 1

हालांकि API गेटवे और लोड बैलेंसर दोनों लेयर 4 और लेयर 7 प्रॉक्सी का समर्थन करते हैं, API गेटवे मुख्य रूप से लेयर 7 पर फोकस करता है जबकि लोड बैलेंसर मुख्य रूप से लेयर 4 पर फोकस करता है।

इसलिए, लेयर 4 पर काम करने वाले लोड बैलेंसर के कई फायदेमंद फीचर्स हैं। सबसे पहले, यह API गेटवे की तुलना में प्रोटोकॉल पार्सिंग ओवरहेड को कम करता है, जिसके परिणामस्वरूप उच्च थ्रूपुट क्षमता होती है। दूसरा, यह क्लाइंट IP एड्रेस को पारदर्शी रूप से फॉरवर्ड करने का समर्थन करता है, जबकि API गेटवे आमतौर पर क्लाइंट IP एड्रेस को HTTP हेडर के माध्यम से पास करता है।

फीचर्स की समृद्धि

API गेटवे और लोड बैलेंसर के बीच अंतर img 2

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

कस्टम विकास

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

ट्रैफ़िक वितरण के तरीके

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

उपयोग मामले

माइक्रोसर्विसेज का उपयोग मामला

माइक्रोसर्विसेज स्क्रीन

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

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

API का प्रबंधन और तैनाती

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

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

APISIX डैशबोर्ड स्क्रीनशॉट इमेज 1

APISIX डैशबोर्ड स्क्रीनशॉट इमेज 12

दूसरी ओर, पारंपरिक लोड बैलेंसर API प्रबंधन के मामले में अपेक्षाकृत कमजोर होते हैं और ऐसी समृद्ध उन्नत सुविधाओं की आवश्यकता होती है।

उच्च-प्रदर्शन नेटवर्क पहुंच

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

इसके विपरीत, लेयर 7 पर काम करने वाला API गेटवे, एकीकृत प्रवेश बिंदु के रूप में, प्रोटोकॉल पार्सिंग की आवश्यकता के कारण एक निश्चित थ्रूपुट सीमा होगी। हालांकि, नेटवर्क पहुंच के लिए लेयर 4 API गेटवे का उपयोग करना विशेष रूप से फायदेमंद नहीं है क्योंकि यह लेयर API गेटवे का फोकस नहीं है। इस लेयर पर लोड बैलेंसर के कई वर्षों के तकनीकी संचय की तुलना में, API गेटवे के लाभ काफी कम हैं।

सारांश

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

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

Tags: