ब्रेक्स में सुंदरता: अराजकता इंजीनियरिंग के माध्यम से लचीला सिस्टम बनाना

लेखक: Laura McKinney
निर्माण की तारीख: 2 अप्रैल 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
ब्रेक्स में सुंदरता: अराजकता इंजीनियरिंग के माध्यम से लचीला सिस्टम बनाना - प्रौद्योगिकी
ब्रेक्स में सुंदरता: अराजकता इंजीनियरिंग के माध्यम से लचीला सिस्टम बनाना - प्रौद्योगिकी

विषय


स्रोत: pressureUA / iStockphoto

ले जाओ:

आधुनिक सिस्टम डाउनटाइम से बचने के लिए अराजकता को संभालने में सक्षम होना चाहिए। यही कारण है कि इसकी पहले से कहीं अधिक महत्वपूर्ण है पूरी तरह से सिस्टम का परीक्षण और उनकी लचीलापन सुनिश्चित करना।

उनसे बचने के हमारे सबसे बड़े प्रयासों के बावजूद, आईटी घटनाएं नौकरी का एक अपरिहार्य हिस्सा हैं - और व्यवसाय-प्रभावित डाउनटाइम से आगे रहने की कोशिश केवल पेचीदा हो रही है। सिस्टम आज कसकर युग्मित और तेजी से जटिल है, और अधिक चलती भागों के साथ चीजों के गलत होने के अधिक अवसर आते हैं।

यह एक कारण है कि अधिक से अधिक संगठन सेवा की उपलब्धता में वृद्धि और असफलता के लिए बेहतर लचीलापन के लिए माइक्रोसर्विसेज की ओर रुख कर रहे हैं। लेकिन जब ये अखंड अनुप्रयोगों को तोड़ने के लिए महान परिसर होते हैं, तो वे संभावित रूप से विफलता के जोखिम को भी कम कर सकते हैं - जब तक कि मन में लचीलापन के साथ स्पष्ट रूप से डिज़ाइन नहीं किया जाता है।

असफलता के लिए तैयारी

वितरित प्रणालियों की स्वाभाविक अराजक प्रकृति को देखते हुए, सेवाओं को न केवल अनुमानित विफलता के लिए विकसित किया जाना चाहिए, बल्कि विफलता की स्थिति में स्वचालित रूप से पुनर्प्राप्त करने के लिए। इसका मतलब यह है कि आपके सिस्टम को यह सुनिश्चित करने के लिए नियमित आधार पर विफलताओं को उकसाना है कि ग्राहकों को समाप्त करने के लिए सेवा को बाधित किए बिना अराजकता को संभाल सकें। और इसे प्राप्त करने के लिए, आपको परीक्षण वातावरण में उत्पादन जैसे यातायात को अनुकरण करने की क्षमता की आवश्यकता होती है।


बेशक, उत्पादन में बदलाव करने से पहले लचीलापन का परीक्षण करना एक अच्छा विचार है। यदि आप ऐसा नहीं करते हैं, तो आप यह सत्यापित नहीं कर पाएंगे कि आपकी सेवाएं औसत और पीक लोड दोनों का समर्थन कर सकती हैं। वास्तव में, सबसे सुरक्षित शर्त यह है कि आपके उत्पाद को यह सुनिश्चित करने के लिए कि पीक राशि को दोगुना करने के लिए बिना पैमाने पर संभाल कर सकते हैं।

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

अगला कदम

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


सार्थक विफलता की घटनाएं काफी हद तक आपकी सेवाओं के लेआउट पर निर्भर करती हैं, और आप उन्हें विशिष्ट प्रश्न पूछकर तैयार कर सकते हैं जो आपके लिए प्रासंगिक हैं। मिसाल के तौर पर, जब एक डेटाबेस एक निश्चित अवधि के लिए अगम्य हो जाता है तो फ्रंट-एंड का उपयोग करने वाले लोगों के लिए क्या प्रभाव पड़ता है? क्या वे उपयोगकर्ता अभी भी वेब UI नेविगेट कर सकते हैं? क्या वे अभी भी अपनी जानकारी के लिए अपडेट जारी कर सकते हैं, और क्या डेटाबेस फिर से उपलब्ध होने पर उन अपडेट को सही तरीके से संसाधित किया जाएगा?

यदि आप कई माइक्रोसर्विसेज चलाते हैं, तो आप पूछ सकते हैं कि क्या कोई व्यक्तिगत सेवा क्रैश होने पर वैश्विक आउटेज होगा। या यदि आपके पास सेवाओं के बीच संचार को बफर करने के लिए एक कतारबद्ध तंत्र है, तो क्या होता है जब उपभोक्ता सेवा (या सेवाएं) काम करना बंद कर देती हैं? क्या उपयोगकर्ता अभी भी आपके एप्लिकेशन के साथ काम कर पाएंगे? और एक औसत भार दिया, कतारों के अतिप्रवाह से पहले आपके पास कितनी देर है और आप खोना शुरू कर देते हैं?

नो बग्स, नो स्ट्रेस - योर स्टेप बाय स्टेप गाइड बाय स्टेप गाइड टू लाइफ-चेंजिंग सॉफ्टवेर विदाउट योर लाइफ

जब कोई भी सॉफ़्टवेयर गुणवत्ता की परवाह नहीं करता है तो आप अपने प्रोग्रामिंग कौशल में सुधार कर सकते हैं।

एक बार जब आप अपने बुनियादी ढांचे के बारे में कुछ महत्वपूर्ण प्रश्नों को परिभाषित कर लेते हैं, तो आप उन विफलताओं का अनुकरण करने के लिए विभिन्न तरीकों की सूची बनाना शुरू कर सकते हैं। यह किसी विशेष सेवा या डेटाबेस सर्वर को रोकने के लिए पर्याप्त हो सकता है। आप एक डेड-लॉक का अनुकरण करने के लिए किसी सेवा के मुख्य धागे को ब्लॉक करना चाह सकते हैं, जबकि इसका कंटेनर अभी भी उत्तरदायी और चल रहा है। आप विशिष्ट सेवाओं के बीच यातायात को अवरुद्ध करने के लिए अपने नेटवर्क में नियम लागू करने का निर्णय ले सकते हैं। लिनक्स वातावरण पर, आप उच्च विलंबता, गिरा, दूषित या डुप्लिकेट पैकेट जैसी नेटवर्क स्थितियों का अनुकरण करने के लिए environments tc ’जैसे उपकरणों का उपयोग कर सकते हैं। (परीक्षण में उपयोगकर्ताओं को शामिल करना महत्वपूर्ण हो सकता है। 4 कारणों में और पढ़ें कि यूएटी से पहले अंत उपयोगकर्ताओं को परीक्षण में भाग लेने की आवश्यकता क्यों है।)

अभ्यास के माध्यम से सीखना और सुधारना

विफलता परिदृश्य बनाने के सबसे मूल्यवान पहलुओं में से एक यह है कि वे उन सभी संभावित तरीकों को उजागर कर सकते हैं जो सिस्टम विफल हो सकते हैं, जिससे आत्म-चिकित्सा तर्क के लिए मार्ग का निर्माण होता है। आपकी टीम सेवाओं को मैन्युअल रूप से पुनर्प्राप्त करने के चरणों के माध्यम से जाएगी - एक महान ड्रिल, वैसे, पुष्टि करने के लिए कि वे SLAs के भीतर ऐसा करने में सक्षम हैं। इस पुनर्प्राप्ति प्रक्रिया के स्वचालन पर काम किया जा सकता है, लेकिन इस बीच, आप यह जानकर आराम कर सकते हैं कि आपकी टीम सेवाओं को ट्रैक पर वापस लाने की प्रक्रिया से चली है। विफलता परिदृश्यों को यादृच्छिक और नियमित बनाने और रन के पूर्ण विवरण का खुलासा नहीं करने से, आप ड्रिल में खोज और निदान भी शामिल कर सकते हैं - जो कि, आखिरकार SLAs का एक महत्वपूर्ण हिस्सा है।

इसके मूल में, अराजकता इंजीनियरिंग सिस्टम की जटिलता को एक के रूप में लेता है, नई और निराला परिस्थितियों का अनुकरण करके इसका परीक्षण करता है, और देखता है कि सिस्टम कैसे प्रतिक्रिया देता है। यह डेटा इंजीनियरिंग टीमों को उच्च लचीलापन प्राप्त करने के लिए सिस्टम को फिर से डिज़ाइन और पुन: कॉन्फ़िगर करने की आवश्यकता है। नई और उपयोगी चीजें सीखने के लिए बहुत सारे अवसर हैं। उदाहरण के लिए, आपको ऐसे उदाहरण मिल सकते हैं जहां सेवाओं को अपडेट नहीं मिल रहा है जब डाउनस्ट्रीम सेवाएं बदल गई हैं, या ऐसे क्षेत्र जहां निगरानी पूरी तरह से गायब है। अपने उत्पाद को अधिक लचीला और मजबूत बनाने के लिए रोमांचक तरीकों की कमी नहीं है!