बैकएंड डेवलपर इंटरव्यू सवाल

आपको एक बड़े monolith से कोई एक क्षमता निकालकर उसकी अपनी service बनानी है। बिना किसी big bang रिलीज़ के आप यह कैसे करेंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

strangler pattern इस्तेमाल करें: उस क्षमता के आगे एक facade लगाएं, उसके पीछे नई service बनाएं, और feature flag से ट्रैफ़िक थोड़ा थोड़ा खिसकाएं जबकि monolith fallback बना रहे। डेटा सबसे आखिर में बांटें, आमतौर पर dual write और backfill करके जब तक नया store अधिकारिक न हो जाए, और पुराना कोड हटाने से पहले एक verification दौर रखें जिसमें दोनों रास्ते चलें और नतीजों की तुलना हो।

इंटरव्यूअर यह क्यों पूछते हैं

यह migration की समझ परखता है, जो सीनियर बैकएंड काम का बड़ा हिस्सा है। इंटरव्यूअर हर चरण पर rollback के साथ छोटे कदम चाहते हैं, यह समझ कि डेटा का बंटवारा कोड के बंटवारे से कठिन है, और ऐसी परिभाषा जिसमें काम पूरा तभी माना जाए जब पुराना रास्ता हट जाए। जो कैंडिडेट पूरा rewrite और एक cutover weekend बताते हैं, वे दरअसल यह बता रहे होते हैं कि घटना कैसे हुई थी।

अपना जवाब कैसे स्ट्रक्चर करें

  • एक seam से शुरू करें: calls को facade या interface से गुज़ारें।
  • flag के पीछे ट्रैफ़िक थोड़ा थोड़ा खिसकाएं, rollback सस्ता रखते हुए।
  • डेटा का बंटवारा साफ साफ संभालें, dual writes और backfill के साथ।
  • पूरा होने की परिभाषा यह रखें कि पुराना रास्ता हट गया, और उससे पहले verification हुआ।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

मैं पहले एक seam बनाऊंगा। monolith के भीतर भी उस क्षमता के सारे callers एक ही interface से गुज़रें, और यह refactor अक्सर अपने आप में करने लायक होता है क्योंकि इससे पता चलता है कि सीमा असल में कितनी उलझी हुई है। फिर नई service वही contract लागू करती है, और facade एक flag के पीछे थोड़े प्रतिशत ट्रैफ़िक को उधर भेजता है, शुरुआत उन read only calls से जहां गलत जवाब सस्ता पड़ता है। मैं कुछ समय दोनों को shadow mode में चलाता हूं, एक ही request दोनों को भेजकर जवाब मिलाता हूं, क्योंकि इससे वे edge cases पकड़ में आते हैं जिन्हें किसी ने दस्तावेज़ में लिखा ही नहीं। मुश्किल हिस्सा डेटा है: मैं dual write करता हूं, इतिहास backfill करता हूं, मिलान करता हूं, और तभी नए store को अधिकारिक बनाता हूं, जहां monolith साझा tables की जगह service से पढ़ता है। हर कदम का rollback बस एक flag पलटना है। और migration तब तक पूरी नहीं होती जब तक पुराना कोड और उसकी tables delete न हो जाएं; मैंने strangler migrations को नब्बे प्रतिशत पर अटकते देखा है, जिससे सालों तक दो सिस्टम संभालने पड़ते हैं, जो दोनों में से किसी भी अकेले विकल्प से बुरा है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • जो ट्रांजैक्शन पुरानी सीमा के आर पार फैला था, उसे आप कैसे संभालेंगे?
  • shadow mode में side effects दोगुने किए बिना नतीजों की तुलना कैसे करेंगे?
  • किस बात पर आप रुककर पूरी migration वापस पलट देंगे?

बैकएंड डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं