आप जो मांग रहे हैं, वह मूल रूप से उच्च-उपलब्धता है। किसी प्रणाली को अत्यधिक उपलब्ध कराने के लिए, आपको तीन चीजों की आवश्यकता होती है:
- विफलता के एकल अंक को हटा दें
- एक समापन बिंदु से दूसरे तक स्विच करने के लिए एक तंत्र
- विफलताओं का पता लगाने का एक तरीका
विफलता के एकल अंक को हटा दें
S3 के मामले में, बिंदु # 1 को संबोधित किया जाता है, जैसा कि एव्जेनी ने कहा था, एस 3 क्रॉस-रीजन प्रतिकृति द्वारा ।
प्रतिकृति, हालांकि, तात्कालिक नहीं है और आप जांचना चाहेंगे कि क्या आप अपने आवेदन प्रतिकृति को जागरूक करना चाहते हैं या नहीं। आउटेज होने की स्थिति में, यह संभव है कि आपके स्रोत बाल्टी को जो कुछ लिखा गया था वह गंतव्य बाल्टी के लिए अभी तक इसे (दोहराया नहीं) नहीं गया है। आपको यह सोचना होगा कि एप्लिकेशन इस तरह के परिदृश्य को कैसे हैंडल करेगा। यह वास्तव में डेटा के प्रकार पर निर्भर करता है, इसके साथ क्या किया जा रहा है और (संभवतः) अंतिम-उपयोगकर्ता या प्रबंधन की अपेक्षाएं।
एक समापन बिंदु से दूसरे तक स्विच करने के लिए एक तंत्र
S3 के लिए, इसका मतलब है कि आउटेज की स्थिति में, आप चाहते हैं कि एप्लिकेशन पढ़ने और लिखने को / A से बाल्टी A तक रोक दे और इसके बजाय बाल्टी B का उपयोग करें।
इसे कैसे प्राप्त किया जा सकता है, जहां तक मुझे पता है, अभी तक आपके लिए है। कुछ अन्य एडब्ल्यूएस सेवाएं पूरी तरह से पारदर्शी असफल-ओवरों की पेशकश करती हैं, लेकिन मुझे फिलहाल एस 3 के लिए इस तरह की जानकारी नहीं है।
इसे प्राप्त करने के विभिन्न तरीके हैं। एक उदाहरण एक प्रॉक्सी का उपयोग कर रहा है जो यातायात को उपयुक्त बाल्टी में ले जाएगा। आउटेज के दौरान, आप ट्रैफ़िक को रूट करने के लिए छद्म मार्ग से अपडेट / बदल देंगे, जो आउटेज से प्रभावित न हो। एक अन्य उदाहरण आपके एप्लिकेशन कॉन्फ़िगरेशन को गतिशील बनाने और इसे कुंजी-मूल्य स्टोर में संग्रहीत करने का होगा। यदि एप्लिकेशन अपडेट किए गए गुणों के लिए केवी स्टोर को अक्सर पर्याप्त रूप से पढ़ता है, तो आप स्विच कर सकते हैं जहां से आप पढ़ते हैं और लिख सकते हैं (स्प्रिंग क्लाउड में "एन्वायर्नमेंसचेंज" श्रोता के लिए समर्थन है, उदाहरण के लिए)।
विफलताओं का पता लगाने का एक तरीका
खैर, यह आसान है, मुझे लगता है। बस एक राइट + लूप और अलर्ट सेटअप करें जैसे ही कुछ सही न हो :)
नोट बंद करना
- यदि आपका आवेदन बाल्टी को लिख रहा है, तो आपको यह सोचना होगा कि असफल होने की स्थिति में क्या होगा। क्या सभी लेखों ने इसे गंतव्य की बाल्टी में बदल दिया है (और क्या आप बता सकते हैं)? क्या आप गंतव्य बकेट को लिखते हैं (इसे नया "प्राथमिक" बनाते हैं)? सावधानीपूर्वक योजना विभाजित-मस्तिष्क या खो अद्यतन परिदृश्यों से बचेंगी।
- आपके SLA के आधार पर, आप चाहते हैं कि अंक # 2 और # 3 स्वचालित या स्वचालित हों। इसके लिए अतिरिक्त नियोजन, टूलींग और परीक्षण की आवश्यकता होती है, लेकिन अच्छी तरह से लिखी गई लिपियाँ हमेशा तेजी से और मानवीय अनुमानों की तुलना में अधिक पूर्वानुमानित तरीकों पर प्रतिक्रिया देंगी (असफलताओं में भी रात के मध्य में होने की कष्टप्रद आदत होती है जब मानव हस्तक्षेप कुछ खतरनाक होता है।
- यह ध्यान देने योग्य है कि क्रॉस-क्षेत्र प्रतिकृति भी विफलता के एकल बिंदुओं को पूरी तरह से समाप्त नहीं करती है। यकीन है, अगर कोई क्षेत्र नीचे जाता है, तो आप कवर किए जाते हैं। लेकिन क्या होगा अगर एक यूएस-वाइड एडब्ल्यूएस आउटेज होता है? एज़्योर के पास पिछले साल आंशिक और वैश्विक आउटेज था और 2014 में भी।