संक्षेप में, क्या हमें समग्र व्यवस्था की भलाई के लिए मृत्यु को अपने कार्यक्रमों, प्रक्रियाओं और थ्रेड्स को निम्न स्तर पर डिजाइन करना चाहिए?
विफलताएं होती हैं। प्रक्रियाएं मर जाती हैं। हम आपदा की योजना बनाते हैं और कभी-कभी इससे उबर जाते हैं। लेकिन हम शायद ही कभी अप्रत्याशित कार्यक्रम मृत्यु को डिजाइन और कार्यान्वित करते हैं। हमें उम्मीद है कि जब तक हम उन्हें चालू रखने के लिए देखभाल करेंगे, तब तक हमारी सेवाओं में तेजी आएगी।
इस अवधारणा का एक वृहद उदाहरण है नेटफ्लिक्स का कैओस बंदर , जो कुछ परिदृश्यों में AWS के उदाहरणों को अनियमित रूप से समाप्त करता है। उनका दावा है कि इससे उन्हें समस्याओं का पता लगाने और अधिक निरर्थक प्रणाली बनाने में मदद मिली है।
मैं जिस बारे में बात कर रहा हूं वह निचले स्तर का है। यह विचार परंपरागत रूप से लंबे समय से चल रही प्रक्रियाओं के लिए बेतरतीब ढंग से बाहर निकलने के लिए है। यह डिजाइन में अतिरेक को मजबूर कर सकता है और अंततः अधिक लचीला सिस्टम उत्पन्न करता है।
क्या इस अवधारणा का पहले से कोई नाम है? क्या यह पहले से ही उद्योग में उपयोग किया जा रहा है?
संपादित करें
टिप्पणियों और उत्तरों के आधार पर, मुझे डर है कि मैं अपने प्रश्न में स्पष्ट नहीं था। विस्तृत जानकारी के लिए:
- हां, मेरा मतलब बेतरतीब ढंग से है,
- हां, मेरा मतलब उत्पादन में है, और
- नहीं, केवल परीक्षण के लिए नहीं।
समझाने के लिए, मैं बहुकोशिकीय जीवों के लिए एक सादृश्य आकर्षित करना चाहूंगा।
प्रकृति में, जीवों में कई कोशिकाएं होती हैं। कोशिकाएँ अतिरेक पैदा करने के लिए खुद को छोड़ देती हैं, और वे अंततः मर जाती हैं। लेकिन जीव के कार्य करने के लिए हमेशा सही प्रकार की पर्याप्त कोशिकाएं होनी चाहिए। यह अत्यधिक निरर्थक प्रणाली घायल होने पर उपचार की सुविधा भी देती है। कोशिकाएँ मर जाती हैं इसलिए जीव जीवित रहता है।
एक कार्यक्रम में यादृच्छिक मौत को शामिल करना अधिक से अधिक प्रणाली को व्यवहार्य बने रहने के लिए अतिरेक रणनीतियों को अपनाने के लिए मजबूर करेगा। क्या ये वही रणनीतियाँ अन्य प्रकार की अप्रत्याशित असफलता के सामने व्यवस्था को स्थिर रखने में मदद करेंगी?
और, अगर किसी ने यह कोशिश की है, तो इसे क्या कहा जाता है? मैं इसके बारे में और पढ़ना चाहता हूँ अगर यह पहले से मौजूद है।