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