स्केलिंग और कंकरेन्सी कंट्रोल्स

AWS Lambda के साथ Serverless Applications

Claudio Canales

Senior DevOps Engineer

एक तस्वीर में स्केलिंग

  • ज्यादा डिमांड -> ज्यादा पैरेलल रन.
  • हर रन एक एक्सिक्यूशन एनवायरनमेंट लेता है.
  • Concurrency = अभी चल रहे रन.

डिमांड स्पाइक -> अधिक एनवायरनमेंट

AWS Lambda के साथ Serverless Applications

Concurrency क्या है?

  • एक invocation = एक यूनिट ऑफ वर्क.
  • Concurrency = अभी कितने चल रहे हैं.
  • अगर 10 चल रहे हैं, concurrency = 10.

पैरेलल invocations

AWS Lambda के साथ Serverless Applications

ज़रूरी concurrency का अनुमान

  • Thumb rule: concurrency = rps * duration.
  • Duration घटाएँ तो concurrency घटेगी.
  • इससे लिमिट्स को सुरक्षित सेट करें.

Concurrency फार्मूला

AWS Lambda के साथ Serverless Applications

उदाहरण: 50 rps पर 200 ms

  • 200 ms = 0.2 सेकंड.
  • 50 * 0.2 = 10 concurrent executions.
  • तेज़ कोड मतलब कम पैरेलल रन.

Concurrency कैलकुलेशन उदाहरण

AWS Lambda के साथ Serverless Applications

लिमिट्स: अकाउंट पूल बनाम फंक्शन स्लाइस

  • Concurrency अकाउंट स्तर पर लिमिट होती है.
  • किसी क्रिटिकल फंक्शन के लिए पूल का हिस्सा रिज़र्व करें.
  • बाकी फंक्शंस शेष हिस्सा साझा करते हैं.

अकाउंट concurrency पूल

AWS Lambda के साथ Serverless Applications

Reserved Concurrency: हार्ड कैप

  • एक सेफ्टी वाल्व.
  • पैरेलल वर्क को लिमिट करता है.
  • कैप के ऊपर invocations थ्रॉटल होते हैं.
  • एक noisy फंक्शन पूरी क्षमता नहीं ख़त्म कर सकता.

Reserved concurrency कैप

AWS Lambda के साथ Serverless Applications

थ्रॉटलिंग: यह कैसा दिखता है

  • Lambda concurrency लिमिट पर थ्रॉटल करती है.
  • कॉलर को सामान्य execution नहीं मिलता.
  • मॉनिटरिंग में throttles दिखते हैं.

थ्रॉटलिंग सिग्नल्स

AWS Lambda के साथ Serverless Applications

Provisioned Concurrency: वार्म क्षमता

  • प्री-इनिशियलाइज़्ड एनवायरनमेंट्स का पूल.
  • अक्सर एक alias के पीछे.
  • रिक्वेस्ट तेज़ी से शुरू होती हैं.

Provisioned concurrency वार्म पूल

AWS Lambda के साथ Serverless Applications

Cold start बनाम provisioned

Cold start

  • एक बार का initialization delay.
  • पहली रिक्वेस्ट सेटअप कॉस्ट चुकाती है.

Provisioned

  • Init काम पहले से हो चुका.
  • पहली रिक्वेस्ट सेटअप कॉस्ट नहीं चुकाती.

Cold बनाम provisioned टाइमलाइन

AWS Lambda के साथ Serverless Applications

Reserved बनाम provisioned (अलग समस्याएँ)

  • Reserved लोड कंट्रोल करता है.
  • Provisioned स्टार्टअप लेटेंसी कंट्रोल करता है.
  • कई प्रोडक्शन फंक्शंस दोनों लेते हैं.

Reserved बनाम provisioned तुलना

AWS Lambda के साथ Serverless Applications

डाउनस्ट्रीम सिस्टम्स की सुरक्षा

  • डेटाबेस सीमित कनेक्शंस सँभालता है.
  • Concurrency कैप इसे रोकती है.
  • ट्रैफिक स्पाइक आउटेज में बदल सकता है.

Concurrency कैप डेटाबेस बचाती है

AWS Lambda के साथ Serverless Applications

बर्स्ट बनाम स्थिर ट्रैफिक

  • बर्स्ट कई पैरेलल एनवायरनमेंट बनाते हैं.
  • स्लो हैंडलर्स concurrency ऊँची रखते हैं.
  • कैप्स स्पाइक को स्मूद कर सकते हैं.
  • Duration सुधारना भी स्केलिंग स्ट्रैटेजी है.

बर्स्ट ट्रैफिक बनाम स्थिर अवस्था

AWS Lambda के साथ Serverless Applications

फेल्यर्स और रिट्राइज़ लोड बढ़ाते हैं

  • रिट्राइज़ ट्रैफिक बढ़ा सकते हैं.
  • Concurrency लिमिट्स ब्लास्ट रेडियस घटाते हैं.
  • फेल्यर लूप डिपेंडेंसीज़ को ओवरव्हेल्म कर सकता है.

रिट्राइज़ लोड बढ़ाते हैं

AWS Lambda के साथ Serverless Applications

एक सरल ट्यूनिंग वर्कफ़्लो

  • मेज़रमेंट से शुरू करें.
  • थ्रॉटल या प्रेशर दिखे तो concurrency कैप करें.
  • Cold starts से लेटेंसी बढ़े तो provisioned क्षमता जोड़ें.

Measure -> cap -> pre-warm

AWS Lambda के साथ Serverless Applications

मुख्य बातें

  • Concurrency आपको स्केलिंग सोचने में मदद करती है.
  • अनुमान: rps * duration.
  • Reserved लोड कैप करता है; throttles पर नज़र रखें.
  • Provisioned cold-start लेटेंसी घटाता है.

Concurrency मुख्य बातें

AWS Lambda के साथ Serverless Applications

अभ्यास करते हैं!

AWS Lambda के साथ Serverless Applications

Preparing Video For Download...