ज़्यादातर web apps एक ही server पर चलाई जा सकती हैं
- web development की दुनिया को देखते हुए ऐसा लगता है कि कई websites और apps को जटिल infrastructure की ज़रूरत नहीं होती, और ज़्यादातर websites व apps को प्रति सेकंड 10 से कम requests मिलते हैं, जबकि व्यस्त दिनों में यह संख्या लगभग 50 तक होती है।
- दुनिया भर में endpoints होने से latency कम हो सकती है, लेकिन data तक पहुंचना फिर भी ज़रूरी है; इसलिए अगर client से endpoint केवल 20ms दूर हो, लेकिन database उस endpoint से 200ms दूर हो, तो इसका खास मतलब नहीं रह जाता।
- caching उपयोगी है, लेकिन यह CDN या साधारण HTTP caching से हासिल की जा सकती है। update के बाद नई files को CDN पर push कर दिया जाए, तो अधिकांश मामलों में पूरी site CDN से चलाई जा सकती है।
- dynamic functionality के लिए कुछ API endpoints की ज़रूरत हो सकती है, लेकिन इसे उदाहरण के लिए JavaScript से संभाला जा सकता है।
- ज़्यादातर projects को $5 वाले VPS पर containers में चलाया जा सकता है, और यह शायद अधिक तेज़ भी हो सकता है।
GN⁺ की राय
- यह लेख web app development में infrastructure के अत्यधिक उपयोग पर एक आलोचनात्मक नज़र पेश करता है। इसमें कहा गया है कि कई web apps वास्तव में सरल infrastructure पर भी पर्याप्त रूप से चल सकते हैं, और यह शुरुआती software engineers को याद दिलाता है कि infrastructure बनाते समय अनावश्यक resource investment से बचें और जितनी ज़रूरत हो उतने ही resources का सही उपयोग करें।
- लेख caching और CDN के महत्व पर भी ज़ोर देता है, जो web app performance बेहतर बनाने के लिए प्रमुख तत्व हैं। यह संकेत देता है कि web developers को performance optimization के लिए caching strategy पर विचार करना चाहिए।
- अगर web app का scale छोटा है या traffic बहुत अधिक नहीं है, तो जटिल distributed systems की बजाय single server या सरल cloud services पर विचार करना लागत के लिहाज़ से अधिक प्रभावी हो सकता है। यह खास तौर पर startups या छोटे projects पर लागू होता है।
- लेख web developers को तकनीकी चुनाव करते समय सावधानी बरतने और project की वास्तविक ज़रूरतों के अनुसार infrastructure चुनने की सलाह देता है। इससे technology trends के पीछे बहने के बजाय वास्तविक आवश्यकताओं को पूरा करने वाला development करने में मदद मिलती है।
- आलोचनात्मक दृष्टि से देखें, तो यह लेख बड़े पैमाने के traffic को संभालने वाले बड़े web apps या services पर लागू नहीं भी हो सकता। इसलिए यह समझना ज़रूरी है कि project के scale और requirements के अनुसार सही infrastructure चुनना महत्वपूर्ण है।
1 टिप्पणियां
Hacker News की राय
एक उपयोगकर्ता ने पुष्टि की कि जब उसका प्रोजेक्ट Hacker News (HN) के पहले पेज पर पहुँचा, तब भी वह 5 डॉलर के Digital Ocean droplet पर ट्रैफ़िक को अच्छी तरह संभाल पाया। उसका कहना है कि ज़्यादातर प्रोजेक्ट्स के लिए asynchronous responses और scheduler/queue का उपयोग करके लोड को समय के साथ horizontally distribute करना काफ़ी होता है। उसने यह भी आलोचना की कि नई DevOps संस्कृति ने cloud app deployment को अनावश्यक रूप से जटिल बना दिया है, और साधारण software के लिए ज़रूरत से ज़्यादा scale करने की आवश्यकता नहीं होती।
Standard Ebooks हर महीने काफ़ी page views और ebooks serve करता है, और HN के पहले पेज पर 3~4 बार आने के बावजूद सब कुछ एक single 4GB VPS पर संभालता है। उसका कहना है कि केवल 'Decline and Fall of the Roman Empire' ebook बनाने के लिए अधिक RAM की ज़रूरत पड़ी, इसलिए 2GB से 4GB में upgrade किया; अन्यथा 2GB server भी काफ़ी होता। इस बारे में एक blog post का लिंक भी दिया गया।
एक उपयोगकर्ता ने कहा कि k8s इस्तेमाल करने की एकमात्र वजह यह हो सकती है कि कोई engineer उसे सीखना चाहता हो, और शिकायत की कि k8s की वजह से वह server logs तक भी नहीं देख पाता। उसका दावा था कि Cloudflare के 5 डॉलर वाले plan से ही सब कुछ संभल सकता था।
यह भी उल्लेख किया गया कि sqlite.org प्रतिदिन 500,000 से अधिक HTTP requests संभालता है और लगभग 200GB content serve करता है, जबकि वह 40 डॉलर/माह के Linode का उपयोग करता है। उसका तर्क था कि अगर आपका app sqlite.org से अधिक requests नहीं संभालता, तो आपको इससे अधिक खर्च करने की ज़रूरत नहीं है।
एक उपयोगकर्ता ने साझा किया कि वह Oracle Free Tier का उपयोग करके backend को मुफ़्त में चला रहा है, और Cloudflare tunneling तथा Pages के ज़रिए frontend integration भी मुफ़्त में लागू किया है, जिससे वह प्रतिदिन लगभग 10,000 requests संभालने वाले कई web apps चला रहा है।
एक उपयोगकर्ता ने बताया कि वह एक single 5 euro server पर कई applications चला रहा है, जिनमें एक personal website, दो multiplayer game servers, और tunneling के लिए frp शामिल हैं, और वह server के जवाब देने बंद करने तक उसमें और चीज़ें जोड़ने की योजना रखता है। उसने यह भी कहा कि अन्य applications भी 5 euro VM पर अच्छी तरह चलती हैं।
एक उपयोगकर्ता ने अपना अनुभव साझा किया कि Terraform files की वजह से उसने वास्तविक features लिखने की तुलना में 4 गुना अधिक समय खर्च किया। उसने कहा कि उस कंपनी को प्रतिदिन 1,000 से भी कम hits मिलते थे।
एक उपयोगकर्ता ने यह उल्लेख करते हुए एक संबंधित लिंक साझा किया कि 4 डॉलर/माह का VPS प्रति सेकंड हज़ारों queries संभाल सकता है।
एक उपयोगकर्ता ने ध्यान दिलाया कि ज़्यादातर web apps एक single machine पर चल सकते हैं, लेकिन अधिकतर ग्राहक लगभग 100% uptime की अपेक्षा करते हैं, और एक single machine अक्सर ग्राहकों की आवश्यकताओं को पूरा नहीं कर पाती।
एक अन्य उपयोगकर्ता, जो basic web apps के लिए जटिल systems की आवश्यकता से असहमत था, ने कहा कि FAANG जैसी कंपनियाँ भी internal services और dashboards को एक single binary में चलाती हैं; लेकिन जब downtime सीधे नुकसान में बदलने लगता है, तब complex systems की आवश्यकता समझ में आती है।