• Meta का आंतरिक रूप से उपयोग किया जाने वाला FaaS प्लेटफ़ॉर्म
  • दर्जनों data center regions में वितरित 1 लाख से अधिक servers पर हर दिन खरबों function calls को प्रोसेस करता है
  • दावा है कि यह AWS Lambda, Azure Functions से अधिक efficient है, और इसे "XFaaS: Hyperscale and Low Cost Serverless Functions" पेपर के ज़रिए सार्वजनिक किया गया

दिलचस्प आँकड़े और संकेत

  • पेपर का मुख्य बिंदु यह है कि software के ज़रिए hardware उपयोग को optimize करके serverless performance सुधारी जा सकती है
  • Meta ने serverless functions के startup overhead में होने वाली बर्बादी को पहचाना और ऐसा Universal Worker emulation करने का लक्ष्य रखा, जिसमें हर worker बिना startup overhead के तुरंत सभी functions चला सके
    • इस स्तर के बड़े scale पर hardware cost बहुत बड़ी होती है और बहुत छोटा प्रतिशत भी मायने रखता है
  • XFaaS का उपयोग केवल non-user-facing functions के लिए होता है। user-facing features में serverless functions का लगातार उपयोग करने के लिए variable latency बहुत अधिक है
  • XFaaS के clients function calls को बहुत तीव्र तरीके से चलाते हैं। peak demand, off-peak demand की तुलना में 4.3 गुना अधिक है
    • उदाहरण के लिए, 15 मिनट के भीतर 2 करोड़ function calls XFaaS में submit किए गए थे
    • Meta ने पाया कि अचानक बढ़ने वाले functions में भी कुछ patterns होते हैं, और इसका उपयोग करके workload में spike होने वाले functions को अधिक predictable बनाया गया

XFaaS कितना efficient है?

  • industry average से कहीं अधिक 66% का daily average CPU utilization हासिल किया
  • समय (function latency के माध्यम से) और स्थान (कम व्यस्त data centers को भेजकर) दोनों का उपयोग करके load को कुशलतापूर्वक distribute करता है
    > Meta लगातार अधिक से अधिक functions को - जिनका load और cost predict किया जा सकता है - कम उपयोग वाले समय स्लॉट्स में schedule कर रहा है
  • internal cloud होने के कारण Meta कई अनोखे optimizations कर सकता है, जैसे एक ही process में कई users के कई functions चलाना
  • अधिकांश functions 1 सेकंड के भीतर चल जाते हैं, लेकिन सभी नहीं

XFaaS ने कौन-सी समस्याएँ हल कीं

  • समस्या: लंबा cold start time
    • अगर container बहुत जल्दी terminate हो जाए, तो अगली call के लिए पूरे container को फिर से initialize करना पड़ता है
    • अगर container बहुत देर से terminate हो, तो वह idle रहकर कीमती computing resources बर्बाद करता है
    • समाधान: XFaaS JIT compilation जैसी तकनीकों का उपयोग करके इस स्थिति का approximate करता है कि हर worker सभी functions तुरंत चला सके
  • समस्या: गंभीर load imbalance
    • over-provisioning से अतिरिक्त hardware cost आती है, और under-provisioning होने पर system धीमा हो जाता है
    • समाधान: XFaaS delay-tolerant function execution को कम उपयोग वाले समय तक टालता है और function calls को दुनिया भर के data center regions में फैलाता है
  • समस्या: downstream services पर overload
    • उदाहरण: non-user-facing functions की calls में spike आने से user-facing online services ठप हो चुकी हैं
    • समाधान: XFaaS TCP congestion control जैसे mechanism का उपयोग करके function execution को नियंत्रित करता है

सामान्य FaaS से तुलना (AWS Lambda, Google Cloud Functions, Azure Functions)

  • public cloud FaaS आमतौर पर function execution को एक single data center region तक सीमित रखते हैं, जबकि XFaaS function calls को वैश्विक स्तर पर distribute कर सकता है, जिससे load balancing बेहतर होती है
  • FaaS platforms आमतौर पर hardware utilization को नज़रअंदाज़ करके latency कम करने पर ध्यान देते हैं। XFaaS hardware utilization और function call throughput पर ज़ोर देता है
  • XFaaS की कुछ तकनीकें public cloud के लिए उपयोगी हो सकती हैं
    • caller को function execution start time specify करने की अनुमति देना
    • function owner को completion deadline से जुड़े service level objective (SLO) सेट करने देना (कम SLO होने पर बेहतर runtime के लिए delay संभव)
    • function owner को function के लिए importance level specify करने देना
  • public cloud, XFaaS की तरह कई users के functions को एक ही process में नहीं चला सकते, लेकिन बड़े cloud customers virtual private cloud में XFaaS approach अपना सकते हैं
  • Meta की कुछ ही teams XFaaS capacity का बड़ा हिस्सा उपयोग करती हैं। public cloud का उपयोग करने वाले ऐसे ही बड़े customers भी XFaaS strategy से लाभ उठा सकते हैं

Background: मान्यताएँ और आवश्यकताएँ

  • मान्यताएँ
    • मुख्य insight यह है कि XFaaS के अधिकतर functions automated workflows द्वारा trigger होते हैं और इनमें कुछ latency स्वीकार्य होती है
    • इससे XFaaS समय (functions को delay करके) और स्थान (कम व्यस्त data centers को भेजकर) के पार load distribute कर सकता है
    • XFaaS PHP, Python, Erlang, Haskell runtimes और सभी भाषाओं के लिए एक सामान्य container-based runtime को support करता है
    • functions में कई ऐसे attributes होते हैं जिन्हें developers सेट कर सकते हैं, जैसे function name, arguments, runtime, importance, execution start time, execution completion deadline, resource quota, concurrency limit, retry policy आदि; execution completion deadline को कुछ सेकंड से 24 घंटे तक सेट किया जा सकता है
    • XFaaS में हर region की hardware capacity अलग होती है, इसलिए load balancing में इसे ध्यान में रखना पड़ता है
  • workload प्रकार
    • Meta, XFaaS पर तीन प्रकार के workloads को support करता है
      • queue-triggered functions
      • event-triggered functions (data warehouse और data stream systems के data change events)
      • timer-triggered functions (पहले से तय समय पर अपने-आप चलने वाले)
    • XFaaS का उपयोग non-user-facing asynchronous recommendation systems, logging, productivity bots, notifications आदि में होता है

समग्र architecture

(यह हिस्सा बहुत लंबा है और पेपर की सामग्री को लगभग ज्यों का त्यों दोहराता है, इसलिए इसे छोड़ा गया है।)

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.