सर्वर रहित उन डेवलपर्स के लिए बहुत अच्छा है जो सबसे कम रखरखाव और वित्तीय लागत के साथ अंत तक एक एप्लिकेशन बनाना चाहते हैं। सर्वर रहित फ़ंक्शन आपको बैकएंड इंफ़्रा को बनाए बिना अपना कोड चलाने में सक्षम बनाता है। लेकिन वे डिज़ाइन द्वारा स्टेटलेस हैं इसलिए आपको बाहरी डेटा स्टोर की आवश्यकता है। तो अगला सवाल यह है कि सर्वर रहित के लिए कौन से डेटाबेस सबसे उपयुक्त हैं? अच्छी खबर यह है कि डेटाबेस विक्रेता सर्वर रहित प्रवृत्ति देखते हैं और वे या तो सर्वर रहित प्रसाद लॉन्च कर रहे हैं या अपने उत्पाद को अनुकूलित करने का प्रयास कर रहे हैं। इस लेख में, मैं सबसे पहले उन चीजों को सूचीबद्ध करूंगा जो सर्वर रहित के लिए डेटाबेस को महान बनाती हैं। फिर मैं उस डेटाबेस को सूचीबद्ध करूंगा जिसे मैं व्यक्तिगत रूप से सर्वर रहित के लिए महान डेटाबेस के रूप में उम्मीदवार मानता हूं।
सर्वर रहित के लिए डेटाबेस को क्या बेहतर बनाता है?
- उपयोग में आसानी: अगली पीढ़ी के डेवलपर्स प्रौद्योगिकियों को सीखने में दिन और सप्ताह खर्च नहीं करना चाहते हैं। वे डॉक्स के पेज पढ़ने के बजाय यूट्यूब वीडियो देखकर सीखना चाहते हैं। तो सर्वर रहित के लिए एक डेटाबेस सरल और सहज होना चाहिए।
- सर्वर रहित मूल्य निर्धारण: कीमत शून्य के पैमाने पर होनी चाहिए। मैं उस चीज के लिए भुगतान क्यों करूं जिसका मैं उपयोग नहीं करता हूं। प्रति-बैंडविड्थ या प्रति-अनुरोध के आधार पर मूल्य निर्धारण मॉडल सर्वर रहित होते हैं क्योंकि वे आपके सटीक उपयोग से संबंधित होते हैं। व्यक्तिगत रूप से मैं प्रति-अनुरोध पसंद करता हूं क्योंकि बैंडविड्थ की तुलना में अनुमान लगाना हमेशा आसान होता है।
- डेवलपर अनुकूल मूल्य निर्धारण: ट्रैप के बिना मूल्य निर्धारण सरल होना चाहिए। कुछ मूल्य निर्धारण पृष्ठ इतने जटिल हैं कि विवरण समझाने के लिए अतिरिक्त लेख और ब्लॉग पोस्ट हैं। कुछ विक्रेताओं के पास जटिल कैलकुलेटर होते हैं। दुर्भाग्य से अधिकांश विक्रेता अपने जोखिम को कम करने के लिए एक जटिल मूल्य निर्धारण पसंद करते हैं। इसलिए यह अनुमान लगाना कठिन है कि चालान देखने से पहले आप कितना भुगतान करेंगे।
- सर्वर रहित कनेक्शन: सर्वर रहित फ़ंक्शन सेकंड में सैकड़ों या हजारों तक स्केल कर सकते हैं। यदि आपके डेटाबेस को लगातार कनेक्शन की आवश्यकता है तो आप आसानी से अपने डेटाबेस की कनेक्शन सीमा तक पहुंच सकते हैं। HTTP आधारित कनेक्शन में ऐसी कोई समस्या नहीं होती है क्योंकि वे अधिक हल्के होते हैं और आमतौर पर ऐसी कोई सीमा नहीं होती है।
- कम विलंबता: सर्वर रहित कार्यों में अतिरिक्त विलंबता लागत है। लेकिन वास्तविक लागत आपकी वेबसाइट पर बेकार प्रतीक्षा कर रहे दुखी उपयोगकर्ता हैं।
- पोर्टेबिलिटी: यदि आप किसी अन्य क्लाउड विक्रेता के पास जाना चाहते हैं, तो क्या आपको डेटा स्तर को फिर से लिखना होगा। या आप दूरस्थ डेटाबेस से कनेक्ट किए बिना अपने लैपटॉप में अपने एप्लिकेशन का परीक्षण करने में सक्षम हैं।
- संगति: आम तौर पर, निरंतरता और प्रदर्शन के बीच एक समझौता होता है। डेटाबेस निरंतरता और प्रदर्शन स्पेक्ट्रम पर विभिन्न स्थानों पर हैं। एक अच्छे डेटाबेस को इसकी निरंतरता की गारंटी को स्पष्ट रूप से परिभाषित करना चाहिए ताकि उपयोगकर्ता संभावित मुद्दों और जोखिमों से अवगत हो सके
- मापनीयता: जब आपका एप्लिकेशन उच्च थ्रूपुट प्राप्त करना शुरू करता है तो डेटाबेस को चालू रखना चाहिए। आदर्श रूप से, स्केलिंग स्वचालित या क्लाउड प्रदाता द्वारा प्रबंधित होनी चाहिए। आपको इसकी चिंता नहीं करनी चाहिए।
- एज फ्रेंडली: क्लाउडफ्लेयर वर्कर्स और फास्टी कंप्यूट शानदार तकनीकें हैं जो आपको अपने सर्वर रहित कार्यों को अपने उपयोगकर्ता के निकटतम किनारे पर चलाने में सक्षम बनाती हैं। उन्हें आरईएसटी आधारित कनेक्शन की आवश्यकता होती है, लेकिन विलंबता को कम करने के लिए विश्व स्तर पर प्रतिकृति डेटाबेस की भी आवश्यकता होती है।
- वैश्विकता: जैसे-जैसे आपका एप्लिकेशन विश्व स्तर पर लोकप्रिय होता है, आपको एक डेटाबेस की आवश्यकता होती है जो पूरी दुनिया में अच्छा प्रदर्शन प्रदान करता हो। इसे सक्षम करने के लिए बहु क्षेत्र प्रतिकृति प्रमुख विशेषता है। लेकिन सावधान रहें, कीमतों की जांच करें। यह सुविधा महंगी हो सकती है।
सर्वर रहित के लिए सर्वश्रेष्ठ डेटाबेस?
इस खंड में, मैं निम्नलिखित डेटाबेस को आज़माने से अपने इंप्रेशन और नोट्स साझा करूंगा। वे वैज्ञानिक विश्लेषण पर आधारित नहीं हैं, लेकिन मैं किसी भी वास्तविक तुलना विश्लेषण को करने से पहले आपको एक विचार देने की आशा करता हूं।
मोंगोडीबी (एटलस)
-
उपयोग में आसानी:MongoDB सबसे लोकप्रिय NoSQL डेटाबेस और दस्तावेज़ स्टोर है। इसके JSON आधारित डेटा मॉडल के लिए इसका API बहुत ही सरल और सहज ज्ञान युक्त है।
-
सुवाह्यता:लगभग सभी क्लाउड प्रदाताओं के पास MongoDB API के साथ डेटाबेस उत्पाद होते हैं और साथ ही आप MongoDB को स्वयं ऑन-प्रिमाइसेस चला सकते हैं। इसलिए पोर्टेबिलिटी की कोई समस्या नहीं है।
-
MongoDB एटलस ने हाल ही में अपने सर्वर रहित डेटाबेस प्रकार की घोषणा की। मेरी व्यक्तिगत धारणा यह है कि यह सर्वर रहित मूल्य निर्धारण मॉडल के तहत एक होस्टेड मोंगोडीबी इंस्टेंस की तरह था। जैसा कि यहां देखा गया है, Node.js SDK सहित सर्वर रहित डेटाबेस के लिए कई सुविधाएं समर्थित नहीं हैं।
-
सर्वर रहित कनेक्शन:MongoDB एटलस आपको एक HTTP आधारित (जैसे REST) API प्रदान नहीं करता है। आप आसानी से कनेक्शन की सीमा को हिट कर सकते हैं। इसलिए वे इससे बचने के लिए लेख प्रकाशित करते हैं https://docs.atlas.mongodb.com/best-practices-connecting-from-aws-lambda/
** _(अपडेट) MongoDB एटलस ने एक HTTP आधारित डेटा एपीआई लॉन्च किया है _
कैसंड्रा (डेटास्टैक्स एस्ट्रा)
- डेटास्टैक्स एस्ट्रा देशी कैसेंड्रा ड्राइवरों के अलावा आरईएसटी और ग्राफक्यूएल एपीआई प्रदान करता है।
- उपयोग में आसानी:मेरे लिए MongoDB और Redis की तुलना में Cassandra सीखना कठिन था। हालाँकि, डेटास्टैक्स टीम ने कंसोल के साथ अच्छा काम किया, यह बहुत सहज था। लेकिन फिर भी मुझे याद है कि मैं REST API के विभिन्न संस्करणों वाले दस्तावेज़ों में खो गया था।
- डेवलपर अनुकूल मूल्य निर्धारण:डेटास्टैक्स एस्ट्रा का मूल्य निर्धारण सरल नहीं है। प्रत्येक इकाई की अलग से गणना की जाती है (पढ़ता है, लिखता है, बैंडविड्थ) और क्लाउड प्रदाता और यहां तक कि क्षेत्र के आधार पर उनकी अलग-अलग कीमतें होती हैं। डेटास्टैक्स की रीड/राइट यूनिट्स (RRU और WRU) की अपनी परिभाषा है।
डायनेमोडीबी (एडब्ल्यूएस)
- उपयोग में आसानी:यदि आप एक एडब्ल्यूएस उपयोगकर्ता हैं, तो डायनेमोडीबी के साथ शुरू करना और काम करना आसान है। हालाँकि मुझे लगता है कि MongoDB के पास एक आसान और अधिक सहज क्वेरी API है।
- सर्वर रहित कनेक्शन:DynamoDB कनेक्शन http आधारित हैं, आपको कोई कनेक्शन सीमा समस्या नहीं है।
- पोर्टेबिलिटी:यहां सबसे बड़ी समस्या है। आप DynamoDB का उपयोग AWS के अलावा कहीं भी नहीं कर सकते।
फ़ौनाडीबी
- संगति:निरंतरता के मामले में संभवतः FaunaDB इस सूची में सर्वश्रेष्ठ है। यह वैश्विक प्रतिकृति के साथ निरंतरता की गारंटी देता है। लेकिन सावधान रहें कि यह अतिरिक्त प्रदर्शन लागत पर आता है। विचार करें कि क्या आपको वास्तव में इतनी मजबूत स्थिरता की आवश्यकता है।
- प्रदर्शन:इसकी मजबूत स्थिरता के कारण इसमें दूसरों की तुलना में अधिक विलंबता है।
- उपयोग में आसानी:ईमानदारी से, FQL मेरे लिए सीखने और उपयोग करने में सबसे कठिन था। लेकिन FaunaDB भी GraphQL API का समर्थन करता है, इसलिए यह आसान हो सकता है।
- सर्वर रहित कनेक्शन:इसके HTTP आधारित कनेक्शन के लिए धन्यवाद, FaunaDB को कनेक्शन सीमाओं के साथ कोई समस्या नहीं है।
अपस्टैश
- उपयोग में आसानी:रेडिस शायद इस सूची में एपीआई सीखने में सबसे आसान है। Upstash अपने सहज और सरल इंटरफ़ेस के साथ क्लाउड में उपयोग करना आसान बनाता है।
- डेवलपर अनुकूल मूल्य निर्धारण:अपस्टैश मूल्य निर्धारण प्रति-अनुरोध पर आधारित है। यह मूल्य-सीमा भी निर्धारित करता है, इसलिए यह गारंटी देता है कि आप एक पूर्व निर्धारित राशि से अधिक का भुगतान नहीं करेंगे।
- प्रदर्शन:स्मृति आधारित भंडारण के लिए धन्यवाद, Upstash सर्वश्रेष्ठ विलंबता संख्या देता है। एक विचार प्राप्त करने के लिए इसे जांचें।
- यदि आपको जटिल क्वेरी क्षमताओं (जुड़ने आदि) की आवश्यकता है, तो रेडिस डेटा संरचनाएं व्यावहारिक नहीं हो सकती हैं। ऐसी स्थिति में आपको बेहतर SQL समर्थन वाले डेटाबेस की आवश्यकता हो सकती है।
फायरस्टोर
- उपयोग में आसानी:फायरस्टोर इस श्रेणी के लिए इस सूची में सर्वश्रेष्ठ में से एक है। UI और API काफी सहजज्ञ हैं।
- पोर्टेबिलिटी:डायनेमोडीबी की तरह, फायरस्टोर में वेंडर-लॉक की समस्या है। जब तक आप Google क्लाउड पर हैं तब तक यह अच्छा है।
- प्रदर्शन:मैंने पहले इसके प्रदर्शन के बारे में कुछ शिकायतें सुनीं। मैंने व्यक्तिगत रूप से अनुभव किया है कि इसकी विलंबता FaunaDB के साथ दूसरों की तुलना में बदतर है। तो यहाँ एक प्रश्नवाचक चिन्ह है।
समापन शब्द
मेरा मानना है कि सर्वर रहित विकास का भविष्य है और सर्वर रहित की ओर एक परिवर्तन जारी है। सर्वरलेस डेवलपर्स और छोटी कंपनियों को बहुत सीमित बजट के साथ स्केलेबल उत्पाद बनाने में सक्षम बनाता है। डेटाबेस को इस संक्रमण का हिस्सा होना चाहिए जिसमें ऐसे प्रस्ताव हों जो सर्वर रहित सिद्धांतों के साथ सुसंगत हों।