मुख्य सामग्री पर जाएँ

Serverless Computing क्या है?

Serverless computing के बारे में जानें—एक ऐसा क्लाउड मॉडल जहाँ क्लाउड प्रदाता इंफ्रास्ट्रक्चर का प्रबंधन करते हैं और सॉफ्टवेयर डेवलपर्स को तेजी से एप्लिकेशन शिप करने में सक्षम बनाते हैं।
Adejumo Ridwan Suleiman
Adejumo Ridwan Suleiman

अपना निःशुल्क खाता बनाएँ

अभ्यास और ट्रैक अपनी प्रगति को।

Google के साथ जारी रखेंजारी रखकर, आप हमारी उपयोग की शर्तें, हमारी गोपनीयता नीति को स्वीकार करते हैं और यह भी कि आपका डेटा USA में संग्रहीत है।

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

इस लेख में, हम serverless computing, उसके उपयोग, और डेवलपर्स व व्यवसायों के लिए इसके लाभों की समीक्षा करेंगे। यह विषय इसलिए महत्वपूर्ण है क्योंकि serverless computing का बाजार आकार 2022 में $9 मिलियन से अधिक था और अगले दस वर्षों में इसके 25% और बढ़ने का अनुमान है। आइए शुरू करते हैं।

परिभाषा और अवलोकन

मान लीजिए आपके घर में बिजली और पानी का बिल तय मासिक शुल्क की बजाय वास्तविक उपयोग के आधार पर लिया जाए। Serverless computing भी इसी तरह काम करता है: यह एक तरीका है जिसमें क्लाउड प्रदाता अपना इंफ्रास्ट्रक्चर इस तरह आवंटित करते हैं कि आप उपयोग के आधार पर एप्लिकेशन बना और चला सकें, बिना सर्वर मेंटेनेंस की चिंता किए।

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

कल्पना करें कि आपके एप्लिकेशन पर रोजाना 100 से 200 यूजर आते हैं। यदि अगले दिन अचानक आपके यूजर 1,000,000 हो जाएँ, तो सर्वर अपने-आप आपकी आवश्यकतानुसार संसाधनों को स्केल कर देगा। पारंपरिक क्लाउड कंप्यूटिंग में ऐसा करना व्यावहारिक नहीं है, क्योंकि बढ़ते ट्रैफिक के कारण सर्वर डाउनटाइम का सामना कर सकते हैं, और यदि सर्वर में कम स्टोरेज है, तो बड़े स्टोरेज की खरीद करनी पड़ती है, जिसमें समय लगता है।

श्रेणीServerless Computingपारंपरिक कंप्यूटिंग
स्केलिंगडायनेमिकफिक्स्ड
बिलिंगउपयोग के आधार परउपयोग की परवाह किए बिना चलती लागतें, साथ ही मेंटेनेंस और ऑपरेशनल लागतें
इंफ्रास्ट्रक्चर प्रबंधनव्यवसायों से एब्स्ट्रैक्टसक्रिय प्रबंधन आवश्यक

मुख्य विशेषताएँ

अन्य पारंपरिक क्लाउड मॉडलों से serverless computing को अलग करने वाली प्रमुख विशेषताओं पर जाने से पहले, आइए serverless computing की मुख्य शब्दावली देखें।

  • Function: यह एक कोड का टुकड़ा है जिसे किसी विशिष्ट कार्य के लिए डिज़ाइन किया गया है, जैसे फाइल अपलोड, HTTP अनुरोधों को प्रोसेस करना, आदि। प्रत्येक फंक्शन एक-दूसरे से स्वतंत्र होता है और किसी इवेंट के जवाब में कार्य करता है।
  • Invocation: यह किसी फंक्शन को किसी विशिष्ट क्रिया के लिए कॉल करना है—अर्थात किसी इवेंट के जवाब में फंक्शन कोड का निष्पादन।
  • Duration: वह समय जो फंक्शन को इनवोक होने से लेकर प्रतिक्रिया लौटाने तक निष्पादन में लगता है।
  • Cold Start: जब किसी फंक्शन को इनवोक किया जाता है तो उसके निष्पादन शुरू होने से पहले serverless प्लेटफॉर्म द्वारा संसाधन आवंटित करने में लगने वाला समय।
  • Concurrency Limit: अधिकतम इंस्टेंसों की संख्या जिन पर कोई फंक्शन इवेंट्स और रिक्वेस्ट्स के जवाब में एक साथ चल सकता है।
  • Timeout: किसी फंक्शन के लिए serverless प्लेटफॉर्म द्वारा टर्मिनेट करने से पहले अनुमत अधिकतम अवधि।

इवेंट-ड्रिवन निष्पादन

इवेंट-ड्रिवन निष्पादन को Function-as-a-Service (FaaS) भी कहते हैं, जहाँ serverless एप्लिकेशन स्वतंत्र serverless फंक्शनों में बँटे होते हैं जिन्हें HTTP अनुरोध, डेटाबेस में बदलाव, मैसेज क्वेरी, या फाइल अपलोड जैसे स्रोतों से आने वाले विशिष्ट इवेंट ट्रिगर करते हैं।

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

Image demonstrating event-driven execution, using file upload as an example.

फाइल अपलोड के उदाहरण के साथ इवेंट-ड्रिवन निष्पादन। चित्र: लेखक

ऑटो-स्केलिंग

ऑटो-स्केलिंग मांग या वर्कलोड बढ़ने के आधार पर कंप्यूटिंग संसाधनों का आवंटन है। यह serverless computing की एक प्रमुख विशेषता है जो इसे कुशल और अनुकूलनीय बनाती है—जब सर्वर पर वर्कलोड कम हो तो संसाधन व्यर्थ नहीं होते, और जब मांग अधिक हो तो डाउनटाइम नहीं होता।

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

पे-पर-यूज़ बिलिंग

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

उदाहरण के लिए, यदि किसी महीने में आपका एप्लिकेशन उपयोगकर्ताओं की 100 इमेज प्रोसेस करता है, तो 24/7 सर्वर उपयोग के लिए भुगतान करने के बजाय, आप केवल उन 100 इमेज को प्रोसेस करने में लगे कंप्यूट समय के लिए भुगतान करेंगे। 

सर्वर प्रबंधन का एब्स्ट्रैक्शन

यह serverless computing की एक और प्रमुख विशेषता है, जहाँ डेवलपर्स और व्यवसायों को सर्वर के प्रोविज़निंग, स्केलिंग और मेंटेनेंस की चिंता नहीं करनी पड़ती। इससे वे अपने कोर बिज़नेस समस्याओं पर ध्यान केंद्रित कर सकते हैं और सर्वर मेंटेनेंस क्लाउड प्रदाताओं पर छोड़ सकते हैं। 

कंकरेन्सी प्रबंधन

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

Serverless Computing के लाभ

लागत दक्षता

पारंपरिक क्लाउड कंप्यूटिंग, जिसमें समर्पित सर्वर लगते हैं और सर्वर के आइडल होने पर भी लागत आती है, के विपरीत, serverless प्लेटफॉर्म डेवलपर्स से इवेंट-आधारित मॉडल पर शुल्क लेते हैं। एक उपयोगी तुलना टैक्सी सेवा का उपयोग करने और कार रखने से है। टैक्सी में आपको पार्किंग फीस, ईंधन आदि जैसी लागतों की चिंता नहीं करनी पड़ती—आप केवल जितनी दूरी तय करते हैं, उसके लिए भुगतान करते हैं। Serverless computing में भी, टैक्सी की तरह, आप केवल उपयोग किए गए कंप्यूटिंग संसाधनों के लिए भुगतान करते हैं। पारंपरिक तरीके (कार रखने) में, सिस्टम आइडल होने पर भी हर कंप्यूटिंग संसाधन की जिम्मेदारी आपकी होती है। 

Image showing cost efficiency comparison between traditional servers and serverless computing.

सर्वर प्रकारों के बीच लागत दक्षता की तुलना। स्रोत: Cloudflare

ऑपरेशनल जटिलता में कमी

Serverless computing में काफी समय बचता है क्योंकि डेवलपर्स को सर्वर इंस्टॉल और मेंटेन करने में समय नहीं लगाना पड़ता; वे एप्लिकेशन बनाने पर अधिक ध्यान दे सकते हैं। चूँकि एप्लिकेशन स्वतंत्र क्लाउड फंक्शनों के रूप में बनाए जाते हैं, कोई एक फंक्शन अन्य फंक्शनों या पूरे एप्लिकेशन को बाधित किए बिना अपडेट किया जा सकता है।

बेहतर स्केलेबिलिटी

यह serverless प्लेटफॉर्म का सबसे महत्वपूर्ण लाभों में से एक है, और यही कारण है कि यह छोटे संगठनों और स्टार्टअप्स में लोकप्रिय है। Serverless प्लेटफॉर्म डेवलपर्स के लिए मांग बढ़ने पर अपने-आप ऑपरेशंस को स्केल करना आसान बनाते हैं। जिन फंक्शनों में रिक्वेस्ट्स में उतार-चढ़ाव होता है, उनके लिए serverless प्लेटफॉर्म संसाधन आवंटन बढ़ाकर या घटाकर उन रिक्वेस्ट्स को पूरा करने के लिए स्केल करते हैं, जिससे कंप्यूटिंग संसाधनों का सर्वोत्तम उपयोग सुनिश्चित होता है। 

तेज़ी से बाजार में पहुँचना

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

विश्वसनीयता

समर्पित सर्वरों पर होस्टेड एप्लिकेशनों के विपरीत, serverless एप्लिकेशन कहीं से भी चलाए जा सकते हैं। इससे एप्लिकेशन का प्रदर्शन बेहतर होता है और पारंपरिक क्लाउड कंप्यूटिंग की तुलना में लेटेंसी घटती है।

Serverless आर्किटेक्चर और यह कैसे काम करता है

Serverless आर्किटेक्चर वह तरीका है जिसमें एप्लिकेशन को उस इंफ्रास्ट्रक्चर को इंस्टॉल और मैनेज किए बिना बनाया जाता है जो एप्लिकेशन को होस्ट करता है। डेवलपर्स दो serverless मॉडलों में से किसी एक का उपयोग करके serverless एप्लिकेशन बना सकते हैं: Backend as a Service (BaaS) या Function as a Service (FaaS)।

  • Backend as a Service (BaaS): यह serverless मॉडल आमतौर पर वेब और मोबाइल एप्लिकेशन बैकएंड बनाते समय उपयोग किया जाता है। डेवलपर्स को डेटाबेस, यूजर ऑथेंटिकेशन, स्टोरेज आदि जैसे बैकएंड फीचर्स का कोड लिखने की ज़रूरत नहीं होती। इससे विकास तेज़ हो जाता है क्योंकि डेवलपर्स मुख्य रूप से एप्लिकेशन फ्रंटएंड पर ध्यान केंद्रित करते हैं। BaaS प्रदान करने वाले उदाहरण हैं: Firebase, SupaBase, और AWS Amplify।
  • Function as a Service (FaaS): FaaS में डेवलपर्स ऐसा कोड लिखते हैं जिसे प्लेटफॉर्म निष्पादित करता है, बिना कंप्यूटिंग संसाधनों और स्केलिंग का प्रबंधन किए। यह ट्रिगर किए गए इवेंट्स के जवाब में फंक्शन निष्पादन की अनुमति देता है। FaaS प्रदान करने वाले उदाहरण हैं: AWS Lambda, Azure Cloud Functions, और Google Cloud Functions।

Image showing FAAS and BAAS serverless cloud architectures

FaaS और BaaS serverless क्लाउड आर्किटेक्चर। स्रोत: Journal of Cloud Computing

Serverless आर्किटेक्चर का मुख्य उद्देश्य डेवलपर्स से सर्वर प्रबंधन को एब्स्ट्रैक्ट करना है। यहाँ देखते हैं कि serverless प्लेटफॉर्म अपने इंफ्रास्ट्रक्चर में कैसे काम करते हैं।

  • फंक्शन निर्माण: Serverless आर्किटेक्चर से बने एप्लिकेशनों में कोड को उपभागों में लिखा जाता है, जहाँ प्रत्येक भाग एक स्वतंत्र फंक्शन होता है जिसका लक्ष्य कोई विशिष्ट कार्य पूरा करना होता है। 
  • फंक्शन डिप्लॉयमेंट: इन फंक्शनों को पैकेज कर के AWS Lambda, Azure Cloud Functions, या Google Cloud Functions जैसे serverless प्लेटफॉर्म पर डिप्लॉय किया जाता है।
  • इवेंट-ड्रिवन निष्पादन: ये फंक्शन किसी विशेष इवेंट या ट्रिगर के जवाब में इनवोक होते हैं। ये ट्रिगर डेटाबेस में बदलाव, HTTP अनुरोध आदि हो सकते हैं। 
  • ऑटो-स्केलिंग: वर्कलोड बढ़ने या घटने पर serverless प्लेटफॉर्म संसाधनों के उपयोग को संभालते हैं। उदाहरण के लिए, किसी विशेष फंक्शन पर अधिक ट्रैफिक आने पर सर्वर अधिक संसाधन आवंटित करता है।
  • क्षणिक कंटेनर: किसी इवेंट को ट्रिगर करने पर ऐसे कंटेनर बनते हैं जो निष्पादित फंक्शन को आवश्यक संसाधनों तक पहुँच देते हैं। कार्य पूरा होने पर ये कंटेनर नष्ट कर दिए जाते हैं।
  • बिलिंग: बिलिंग निष्पादन समय और उपयोग किए गए कंप्यूट संसाधनों के आधार पर होती है। 
  • स्टेटलेसनेस: Serverless फंक्शन निष्पादन के समय जानकारी सुरक्षित नहीं रखते। किसी इनवोकेशन में आवश्यक जानकारी या तो डेटाबेस में या बाहरी रूप से सुरक्षित की जाती है। 
  • लॉग्स और मॉनिटरिंग: Serverless प्लेटफॉर्म फंक्शनों में एप्लिकेशन के प्रदर्शन और समस्याओं को ट्रैक करने के लिए लॉगिंग और मॉनिटरिंग टूल प्रदान करते हैं।

कोई पूछ सकता है: क्या serverless आर्किटेक्चर और कंटेनर आर्किटेक्चर एक ही चीज़ नहीं हैं, क्योंकि दोनों ही डेवलपर्स से सर्वर को एब्स्ट्रैक्ट करते हैं? यह बात सही है, लेकिन serverless फंक्शनों के विपरीत—जो एप्लिकेशन बनाते और शिप करते समय सर्वर को पूरी तरह एब्स्ट्रैक्ट कर देते हैं—कंटेनरों में जब एप्लिकेशन पर उच्च ट्रैफिक आता है तो आपको Kubernetes जैसे टूल्स से कंटेनरों को स्केल करना पड़ता है। यह FaaS के उद्देश्य के विपरीत है, जहाँ सर्वर से संबंधित सभी क्रियाएँ serverless प्लेटफॉर्म द्वारा अपने-आप संभाली जाती हैं।

कंटेनर आर्किटेक्चर में ऐसे कंटेनर इंस्टेंस हो सकते हैं जो लंबे समय तक चलते हैं, जिससे लागत बढ़ सकती है; जबकि serverless फंक्शनों में आपको केवल उस समय के लिए बिल किया जाता है जब आपका फंक्शन रन होता है। छोटे एप्लिकेशनों के लिए serverless आर्किटेक्चर का उपयोग करना उन्हें ऐसे हिस्सों में डिकपल करना आसान बनाता है जिन्हें serverless प्लेटफॉर्म स्वतंत्र फंक्शनों के रूप में चला सकते हैं।

Serverless Computing प्लेटफॉर्म

2008 में Google App Engine के आने से पहले, Zimki ने कोड निष्पादन के लिए पहला "pay as you go" प्लेटफॉर्म उपलब्ध कराया था, लेकिन बाद में इसे बंद कर दिया गया। शुरुआती दौर में Google App Engine केवल Python को सपोर्ट करता था और इसमें एप्लिकेशनों के लिए मीटर्ड बिलिंग की सुविधा थी, जिनमें SnapChat भी शामिल था। लगभग 2010 के आसपास, PiCloud नामक एक अन्य प्लेटफॉर्म ने भी Python एप्लिकेशनों के लिए FaaS सपोर्ट प्रदान किया।

2014 में, AWS ने AWS Serverless Application Model (AWS SAM) और Amazon CloudWatch जैसे टूल्स जारी करके serverless मॉडल को लोकप्रिय बनाया। 2016 में Google ने Azure Functions के साथ अपना दूसरा serverless ऑफरिंग Google Cloud Functions जारी किया। तब से, कई serverless प्लेटफॉर्म सामने आए हैं, जैसे Ali Baba Cloud का Function Compute और IBM Cloud का IBM Cloud Functions।

वर्चुअलाइज्ड या फिजिकल डेटाबेस की आवश्यकता खत्म करने के लिए serverless डेटाबेस भी विकसित किए गए हैं। AWS Amazon Aurora प्रदान करता है, जो MySQL और PostgreSQL पर आधारित एक serverless संस्करण है। Azure Azure Data Lake उपलब्ध कराता है, और Google Firestore प्रदान करता है।

Serverless क्लाउड प्लेटफॉर्म। स्रोत: Network Interview

व्यावहारिक अनुप्रयोग और उपयोग के मामले

वेबसाइट्स और APIs

Serverless computing का उपयोग वेबसाइट एप्लिकेशन और REST APIs बनाने में होता है। खास बात यह है कि serverless इंफ्रास्ट्रक्चर पर बनाए गए एप्लिकेशन उपयोगकर्ता मांग के आधार पर अपने-आप स्केल होते हैं, जिससे उपयोगकर्ता अनुभव बेहतर होता है।

मीडिया प्रोसेसिंग

Serverless आर्किटेक्चर मीडिया प्रोसेसिंग को आसान बनाता है। उपयोगकर्ता विभिन्न डिवाइसों और आकारों से मीडिया कंटेंट अपलोड कर सकते हैं और प्लेटफॉर्म एक ही फंक्शन में हर उपयोगकर्ता की जरूरत के मुताबिक प्रोसेस करता है, बिना एप्लिकेशन प्रदर्शन घटाए। उदाहरण के लिए, कोई उपयोगकर्ता S3 बकेट के जरिए इमेज अपलोड करता है, जो एक AWS Lambda फंक्शन को ट्रिगर करता है ताकि इमेज पर वॉटरमार्क जोड़ा जा सके या थंबनेल बनाया जा सके।

चैटबॉट्स

डेवलपर्स serverless आर्किटेक्चर का उपयोग करके ग्राहक प्रश्नों के उत्तर देने के लिए एक चैटबॉट लागू कर सकते हैं और केवल वही संसाधनों के लिए भुगतान करते हैं जिनका चैटबॉट उपयोग करता है। उदाहरण के लिए, Slack बॉट्स की बदलती रिक्वेस्ट्स को संभालने के लिए serverless आर्किटेक्चर का उपयोग करता है ताकि रोज़ाना बदलती ग्राहक ज़रूरतों के कारण बैंडविड्थ के कम उपयोग की स्थिति से बचा जा सके।

वेबहुक्स

आप SaaS विक्रेताओं के साथ वेबहुक HTTP एंडपॉइंट के जरिए इंटरैक्ट करने के लिए serverless प्लेटफॉर्म का उपयोग कर सकते हैं, जो नोटिफिकेशन प्राप्त करता है और कार्य करता है। इससे बने वेबहुक के लिए न्यूनतम मेंटेनेंस, कम लागत और स्वत: स्केलिंग मिलती है।

IoT

Coca-Cola अपने वेंडिंग मशीन Freestyle पर serverless आर्किटेक्चर का उपयोग करती है ताकि ग्राहक अपने पेय ऑर्डर कर सकें, भुगतान कर सकें और भुगतान नोटिफिकेशन प्राप्त कर सकें। Coca-Cola का कहना है कि वे अपनी वेंडिंग मशीनों को ऑपरेट करने में लगभग $13,000/वर्ष खर्च कर रहे थे, जो serverless आर्किटेक्चर लागू करने के बाद $4,500/वर्ष रह गया। 

डाटा प्रोसेसिंग

Major League Baseball Advanced Media ने अपना प्रोडक्ट Statcast serverless आर्किटेक्चर पर बनाया ताकि उपयोगकर्ताओं को सटीक और रीयल-टाइम स्पोर्ट्स मेट्रिक्स मिल सकें। यह serverless computing का उपयोग डेटा प्रोसेस करने और बेसबॉल गेम्स के बारे में उपयोगकर्ताओं को इनसाइट्स देने के लिए करता है। 

इवेंट-ड्रिवन एप्लिकेशन

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

Serverless Edge Computing

डेटा के लंबी दूरी तक जाने के कारण, एप्लिकेशन को केंद्रीकृत सर्वरों से रिक्वेस्ट प्रोसेस करने और सामग्री देने में समय लगता है, जिससे लेटेंसी और बॉटलनेक की समस्या आती है।

Serverless edge computing इस समस्या को हल करता है, क्योंकि यह कंप्यूटिंग संसाधनों को कई स्थानों पर वितरित कर देता है जिससे केंद्रीय सर्वर पर वर्कलोड कम हो जाता है। Serverless edge computing का अर्थ है कंप्यूटिंग संसाधनों का ऐसा लोकेशन होना जो end users (एज) के अधिक करीब हो और वहाँ serverless फंक्शनों को चलाया जाए। इससे serverless एप्लिकेशन अधिक डिवाइसों पर चल सकते हैं, कंजेशन घटता है और लेटेंसी कम होती है।

Serverless edge computing में हर डिवाइस के लिए इंफ्रास्ट्रक्चर समर्पित होता है, जिससे वह डेटा प्रोसेसिंग के लिए उसे वापस केंद्रीय लोकेशन पर भेजे बिना जटिल कार्य कर सकता है। यहाँ कुछ उपयोग के मामले हैं जिनमें serverless edge फंक्शनों से उपयोगकर्ता अनुभव बेहतर होता है:

  • व्यक्तिगत अनुभव: Serverless edge फंक्शनों के साथ, उपयोगकर्ता अपनी पसंद, लोकेशन और डिवाइस प्रकार के आधार पर कंटेंट को पर्सनलाइज़ कर सकते हैं। 
  • वीडियो स्ट्रीमिंग और गेमिंग: उपयोगकर्ताओं के पास रिक्वेस्ट प्रोसेस करने से स्ट्रीमिंग वीडियो या ऑनलाइन गेम खेलने के दौरान लेटेंसी और बफरिंग कम होती है।
  • सुरक्षा और प्रमाणीकरण: वर्कलोड को विभिन्न एज लोकेशनों में वितरित करने से, दुर्भावनापूर्ण ट्रैफिक केंद्रीय इंफ्रास्ट्रक्चर तक पहुँचने से पहले ही जाँचा और फ़िल्टर कर लिया जाता है।
  • IoT डिवाइस: Serverless edge computing यह सुनिश्चित करके IoT डिवाइसों को कुशलतापूर्वक काम करने में मदद करता है कि डिवाइस चलाने वाला इंफ्रास्ट्रक्चर उपयोगकर्ताओं के करीब हो। 

चुनौतियाँ और विचारणीय बातें

Serverless computing के फायदों के बावजूद, इसमें कुछ निम्नलिखित कमियाँ भी हैं।

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

निष्कर्ष

हल्के-फुल्के एप्लिकेशन बनाने के इच्छुक कंपनियों के लिए serverless computing आगे का रास्ता है। जिन एप्लिकेशनों में जटिल इंटरैक्शन के साथ बड़ी संख्या में सेवाएँ शामिल हैं, उनके लिए वर्चुअल मशीनों से बने बड़े प्रोसेसेज़ के लिए हाइब्रिड इंफ्रास्ट्रक्चर की सिफारिश की जाती है; ऐसे मामलों में serverless कंटेनर केवल छोटे कार्यों के लिए उपयोग किए जाते हैं। Serverless edge फंक्शनों पर भी विचार किया जा सकता है क्योंकि वे डेटा को स्थानीय रूप से प्रोसेस कर के लेटेंसी को कम करते हैं और केंद्रीय सर्वर पर अधिक वर्कलोड नहीं डालते।

ध्यान रखें कि serverless computing की क्षमताओं का विस्तार करने के लिए लगातार प्रगति और विकास हो रहा है। उदाहरण के लिए, मल्टी-क्लाउड अप्रोच का उपयोग कर serverless एप्लिकेशन बनाए जा सकते हैं, जहाँ एक से अधिक क्लाउड प्रदाताओं की सेवाओं का उपयोग करके serverless एप्लिकेशन बनाया जाता है। Serverless फंक्शनों में "जीरो कोल्ड स्टार्ट" सुनिश्चित करने के लिए भी और विकास हुए हैं, जैसा कि Cloudflare Workers में लागू किया गया है। 

पढ़ने के लिए धन्यवाद। Serverless computing के बारे में और जानने और इस क्षेत्र में अपने कौशल को विकसित करने के लिए, निम्नलिखित DataCamp संसाधन देखें:

  • AWS Cloud Technology and Services: AWS की क्लाउड टेक्नोलॉजीज़ और सर्विसेज़ के बारे में जानें, जिनमें serverless विकल्प भी शामिल हैं।
  • Azure Architecture and Services: Azure की आर्किटेक्चर और सर्विसेज़ को समझें, जिनमें इसकी serverless विशेषताएँ शामिल हैं।
  • Streaming Data with AWS Kinesis and Lambda: रीयल-टाइम डेटा स्ट्रीमिंग और प्रोसेसिंग के लिए AWS Kinesis और Lambda में गहराई से जानें।

संक्षिप्त पढ़ाई के लिए, हमारे ब्लॉग पोस्ट में सभी कौशल स्तरों के लिए प्रोजेक्ट आइडियाज़ देखें।

Adejumo Ridwan Suleiman

लेखक

Adejumo Ridwan Suleiman

अनुभवी डेटा साइंस प्रशिक्षक और बायोस्टैटिस्टिशियन, Python, R और मशीन लर्निंग में विशेषज्ञता के साथ।

Frequently Asked Questions

Serverless computing क्या है?

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

Serverless computing पारंपरिक क्लाउड कंप्यूटिंग से कैसे अलग है?

पारंपरिक क्लाउड कंप्यूटिंग के विपरीत, serverless computing डायनेमिक स्केलिंग, पे-पर-यूज़ बिलिंग प्रदान करता है और इंफ्रास्ट्रक्चर प्रबंधन को व्यवसायों से एब्स्ट्रैक्ट कर देता है।

Serverless computing के मुख्य लाभ क्या हैं?

प्रमुख लाभों में लागत दक्षता, ऑपरेशनल जटिलता में कमी, बेहतर स्केलेबिलिटी, तेज़ी से बाजार में पहुँचना, और बढ़ी हुई विश्वसनीयता शामिल हैं।

Serverless computing के कुछ सामान्य उपयोग मामले क्या हैं?

सामान्य उपयोग मामलों में वेबसाइट्स और APIs बनाना, मीडिया प्रोसेसिंग, चैटबॉट्स, वेबहुक्स, IoT एप्लिकेशन, डेटा प्रोसेसिंग, और इवेंट-ड्रिवन एप्लिकेशन शामिल हैं।

Serverless computing अपनाते समय किन चुनौतियों पर विचार करना चाहिए?

कुछ चुनौतियों में वेंडर लॉक-इन, अंतर्निहित इंफ्रास्ट्रक्चर पर कम नियंत्रण, कोल्ड स्टार्ट्स, संसाधनों को साझा करने से संभावित सुरक्षा चिंताएँ, और serverless एप्लिकेशनों की वितरित प्रकृति के कारण डिबगिंग की जटिलताएँ शामिल हैं।

विषय