27 पॉइंट द्वारा xguru 2022-10-11 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • वेब की शुरुआत एक ही कंप्यूटर से हुई थी
  • 32 साल बीत चुके हैं, लेकिन आज भी हम ऐसे डेवलप करते हैं मानो यह एक ही कंप्यूटर हो
  • पिछले कुछ सालों में, static sites को CDN के ज़रिए यूज़र के नज़दीक से serve किया जाता रहा है
  • अब dynamic web apps के साथ भी यही हो रहा है। अब हर जगह deploy करना संभव है

Edge क्या है

  • जब लोग "The Edge" कहते हैं, तो उसका मतलब होता है कि आपकी site या app दुनिया भर में हर यूज़र के पास मौजूद कई servers पर deploy की जाती है
  • जब कोई आपकी site/app को request करता है, तो उसे सबसे नज़दीकी server तक मार्गदर्शित किया जाता है
  • ये distributed servers सिर्फ static site assets ही नहीं, बल्कि dynamic web apps को सपोर्ट करने वाला custom code भी चला सकते हैं
  • इस तरह नज़दीकी server की ओर जाना latency optimization की कोशिश भी है
  • page loading जितनी लंबी होगी, उतनी ही संभावना है कि यूज़र साइट छोड़ दे
  • अगर आप Heroku जैसी जगह पर deploy करते हैं, तो वह North America के AWS data center में जाता है, और Europe या दूसरे शहरों में TTFB(Time to First Byte) धीमा हो जाता है
  • लेकिन अगर हम अपने Edge Network पर Deno Deploy पर होस्ट किए गए Deno.com को test करें, तो TTFB काफ़ी तेज़ मिलता है
  • Server का concept पहली बार 1969 के RFC में पेश किया गया था
  • Tim Berners-Lee के office में मौजूद NeXT machine पहला web server था। लेकिन उस समय तक internet पहले ही 20 साल से ज़्यादा समय से चल रहा था

कंटेंट को यूज़र के पास cache करना

  • server architecture ने लंबे समय तक अच्छी तरह काम किया, लेकिन 90 के दशक के आखिर से वेब के बढ़ने पर समस्याएँ आने लगीं
  • Akamai ने 1998 में सबसे पहले CDN पेश किया
  • Akamai का CDN servers के distributed system में content को cache करता है
  • CDN modern web का एक महत्वपूर्ण हिस्सा बन चुका है

Less servers, more serverless

  • servers में "overloading" के उलट दिशा में भी समस्या होती है: under-utility
  • server को बंद नहीं किया जा सकता, उसे 100% समय चालू रहना पड़ता है, और उसका पूरा खर्च देना पड़ता है
  • serverless इस समस्या को कम करता है। ज़रूरत पड़ने पर शुरू होता है और फिर बंद हो जाता है
  • लेकिन "serverless" एक गलत नाम है। server गायब नहीं हुए हैं, वे अब भी शामिल हैं
  • बस हमेशा चलने वाले dedicated servers नहीं होते
  • व्यापक रूप से इस्तेमाल किया गया पहला serverless framework AWS Lambda था
  • serverless के दो फ़ायदे हैं
    • सिर्फ उतने का भुगतान करें जितना इस्तेमाल किया
    • servers के management की चिंता करने की ज़रूरत नहीं। न planning, न management, न maintenance
  • नुकसान ज़्यादातर performance में है
    • "Cold Start" समस्या
    • और servers अब भी centralized होते हैं, इसलिए लंबा round-trip बना रहता है
  • और इस तरह हम आज की स्थिति तक पहुँचे हैं

Livin's on the edge

  • Edge की खूबसूरती यह है कि यह CDN के फ़ायदे (यूज़र के पास होना) और Serverless के फ़ायदे (functions चलाना) को साथ लाकर जोड़ता है
  • यानी, Edge पर यूज़र के नज़दीक custom code चलाया जा सकता है। इसके कई लाभ हैं

बेहतर performance

  • यही वह एक चीज़ है जिसकी यूज़र वास्तव में परवाह करते हैं
  • जब आपकी site या app यूज़र के पास वाले Edge server पर चलती है, तो वह central server से तेज़ होती है
  • लेकिन performance का फ़ायदा यहीं खत्म नहीं होता
  • Compute यूज़र के browser की बजाय Edge पर चलता है
    • app को यूज़र की machine पर कम resources चाहिए होते हैं
    • यूज़र तक कम payload पहुँचता है, इसलिए कम bandwidth इस्तेमाल होती है
    • functions एक controlled environment में चलती हैं, इसलिए functions और APIs लगातार एक जैसा व्यवहार करती हैं

बेहतर security

  • computation को client/device से serverless Edge पर ले जाने से app का attack surface कम हो जाता है
  • DDoS attack करना अधिक कठिन हो जाता है

बेहतर developer experience

  • अभी Edge के लिए code लिखना ज़रूरत से ज़्यादा जटिल है
  • ज़्यादातर समस्याएँ Edge development की hybrid प्रकृति की वजह से हैं
  • कई frameworks Edge-First रूप में विकसित नहीं किए गए, इसलिए developer को चुनना पड़ता है कि कौन-सा function या page Edge पर चलेगा और कौन-सा browser में
  • लेकिन Fresh जैसे नए frameworks SSR और Islands architecture के साथ इसे सरल बनाते हैं
  • Fresh को Deno Deploy के साथ इस्तेमाल करने पर latency optimization के ज़रिए Lighthouse Score में पूर्ण अंक पाना संभव है
  • Edge internet की अगली iteration है
    वेब को और तेज़ बनाने का यह अगला कदम है, और यूज़र व developer दोनों के लिए अधिक सुरक्षित जगह है

3 टिप्पणियां

 
cometkim 2022-10-17

Fastly ब्लॉग में तो यह अनुमान लगाया गया है कि मौजूदा data center computing infrastructure का लगभग 70% edge की ओर चला जाएगा haha