नमस्कार, हेब्र!
इस लेख में मैं आपको बताना चाहता हूं कि आईबीएम वेबस्फेयर एप्लिकेशन सर्वर 7 एप्लिकेशन एप्लीकेशन इन्फ्रास्ट्रक्चर की गलती सहिष्णुता और मापनीयता सुनिश्चित करने के लिए कौन से दृष्टिकोण उपलब्ध हैं।
सबसे पहले, एक छोटी शब्दावली का इस्तेमाल किया जाएगा:
उच्च उपलब्धता एक सिस्टम डिज़ाइन विधि है जो आपको समय की अवधि में उच्च स्तर की सिस्टम उपलब्धता प्राप्त करने की अनुमति देती है।
व्यापार प्रणालियों के लिए, उच्च उपलब्धता का अर्थ है महत्वपूर्ण व्यावसायिक प्रणालियों में अतिरेक पैदा करना। फिर एक घटक की विफलता, यह एक राउटर या नेटवर्क कार्ड या रोलग्राम घटक की विफलता हो सकती है, जिससे एप्लिकेशन क्रैश नहीं होगा।
उपलब्धता मुख्य रूप से प्रतिशत के रूप में या "नौ" के रूप में व्यक्त की जाती है।
ए = एमटीबीएफ / (एमटीबीएफ + एमटीटीआर)।
90% ("एक नौ") - 16.8 घंटे प्रति सप्ताह डाउनटाइम
99% ("दो नाइन") - प्रति सप्ताह 1.7 घंटे डाउनटाइम
99.9% ("तीन नाइन") - प्रति वर्ष 8.8 घंटे डाउनटाइम
99.99% ("चार नौ") - प्रति वर्ष डाउनटाइम का 53 मिनट
एमटीबीएफ (विफलताओं के बीच अंग्रेजी का मतलब समय) - स्टॉप के बीच काम की औसत अवधि, यानी यह दर्शाता है कि औसत एक विफलता पर ऑपरेटिंग समय क्या है।
MTTR (अंग्रेजी मीन टाइम टू रिस्टोरेशन) - विफलता होने के बाद सामान्य ऑपरेशन को पुनर्स्थापित करने के लिए आवश्यक औसत समय।
एसपीओएफ (विफलता का अंग्रेजी एकल बिंदु) - सिस्टम का हिस्सा, जो विफलता के मामले में सिस्टम को दुर्गम बनाता है।
WAS - IBM का J2EE एप्लिकेशन सर्वर। डिलीवरी के कई विकल्प हैं:
0. सामुदायिक संस्करण - अपाचे जेरोनिमो पर आधारित एक खुला स्रोत परियोजना;
1. एक्सप्रेस - 1 नोड / 1 एप्लिकेशन सर्वर;
2. बेस - 1 नोड / एन एप्लिकेशन सर्वर;
3. नेटवर्क परिनियोजन (ND) - इसमें बड़ी संख्या में एप्लिकेशन सर्वरों से स्केलेबल और फॉल्ट-टॉलरेंट इन्फ्रास्ट्रक्चर बनाने के लिए घटकों का एक सेट शामिल है;
4. और कुछ अन्य विशिष्ट विकल्प (z / OS के लिए, हाइपरवाइजर संस्करण, विस्तारित परिनियोजन)।
आगे हम सब कुछ पर विचार करेंगे जो नेटवर्क परिनियोजन 7 (WAS ND) के संस्करण से जुड़ा है। फिलहाल, संस्करण 8.0 और 8.5 पहले से मौजूद हैं, लेकिन लेख में वर्णित दृष्टिकोण उन पर लागू होते हैं।
नेटवर्क परिनियोजन टोपोलॉजी से संबंधित मुख्य शब्द:
सेल - एक संगठनात्मक इकाई जिसमें एक तैनाती प्रबंधक (तैनाती प्रबंधक) और कई नोड्स (नोड) शामिल हैं। तैनाती प्रबंधक नोड एजेंटों के माध्यम से नोड्स का प्रबंधन करता है।
एक नोड में एक नोड एजेंट होता है, जो, जैसा कि हम पहले से ही समझते हैं, प्रबंधन के लिए उपयोग किया जाता है, और एक या अधिक एप्लिकेशन सर्वर (एप्लिकेशन सर्वर)।

इस तरह के एक पदानुक्रम (सेल / नोड / सर्वर) सर्वर के पूरे सेट को व्यवस्थित करने और कार्यक्षमता और उपलब्धता आवश्यकताओं के अनुसार उन्हें समूह में मदद करता है।
एप्लिकेशन सर्वर - जेवीएम 5 वीं जावा ईई विनिर्देश (डब्ल्यूएएस संस्करण 8 और 8.5 जावा ईई 6 विनिर्देशों का अनुपालन करते हैं)
प्रोफाइल - एप्लिकेशन सर्वर सेटिंग्स का एक सेट जो शुरू होने पर लागू होता है। जेवीएम उदाहरण के प्रारंभ में, इसके वातावरण की रूपरेखाएँ प्रोफाइल से पढ़ी जाती हैं और फ़ंक्शंस जो एप्लिकेशन सर्वर करेगा, उसके प्रकार पर निर्भर करेगा। परिनियोजन प्रबंधक, नोड एजेंट, एप्लिकेशन सर्वर प्रोफाइल के निजी उदाहरण हैं। बाद में लेख में, हम विचार करेंगे कि अलग-अलग प्रोफाइल का उपयोग क्यों और कब करना है और वे एक साथ कैसे बातचीत करते हैं, और वे क्या हासिल कर सकते हैं।
एक स्टैंड-अलोन प्रोफ़ाइल एक फ़ेडरेटेड से अलग होती है जिसमें कई स्टैंड-अलोन प्रोफाइल विभिन्न प्रशासनिक कंसोल से प्रबंधित होते हैं, और फ़ेडरेटेड प्रोफाइल एक एकल बिंदु से प्रबंधित होते हैं, जो बहुत अधिक सुविधाजनक और तेज़ होता है।
समस्या का बयान
इसलिए, एप्लिकेशन सर्वरों के बुनियादी ढांचे पर चल रही एक निश्चित व्यावसायिक प्रणाली की उच्च उपलब्धता सुनिश्चित करने के लिए कार्यों के आधार पर, हमें ऐसे बुनियादी ढांचे का निर्माण करने की आवश्यकता है जो यह सुनिश्चित करें कि ये आवश्यकताएं पूरी हों।
स्तर I

मानक तीन स्तरीय वास्तुकला। हमारे पास एक भौतिक / आभासी सर्वर है, जिस पर स्टैंड-अलोन WAS प्रोफाइल अपने प्रशासनिक कंसोल, DBMS और HTTP सर्वर के साथ स्थित है।
हम सूचीबद्ध करते हैं कि इस कॉन्फ़िगरेशन में विफलता के कौन से बिंदु मौजूद हैं और हम उन्हें स्तर से स्तर तक समाप्त करने की कोशिश करेंगे:
1. HTTP सर्वर;
2. एप्लिकेशन सर्वर;
3. डेटाबेस;
4. सभी सॉफ्टवेयर घटक जो सॉफ्टवेयर इंफ्रास्ट्रक्चर के अन्य घटकों (फ़ायरवॉल, एलडीएपी, आदि) के साथ हमारे सर्वर की बातचीत सुनिश्चित करते हैं।
5. हार्डवेयर।
स्तर II

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

इस स्तर पर, हम एक बार में विफलता के कई बिंदुओं को बंद कर सकते हैं - HTTP सर्वर और भौतिक सर्वर जिस पर एप्लिकेशन सर्वर चल रहे हैं। ऐसा करने के लिए, हम अपने डेटाबेस को अपने भौतिक सर्वर से बाहर ले जाएंगे। पहले से ही 2 सर्वरों पर हम 2 नोड्स तैनात करेंगे और उनमें से प्रत्येक में हम एप्लिकेशन सर्वरों की एक जोड़ी बनाएंगे। और हम एक ही क्लस्टर में सभी सर्वरों को एकजुट करेंगे। भौतिक सर्वरों में से एक की विफलता की स्थिति में, डेटा और एप्लिकेशन स्टेट्स को दूसरी प्रणाली में बहाल किया जाएगा। इसके अतिरिक्त, लोड बैलेंसर (एक अन्य प्रकार की प्रोफ़ाइल) का उपयोग करके हम सिस्टम के बीच आने वाले अनुरोधों को वितरित कर सकते हैं और इस प्रकार लोड को वितरित कर सकते हैं और हमारे अनुप्रयोगों के प्रदर्शन को बढ़ा सकते हैं। इस टोपोलॉजी के उपयोग से, हमें विफलता का एक नया संभव बिंदु मिलता है - लोड बैलेंसर।
टियर VI
हम एक बैकअप लोड बैलेंसर के साथ स्तर III को पूरक करते हैं और इसके अलावा, हमारे डेटाबेस की विश्वसनीयता सुनिश्चित करते हैं। हम डेटाबेस क्लीनीकरण तंत्र पर विस्तार से विचार नहीं करेंगे वे खुद एक अलग लेख के लायक हैं।

स्तर वी
और अंतिम कॉर्ड के साथ, हम हमारे डेटा सेंटर में
बाढ़ आने की स्थिति में पूरे इन्फ्रास्ट्रक्चर की नकल करेंगे और इसे हटा देंगे
इसके अतिरिक्त, यह डीएमजेड ज़ोन में हमारे फ्रंट-एंड सर्वर को रखने के लिए जगह से बाहर नहीं हो सकता है।

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