cold start तब होता है जब कोई request आती है और कोई गर्म execution environment उपलब्ध नहीं होता, तो platform को एक बनाना पड़ता है, आपका कोड download और unpack करना पड़ता है, runtime शुरू करना पड़ता है, और request संभालने से पहले आपका initialization चलाना पड़ता है। इसे घटाने के लिए package छोटा करें, हल्का runtime चुनें, भारी setup को request के रास्ते से हटाएं, और connection दोबारा इस्तेमाल करें। latency के प्रति संवेदनशील रास्तों के लिए warming के जुगाड़ों की जगह provisioned concurrency इस्तेमाल करें।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर देखना चाहता है कि आप execution model समझते हैं, न कि function को जादू मानते हैं। वे देरी के हिस्से सुनते हैं, initialization और प्रति invocation काम का फर्क, और यह नपा तुला नजरिया कि यह कब मायने रखता है, क्योंकि cold start यूजर के सामने वाली synchronous call की tail latency पर असर डालते हैं और asynchronous processing में शायद ही मायने रखते हैं।
अपना जवाब कैसे स्ट्रक्चर करें
- cold start को उसके असली चरणों में तोड़ें।
- जो आपके हाथ में है उसे platform के हाथ वाले से अलग करें।
- optimization को असर के क्रम में रखें।
- बताएं कि यह कब मायने रखता है और कब आप इसे नजरअंदाज करेंगे।
उदाहरण जवाब
cold start का मतलब है platform एक नया execution environment बना रहा है क्योंकि कोई गर्म environment खाली नहीं है। इसका मतलब है उसे तैयार करना, आपका artifact खींचकर unpack करना, runtime boot करना, और आपका handler call होने से भी पहले आपका initialization कोड चलाना। जो हिस्से मेरे हाथ में हैं वे हैं artifact का आकार और initialization, इसलिए मैं dependency जमकर छांटता हूं, क्योंकि मोटा package हर cold start में असली वक्त जोड़ता है, और मैं configuration load तथा client बनाने जैसी चीजें handler के बाहर ले जाता हूं ताकि वे प्रति request के बजाय प्रति environment एक बार चलें और गर्म invocation पर दोबारा इस्तेमाल हो जाएं। runtime का चुनाव भी मायने रखता है; एक हल्का runtime किसी भारी virtual machine के मुकाबले कहीं तेज शुरू होता है, बशर्ते मैं platform का snapshot feature न इस्तेमाल कर रहा हूं। जब रास्ता यूजर के सामने का हो और tail latency मायने रखती हो, तो मैं optimize करना बंद करके अपेक्षित baseline के लिए provisioned concurrency खरीद लेता हूं, क्योंकि उससे environment तैयार रहते हैं। जो मैं अब नहीं करता वह है function को timer से ping करके गर्म रखना; असली concurrency पर वह भरोसे लायक नहीं है। queue से चलने वाले या batch काम के लिए मैं आमतौर पर इसे मान ही लेता हूं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- concurrency के दौरान scheduled warming ping भरोसेमंद क्यों नहीं है?
- provisioned concurrency आपकी deployment प्रक्रिया के साथ कैसे जुड़ती है?
- अपने यूजर्स पर cold start का असली असर आप कैसे नापेंगे?
क्लाउड इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें