उच्च-उपलब्धता एप्लिकेशन को कैसे डिज़ाइन करें


10

वर्तमान में हमारे पास एक क्लासिक एन-टियर एप्लिकेशन है: डीबी / वेब सेवा / फ्रंट-एंड। इसके अन्य घटक हैं, लेकिन यह मूल लेआउट है।

हम 3 मुख्य कारणों के लिए आवेदन उपलब्धता में सुधार करना चाहते हैं:

  1. हमारा मेजबान कभी-कभी आउटेज का अनुभव करता है (जैसा कि वे सभी करते हैं), और हम अपने ग्राहकों पर प्रभाव को कम करना चाहते हैं, इसलिए उदाहरण के लिए, वे डेटासेंटर ए पर स्विच करेंगे यदि डेटासेंटर ए नीचे है।
  2. जब हम संस्करण को अपग्रेड करते हैं, तो हम रखरखाव के लिए साइट को बंद कर देते हैं, और आमतौर पर कुछ घंटों (माइग्रेशन स्क्रिप्ट, आदि) को लेते हैं। हम चाहते हैं कि उपयोगकर्ताओं को अधिक निर्बाध संक्रमण हो, कम से कम एक डाउनटाइम संभव हो (वे सर्वर बी का उपयोग करते हैं जबकि सर्वर ए उन्नत हो रहा है)।
  3. विकल्प के रूप में, हमारे ग्राहक दुनिया भर में स्थित हैं, और हम चाहते हैं कि उनके संभावित रूप से भद्दे कनेक्शन के बावजूद उन्हें सबसे अच्छा अनुभव संभव हो (जो कोई भी भारतीय देवता के साथ काम करता है उसे पता होना चाहिए कि मेरा क्या मतलब है)। आदर्श रूप से, हम उनके कार्यालय में एक सर्वर को प्लग करने में सक्षम होना चाहते हैं (या अपने शहर के पास डेटासेंटर का उपयोग करना चाहते हैं), और यह हमारी वास्तुकला में मूल रूप से एकीकृत करेगा।

हमें ९९% उपलब्धता की आवश्यकता नहीं है, ९ ५% भी नहीं। यह एक दस्तावेज़ प्रबंधन ऐप है। किसी को परवाह नहीं। लेकिन चूंकि माइग्रेशन में कुछ समय लग सकता है, और दुनिया भर में ग्राहक हैं, कभी-कभी हम एक ग्राहक को अपने अधिकांश दिनों के लिए काम करने से रोकते हैं।

SQL भाग के लिए, भले ही "उचित" DBAs नहीं हैं, हम SQL संभावनाओं के बारे में जानते हैं : प्रतिकृति, मिररिंग, आदि DB की तरफ, इसके लिए संसाधन ढूंढना बहुत आसान है। क्या कठिन है बाकी सब कुछ: भंडारण सत्र, कोड, आदि। अगर मेरा वेब सर्वर सेवा नीचे चला जाता है, तो मेरा UI कैसे जानता है कि इसे स्विच करना होगा? मेरे सत्र सर्वर पर कैसे बने रहते हैं?

दुर्भाग्य से, हममें से किसी को भी इस क्षेत्र में अनुभव नहीं है, और हम यह भी नहीं जानते हैं कि कहां से शुरू करना है। क्या इसके लिए सर्वोत्तम अभ्यास हैं? डिजाइन पैटर्न्स? पुस्तकालय (जो हमें मुक्त होना चाहिए क्योंकि हमारे पास पैसा नहीं है)?

हम बीच में WCF webservice के साथ ASP.Net और SQL सर्वर का उपयोग कर रहे हैं। हमारे पास विंडोज सेवाओं का एक समूह है, लेकिन वे मिशन-क्रिटिकल नहीं हैं, और मुझे लगता है कि वेबसाइट से निपटने के तरीके सेवाओं पर लागू होंगे।

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


1
"क्या होगा अगर वे अचानक हमारे प्रतियोगियों को अपना डेटा बेचने का फैसला करते हैं?" वास्तव में? यही सबसे अच्छा तर्क है जो उन्हें मिला है? 1) बहुत यकीन है कि अवैध होगा। 2) कोई भी प्रतिष्ठित होस्टिंग प्रदाता ऐसा नहीं करेगा (जो कि उनके पूरे व्यवसाय को कम करके आंका जाएगा)। 3) यदि आप वास्तव में चिंतित हैं, तो सुनिश्चित करें कि कोई भी हस्ताक्षरित समझौते ऐसी चीजों को प्रतिबंधित करते हैं और यदि वे समझौते को तोड़ते हैं तो मुकदमा करें। 4) अपने डेटा को एन्क्रिप्ट करें। 5) अपने वर्तमान होस्ट को एक ही काम करने से क्या रोक रहा है?
बेज़्ज़

1
सभी गंभीरता में, हालांकि आप चाहते हैं कि सटीक चीज के लिए कुछ पूर्व-निर्मित का उपयोग करने से बचना मुश्किल है। आपको उच्च उपलब्धता प्रणाली को ठीक से होस्ट करने के तरीके के बारे में हर सबक सीखना होगा जो इन प्रदाताओं ने पहले ही सीखा है। और आपके पास समस्याओं का जवाब देने के लिए संसाधनों और विशेषज्ञता के साथ-साथ उनके पास भी नहीं होगा। यदि आप (या sysadmins) अभी भी ऐसा करने पर जोर देते हैं, तो लोड बैलेंसिंग, सेशन स्टोरेज को देखें, जो इन-मेमोरी (SQL सेशन स्टोर की तरह), स्वचालित तैनाती इत्यादि में नहीं है
Becuzz

पुस्तकालयों की लागत खर्चों में से कम से कम होगी
दान पिचेलमैन

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

1
हा लागत, कैपेक्स और ओपेक्स दोनों क्योंकि आपको निरर्थक हार्डवेयर की आवश्यकता होती है और एचए काम करने के लिए देव और देवों की एक उचित राशि काम करती है - अगर आपको कुछ उपकरण खरीदने के लिए बजट नहीं मिला है, तो मुझे संदेह है कि आप एचए सेटअप को विकसित और संचालित कर सकते हैं।
फ्रेडरिक

जवाबों:


5

आपको यह स्पष्ट करने की आवश्यकता है कि आप किस प्रकार की उच्च उपलब्धता की तलाश कर रहे हैं। अत्यधिक उपलब्ध एप्लिकेशन हैं जो मैं चलाती हूं जो कि 95% तक होना चाहिए। ऐसे अन्य हैं जिन्हें 99% तक चलाने की आवश्यकता है। मैं जीवन-या-मृत्यु परिदृश्यों के बारे में सोच सकता हूं जिनके लिए 100% अपटाइम की आवश्यकता होती है। बस उन तीनों में बहुत अलग दृष्टिकोण और लागत हैं।

बस अपनी आवश्यकताओं और एक 95-99% अपटाइम SLA के आधार पर अनुमान लगाना:

  • अधिकांश परिवर्तनों के लिए डेटाबेस माइग्रेशन वास्तविक समय में होने में सक्षम होना चाहिए। इवोल्यूशनरी डेटाबेस डिज़ाइन का अभ्यास करें । उन परिवर्तनों के लिए जिन्हें अधिक आक्रामक व्यवहार की आवश्यकता होती है, आपके पास कुछ विकल्प हैं। एक डाउनटाइम है। यदि संभव हो, तो रीड-ओनली मोड में अपनी सेवा चलाने से काम चल सकता है। पूर्ण कार्यक्षमता के लिए, मैं कुछ समय के लिए ScaleArc आज़माना चाहता था। यह SQL सर्वर की दुनिया में स्केलिंग और रिसिलिबिलिटी के लिए वास्तव में एक स्लीक टूल जैसा दिखता है।
  • आपके ग्राहक की साइटों के अंदर सर्वर डालना जब तक आपको विश्व स्तरीय तैनाती रणनीतियाँ नहीं मिलीं (जो आपके प्रवास के विवरण के आधार पर, आपके पास अभी तक नहीं है) एक असहनीय आपदा के लिए एक नुस्खा है। प्रदर्शन की समस्या होने पर क्लाउड सेवाओं को ऑन-प्रिमाइसेस पर न धकेलें। अब प्रदर्शन समस्याओं को हल करें और फिर आपको सड़क पर किए जाने वाले खर्चों से निपटना नहीं पड़ेगा।
  • आपका राज्य सर्वर किसी प्रकार का एक डेटाबेस होना चाहिए। उनके हा दिशानिर्देशों का पालन करें। आप इसके लिए SQL सर्वर का उपयोग कर सकते हैं, क्योंकि आपके पास यह पहले से ही उपलब्ध है।
  • डेटाबेस की बात करें तो, प्रतिकृति हा को सक्षम नहीं करता है। वास्तव में, SQL प्रतिकृति आपको हर मोड़ के आसपास सिरदर्द (कई नोड प्रतिकृति परिदृश्यों के साथ अनुभव से बोलना) का कारण बनेगी। मिररिंग काम कर सकता है, लेकिन आखिरी बार मुझे याद है, SQL क्लस्टरिंग को नए सर्वर पर विफल होने में 1-5 मिनट लगते हैं। मैंने हमेशाऑनऑन के बारे में अच्छी बातें सुनी हैं, लेकिन मुझे अभी भी Microsoft के ट्रैक रिकॉर्ड पर संदेह है। ScaleArc जैसा कुछ यहाँ अधिक मदद कर सकता है।
  • आपका वेब सर्वर स्टेटलेस होना चाहिए। तीन या चार को स्पिन करें और उन्हें एक लोड बैलेंसर के पीछे रखें। यह आपके ऊपर चिंता को हल करता है। जैसा कि फ्रेडरिक ने पहले उल्लेख किया था, आप इस तरह से रोलिंग तैनाती भी कर सकते हैं।
  • आपकी वेब सेवा शायद स्टेटलेस होनी चाहिए। यदि नहीं, तो देखें कि क्या आप इसे स्टेटलेस और स्टेटफुल बिट्स में तोड़ सकते हैं। एक ही लोड बैलेंसर के पीछे इसके कई उदाहरण रखना फिर से समय की चिंता को हल करता है और अधिक इच्छुक परिनियोजन परिदृश्य (जैसे ब्लू / ग्रीन परिनियोजन) को सक्षम करता है।

फ्रेडरिक के विपरीत, मैं आपके बादल व्यामोह को अनुचित नहीं कहूंगा। यह आपके अपटाइम आवश्यकताओं पर निर्भर करता है। यह अनुमान है कि एक सेवा को विभिन्न देशों में विभिन्न प्रदाताओं द्वारा संचालित कई डेटा केंद्रों में अतिरेक के लिए चलना होगा। हालांकि, आपकी वर्तमान स्थिति को देखते हुए, मैं सहमत हूँ कि AWS, Azure, या इसी तरह की शायद आपकी कंपनी के लिए सुरक्षित दांव हैं।


1
ऑन-प्रिमाइसेस इंस्टॉल के बारे में: यह एक प्रदर्शन समस्या नहीं है, यह ग्राहक की बैंडविड्थ समस्या है। वे अस्थिर या धीमी गति से कनेक्शन वाले स्थानों में हो सकते हैं। लेकिन यह एक महत्वपूर्ण विशेषता नहीं है। बाकी के लिए धन्यवाद, मैं इसे
देखूंगा

5

अपने वेब और अनुप्रयोग स्तर पर हा के कुछ स्तर प्राप्त करना:

  1. आदर्श रूप से, किसी भी राज्य को साझा करना, सत्र राज्य सहित डेटाबेस या इन-मेमोरी सत्र राज्य सर्वर जैसी साझा-राज्य प्रणालियों में। आपके एप्लिकेशन डिज़ाइन पर निर्भर करता है कि अतिरिक्त अक्षांश को बड़ी मात्रा में राज्य प्राप्त करने के कारण प्रदर्शन के मुद्दे हो सकते हैं।

  2. आपकी वेब साइट और एप्लिकेशन टियर में प्रत्येक के सामने एक स्वतंत्र लोड बैलेंसर होना चाहिए। NGINX ट्रिक करेगा, लेकिन IIS यह (ARR) भी कर सकता है।

  3. यदि कोई एकल डेटाबेस लोड को संभाल नहीं सकता है, तो एक विशेष डेटाबेस बॉक्स के लिए विशेष अनुरोध को रूट करने के लिए लीवरेज सत्र राज्य विभाजन (या शार्डिंग या सुसंगत हैशिंग)।

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

अपग्रेड पक्ष पर:

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

  2. अपने एप्लिकेशन टियर को अपग्रेड करना: चूंकि आपके क्लाउड परिवेश का उपयोग नहीं कर रहा है, इसलिए मैं आपको कैनरी परिनियोजन पैटर्न का पालन करने की सलाह देता हूं: अपने वेब और मध्य स्तरीय बक्सों का रोलिंग अपग्रेड करें। यदि तैनाती गलत हो जाती है, तो बॉक्स को लोड बैलेंसर से बाहर निकालें, ठीक वैसे ही जैसे कि आप असफल हो गए थे।

चेतावनी का शब्द: एचए के लिए डिज़ाइन नहीं की गई प्रणाली को विकसित करना एक लंबी और महंगी प्रक्रिया हो सकती है। आपको रास्ते में व्यापार-नापसंद करना होगा (किसी विशेष उपलब्धता तक पहुंचने के लिए लागत बनाम प्रयास)

आपका क्लाउड व्यामोह अपरिचित है - आपके हिस्से पर अच्छे अभ्यास के साथ AWS जैसे प्रदाता अधिकांश जोखिमों को नियंत्रित / कम कर सकते हैं - उनके अनुपालन पृष्ठ पर एक नज़र डालें कि वे किन नियमों का अनुपालन कर रहे हैं: https: // aws .amazon.com / अनुपालन /


1

टीएल; डीआर: निरर्थक, मॉड्यूलर बनाएँ; उपलब्धता के लिए परीक्षण; बारीकी से निगरानी करें।

यह महसूस करने के बाद कि किसी भी स्पष्टीकरण में निचोड़ने की कोशिश बहुत लंबी हो सकती है, इसलिए मैं अपने द्वारा किए गए सभी टिप्पणियों को लिखूंगा।

आधार पर सवाल उठाना

क्लाउड सिस्टम रामबाण है

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

हम x / y / z के कारण क्लाउड सिस्टम का उपयोग नहीं करना चाहते हैं

जब तक आप एक अल्ट्रा बड़े संगठन नहीं हैं, तब तक आप क्लाउड सिस्टम का उपयोग करना बेहतर समझते हैं। शीर्ष -3 क्लाउड सिस्टम (AWS, MSFT, Google), आपको वादा किया गया SLA और डैशबोर्ड प्रबंधित करने में आसान देने के लिए हजारों इंजीनियरों को नियुक्त करते हैं। यह वास्तव में इस घर में एक पैसा खर्च करने के एवज में उनका उपयोग करने के लिए एक अच्छा सौदा है।

स्कूपिंग और डिज़ाइन में समस्याएं

परिभाषित करना, मात्रा निर्धारित करना और फिर किसी सेवा की उपलब्धता को लगातार मापना उपलब्धता की समस्याओं के लिए समाधान लिखने की तुलना में एक बड़ी चुनौती है।

Ining उपलब्धता ’को परिभाषित और मापना अपेक्षा से अधिक कठिन है

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

लोग हमेशा उपलब्ध प्रणाली की जटिलताओं को कम आंकते हैं।

कमरे में हाथी को संबोधित करने के लिए, मुझे यह कहना चाहिए: "कोई मल्टी-कंप्यूटर सिस्टम 100% उपलब्ध नहीं है, यह भविष्य में हो सकता है लेकिन वर्तमान तकनीक के साथ नहीं।" यहां वर्तमान तकनीक द्वारा, मैं अपनी अक्षमता का उल्लेख कर रहा हूं प्रकाश की गति और इस तरह की चीजों की तुलना में तेजी से संकेत भेजते हैं। उनके नमक के लायक सभी COMP-sci इंजीनियरों ने कंप्यूटिंग सीमाएं वितरित कीं, और उनमें से अधिकांश ने बैठकों में इसका उल्लेख नहीं किया, डरते हुए वे नोब्स की तरह दिखेंगे। उन सभी लोगों के लिए, जिन्होंने गणना की गई सीमाओं का उल्लेख नहीं किया है , मैं इसके जटिल, लेकिन कंप्यूटर पर हमेशा भरोसा नहीं करता

लोग उनकी / उनके इंजीनियर की क्षमताओं को नजरअंदाज करते हैं

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

मैदान-अप से उपलब्ध प्रणाली का निर्माण

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

उपलब्धता में मदद करने वाली प्रणाली की विशेषताएं

निम्नलिखित सिस्टम विशेषताओं ने सिस्टम उपलब्धता में योगदान दिया है:

फालतूपन

इसके कुछ उदाहरण हैं कि कभी भी एक वीएम के पीछे केवल एक वीएम नहीं होना चाहिए या कभी भी अपने डेटा की केवल एक कॉपी जमा न करें। ये ऐसे प्रश्न हैं जो एक अच्छा IAAS आपके लिए हल करना आसान बना देंगे लेकिन फिर भी आपको ये निर्णय लेने होंगे।

प्रतिरूपकता

एक मॉड्यूलर REST अखंड SOA से बेहतर है। यहां तक ​​कि एक मॉड्यूलर microservice वास्तव में सामान्य HATEOS REST की तुलना में अधिक उपलब्ध है । तर्क अगले अनुभाग में यील्ड संबंधित चर्चा में पाया जा सकता है। यदि आप बैच प्रोसेसिंग कर रहे हैं तो 1,000,000 के बैच से निपटने की तुलना में 10s के उचित बैच में बैच प्रोसेसिंग करना बेहतर है।

लचीलाता

"I am always angry"
                    - Hulk

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

लॉग ट्रेल

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

उपलब्धता के गुण

'उपलब्धता' की गैर-संपूर्ण शीर्ष-स्तरीय विशेषता सूची: चर्चा के लिए, मान लें कि उपयोगकर्ता द्वारा पूछा गया प्रश्न है, "मेरी शॉपिंग कार्ट में मेरे पास कितनी आइटम हैं?"

यथार्थता

क्या आपको सबसे सटीक संभव उत्तर का उत्पादन करना चाहिए या क्या यह गलत है? सिर्फ एक संदर्भ के लिए, जब आप एटीएम से पैसे निकालते हैं, तो यह सही होने की गारंटी नहीं है। अगर बैंक को पता चला कि उसने गलती की है, तो हो सकता है कि आप लेनदेन को उलट दें। यदि आपका सिस्टम प्राइम नंबर का उत्पादन कर रहा है, तो मुझे लगता है, आप हर समय सही उत्तर चाहते हैं।

प्राप्ति

इस बिंदु को छोड़ दें, यदि आपने पिछले विषय के प्रश्न के लिए हमेशा सही उत्तर दिया है। कभी-कभी प्रश्नों के उत्तर सटीक नहीं होते, जैसे कि मेरे अभी फेसबुक पर कितने दोस्त हैं? लेकिन इसका उत्तर हर समय बॉलपार्क +/- 1 में रहने की उम्मीद है। जब आप अपेक्षित परिणाम दे रहे हैं तो आपकी उपज 100 है।

संगति

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

लागत

अल्पकालिक प्रभाव (राजस्व की हानि) और दीर्घकालिक प्रभाव (बीमार प्रतिष्ठा, ग्राहक प्रतिधारण) के कुल प्रभाव पर बहुत कुछ निर्भर करता है। ग्राहक प्रकार (भुगतान / मुफ्त, दोहराना / अद्वितीय, कैप्टिव) और संसाधन उपलब्धता के आधार पर उपलब्धता की गारंटी के विभिन्न स्तरों का निर्माण किया जाना चाहिए।

मौजूदा प्रणाली की उपलब्धता में सुधार करने की ओर

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

  1. अपने हितधारकों के लिए 'उपलब्धता' को परिभाषित करें
  2. आप जो परिभाषित करेंगे, उसे कैसे मापेंगे
  3. बाधाओं की पहचान करने के लिए मूल कारण विश्लेषण
  4. सुधार के लिए कार्य
  5. प्रणाली की सतत निगरानी ( नियंत्रण )

अन-उपलब्धता के कारण

चूंकि हम सहमत थे कि परिचालन प्रबंधन जो किसी भी भौतिक बुनियादी ढांचे के प्रबंधन को कवर करेगा, पेशेवरों द्वारा किया जाना चाहिए, मैं संपूर्णता के लिए अनुपलब्धता के अन्य कारणों को छूऊंगा। IMO उपलब्धता में अपेक्षित व्यवहार की कमी भी शामिल होनी चाहिए, जिसका अर्थ है कि यदि उपयोगकर्ता को अपेक्षित अनुभव नहीं दिखाया गया है, तो कुछ अनुपलब्ध है। मन में उस व्यापक परिभाषा के साथ, निम्नलिखित अनुपलब्धता का कारण बन सकता है: - कोड बग - सुरक्षा घटनाओं - प्रदर्शन के मुद्दे


दिलचस्प है, लेकिन बहुत उपयोगी नहीं है, और थोड़ा सा विषय। फिर भी धन्यवाद।
थोमसब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.