सर्वर रहित ऐप्स बनाने में iFaaS और FaaS (AWS) के बीच लागत और दक्षता

Nov 25 2022
सर्वर रहित आर्किटेक्चर एक शक्तिशाली सिस्टम डिज़ाइन है जो डेवलपर्स को सर्वर प्रबंधित किए बिना और निष्क्रिय क्लाउड सेवाओं के भुगतान के बिना कोड बनाने और चलाने देता है। AWS सबसे बड़े क्लाउड सेवा प्रदाताओं में से एक है, जहाँ आप एक मजबूत सर्वर रहित सिस्टम बना सकते हैं।

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

AWS सबसे बड़े क्लाउड सेवा प्रदाताओं में से एक है, जहाँ आप एक मजबूत सर्वर रहित सिस्टम बना सकते हैं। हालांकि, सर्वर रहित ऐप्स बनाने में लोलो कोड (इंटीग्रेशन फंक्शन-ए-ए-सर्विस) और एडब्ल्यूएस (फंक्शन-एज-ए-सर्विस) के बीच के अंतर को हम नीचे तीन दृष्टिकोणों से छूना चाहेंगे।

  • कीमत
  • प्रदर्शन
  • क्षमता

एडब्ल्यूएस मूल्य निर्धारण

AWS आपको मूल्य निर्धारण के लिए भुगतान के रूप में भुगतान दृष्टिकोण प्रदान करता है। दूसरे शब्दों में, आपने AWS संसाधनों का कितना उपयोग किया है, इसके लिए आपको भुगतान करना होगा।

मूल्य निर्धारण उदाहरण एडब्ल्यूएस

एक सर्वर रहित वेब एप्लिकेशन में एक एपीआई का उपयोग किया जाता है जो डायनेमिक वेबपेज सामग्री को वापस करने के लिए लैम्ब्डा को आमंत्रित करता है। साइट को प्रति मिनट 10,000 पेज लोड मिलते हैं। प्रत्येक एपीआई अनुरोध 12 केबी है और प्रतिक्रिया 46 केबी है।

यह प्रति माह कुल 432 मिलियन अनुरोध होंगे।

मासिक लागत = $418.8 ($0.97 प्रति मिलियन) * अमेज़ॅन एपीआई गेटवे लागत में (लैम्ब्डा और डायनेमोडीबी शामिल नहीं है)

लोलो कोड मूल्य निर्धारण

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

आप 256 एमबी मेमोरी और 0.125 कोर (सीपीयू) के साथ 1 एलसीयू (या प्रतिकृति) के साथ 9 यूरो प्रति माह से शुरू होने वाले 1 आवेदन की सदस्यता ले सकते हैं। फ्री टियर में 1 एलसीयू के साथ दो ऐप शामिल हैं, लेकिन इसे चालू रखने के लिए आपको सप्ताह में एक बार ऐप से जुड़ना होगा। यदि आप फ्री-टियर ऐप के लिए अपनी प्रतिकृतियां बढ़ाना चाहते हैं, तो कीमत 9€ से शुरू होती है।

मूल्य निर्धारण उदाहरण लोलो कोड

एपीआई गेटवे के लिए ऊपर दिए गए उदाहरण को लेते हुए हमने कुछ गणनाएँ कीं।

अगर साइट को प्रति मिनट 10,000 पेज लोड मिलते हैं और प्रत्येक एपीआई अनुरोध 12 केबी है और प्रतिक्रिया 46 केबी है, तो हमें लोलो ऐप के लिए 10k अनुरोध/मिनट संसाधित करने की आवश्यकता है। इसके लिए 0.131 (कोर) और 85 एमबी मेमोरी की आवश्यकता होती है। नतीजतन, इसके लिए 9 € प्रत्येक पर दो प्रतिकृतियों की आवश्यकता होती है, लेकिन हमारे पास अभी भी उस ऐप के भीतर अधिक अनुरोधों के लिए जगह होगी। परिणाम है

लोलो ऐप के लिए मासिक लागत = €18 प्रति माह लागत।

लोलो को एडब्ल्यूएस लैम्ब्डा और एपीआई गेटवे के संयोजन के रूप में देखा जा सकता है। आप अपनी डायनामिक वेबपेज सामग्री को स्टोर करने के लिए लोलो के बेक्ड इन स्टेट स्टोर का भी उपयोग कर सकते हैं। इस तरह कोई छिपी हुई लागत नहीं होगी। आपके द्वारा भुगतान की जाने वाली कुल राशि केवल €18 प्रति माह होगी।

प्रदर्शन: iFaaS और FaaS के बीच अंतर

AWS आपकी ज़रूरत की हर चीज़ की पेशकश कर सकता है, और आप अतिरेक, मापनीयता और उच्च उपलब्धता के साथ बड़े पैमाने पर ऐप डिज़ाइन कर सकते हैं। दूसरी ओर, आपको नेटवर्क सिस्टम को अच्छी तरह से जानना चाहिए और इसकी क्षमता को अनलॉक करने के लिए AWS आर्किटेक्चर से परिचित होना चाहिए। सर्वरलेस भी इसके डाउनसाइड्स के साथ आता है। उनमें से एक कुख्यात "कोल्ड स्टार्ट" है।

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

एडब्ल्यूएस

2018 में लैम्ब्डा बेड़े के पटाखा प्रौद्योगिकी में चले जाने के बाद से एडब्ल्यूएस कुख्यात रूप से बेहतर हो गया है।

AWS में, आप लैम्ब्डा को कम से कम कंटेनरों के साथ सक्रिय कर सकते हैं। लेकिन इसे लगातार चलाने के लिए आपको अतिरिक्त कीमत चुकानी होगी।

इस गर्मी में AWS लैम्ब्डा की देरी से शुरू होने (AWS EU का उपयोग करके) पर हमने एक उपयोगकर्ता का परीक्षण किया था। प्रयोग का परिणाम नीचे है।

+-----------+--------------------
|   time    | ms      
+-----------+--------------------
| 1 min     | 180 ms           
| 15 min    | 750 ms   
| 3h        | 1467 ms 
| 10h       | 2060 ms               
+-----------+--------------------

लोलो कोड पर ऐप्स में "कोल्ड स्टार्ट" समस्या भी होती है लेकिन जब तक आप इसे बंद नहीं करते तब तक आपका लोलो ऐप चलता रहता है। यानी जब से लोलो कोड कंटेनर के साथ काम कर रहा है, तब तक आपका ऐप तकनीकी रूप से हमेशा चलता रहेगा जब तक आप इसे बंद नहीं कर देते। अनिवार्य रूप से आपको कोल्ड स्टार्ट के बारे में परवाह नहीं करनी चाहिए।

हालाँकि, AWS पर परीक्षण करने वाले ऊपर के उपयोगकर्ता ने लोलो कोड में ठीक वैसा ही परीक्षण किया। * उसके परिणाम नीचे दिखाए गए हैं।

+-----------+--------------------
|   time    | ms      
+-----------+--------------------
| 1 min     | 172 ms           
| 15 min    | 210 ms   
| 3h        | 602 ms 
| 10h       | 890 ms               
+-----------+--------------------

विचार करने के लिए एक और बात यह है कि यदि आपकी स्क्रिप्ट बहुत लंबे समय से चल रही है, तो हो सकता है कि AWS सबसे अच्छा विकल्प न हो। AWS लैम्ब्डा का अधिकतम टाइमआउट 900 सेकंड (15 मिनट) जबकि लोलो का अधिकतम टाइमआउट नहीं है।

दक्षता: सर्वर रहित ऐप कैसे बनाएं और प्रबंधित करें?

एडब्ल्यूएस और लोलो कोड दोनों में एपीआई बनाना सीधा है। हालाँकि, अंतर हैं।

एडब्ल्यूएस

एडब्ल्यूएस में आप अपना लैम्ब्डा फ़ंक्शन बनाते हैं और बाद में इसे दूसरी सेवा, एपीआई गेटवे के साथ जोड़ देते हैं, जो इसके ट्रिगर के रूप में कार्य करेगा। यहां आपके पास एक अज्ञात फ़ंक्शन है जो कुछ होने पर ट्रिगर हो जाएगा। यह FaaS का बहुत ही आदर्श है, एक गुमनाम कार्य जो किसी घटना के होने पर ही ट्रिगर होता है।

जैसा कि फ़ंक्शन स्टेटलेस है, आपको डेटा कहीं और लाने की आवश्यकता होगी, इस मामले में आप डेटा को स्टोर करने और लाने के लिए AWS DynamoDB का उपयोग कर सकते हैं।

एडब्ल्यूएस सर्वरलेस के साथ एक साधारण एपीआई बनाने के लिए आर्किटेक्चर

यह एक स्केलेबल और मजबूत डिज़ाइन जैसा दिखता है, हालाँकि, आपको कुछ महत्वपूर्ण कारकों पर विचार करने की आवश्यकता है:

  • सॉफ़्टवेयर कोड में परिवर्तन कैसे प्रबंधित करें?
  • अपने ऐप को जल्दी से कैसे परिनियोजित या कस्टमाइज़ करें?
  • बुनियादी सुविधाओं से जुड़ी कोई समस्या होने पर सेवाओं की जांच कहां से शुरू करें?

लैम्ब्डा, एपीआई गेटवे और डायनेमोडीबी के साथ HTTP एपीआई बनाने के तरीके पर एक पूर्ण ट्यूटोरियल देखें ।

लोलो कोड

लोलो कोड के साथ आप एक HTTP ट्रिगर जोड़ सकते हैं और फिर डेटाबेस के लिए बेक्ड इन स्टेट स्टोर का उपयोग कर सकते हैं। आप अपने लैम्ब्डा के रूप में कार्य करने के लिए एक नया कच्चा कार्य जोड़ सकते हैं (ऊपर से सटीक उपयोग के मामले का पालन करने के लिए)।

आपका लोलो एप्लिकेशन ऐसा दिख सकता है।

कोड ब्लॉक के भीतर कोड HTTP ट्रिगर को छोड़कर केवल NodeJS कोड () है जो कि लोलो द्वारा साझा किया गया एक टेम्पलेट ट्रिगर है।

आप तय करेंगे कि कोड ब्लॉक में क्या है बस इसके कोड (NodeJS) को बदलकर और फिर इसका नाम बदलें।

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

लोलो द्वारा प्रदान किए जाने वाले लाइब्रेरी फ़ंक्शन का उपयोग करके लोलो में एक सीआरयूडी एपीआई बनाएं।

आपको अलग-अलग जगहों पर बहुत सी चीजें बदलने की जरूरत नहीं है। लोलो कोड के साथ, आपका सारा काम एक ही जगह होता है।

एक बार जब आप अपना एप्लिकेशन सहेज लेते हैं और चला लेते हैं तो आपको इसे चालू रखने के लिए अपने स्वयं के सर्वर को बनाए रखने या प्रावधान करने के बारे में चिंता करने की आवश्यकता नहीं होती है (अर्थात यह पूरी तरह से "सर्वर रहित") है। जब तक आप अपने स्वयं के सार्वजनिक क्लाउड खाते या निजी डेटासेंटर में निजी रनटाइम का उपयोग करने का निर्णय नहीं लेते। लोलो रनटाइम-डी डॉक्स यहां देखें । रनटाइम-डी एक स्टैंडअलोन बाइनरी है जो किसी भी लैपटॉप या लिनक्स सर्वर को लोलो रनटाइम में बदल देता है।

सारांश

AWS एक व्यापक क्लाउड प्लेटफ़ॉर्म है, जो विश्व स्तर पर डेटा केंद्रों से पूर्ण विशेषताओं वाली सेवाएँ प्रदान करता है।

AWS के साथ, आप कई काम कर सकते हैं, लेकिन इसके लिए अपने विचार को एक ऐप में बदलने और AWS पर लागू करने के लिए अच्छे प्रयास और समय की भी आवश्यकता होती है। लोलो कोड आपको अपने विकास को गति देने और इसे कम खर्च में चालू रखने में मदद करेगा। हालांकि लोलो कोड एडब्ल्यूएस क्लाउड का उपयोग ऐप्स को तैनात करने के लिए करता है, यह आपको अपने स्वयं के रनटाइम का उपयोग करने की क्षमता भी प्रदान करता है, जिससे यह क्लाउड एग्नॉस्टिक बन जाता है।

❤️ लोलो