नए उपयोगकर्ताओं के लिए क्लाउड को रोकना

पहले से, हम नई मशीनों को स्थापित करने की संभावना को बंद कर देते हैं। हमने पहले ही नए ग्राहकों को स्वीकार करना बंद कर दिया है।

मौजूदा ग्राहकों की मौजूदा आभासी मशीनों को आगे अपरिवर्तित रखा जाएगा। इसके अलावा, कृपया "रिजर्व में कारें" न बनाएं - हमने नए ग्राहकों को अच्छी परिस्थितियों से स्वीकार करना बंद कर दिया।

इसका कारण यह है कि हमने गणना की गई क्षमताओं की सीमाओं को पार कर लिया है, और वास्तुकला को फिर से लिखना "एक भयानक अभ्यास" है। इस संबंध में, एक टाइमआउट लेने और विज्ञापन विभाग का पीछा करना बंद करने का फैसला किया गया था (वैसे, इस कारण से हम हैबे पर चुप हो गए - हमने आगंतुकों के प्रवाह को थोड़ा कम करने की उम्मीद की)। हालांकि, लोग आए - और यह एक मजाकिया बिंदु पर आया, लंबे और ध्यान से लिखे गए घटकों में से एक में, हमने लगभग 10k कनेक्शन के साथ छत पर रखी। परीक्षण / सुधार (प्रीप्रोडक्शन प्रक्रिया) एक महीने के लिए विलंबित हो गई ... और जब तक हमने इस घटक को रोल आउट किया, तब तक यह पता चला कि यह पहले से ही "बट में" था (6-9k कनेक्शन प्रति सेकंड)। लेकिन हमने इसे कई महीनों तक लिखा!

और यह स्पष्ट हो गया कि हम आसानी से सामना नहीं कर सकते। नए ग्राहकों को स्वीकार करने से रोकने का निर्णय बहुत आसान नहीं था (ठीक है, आप देखते हैं, "अपने वेतन का भुगतान क्यों करते हैं" की शैली में विवाद, आदि), लेकिन आम तकनीकी अर्थों ने कंपनी की सफलता के लिए एक स्वस्थ लालची आकांक्षा को हराया।

प्रोसेसिंग में कितना समय लगता है? नियोजित शब्द लगभग 2-3 महीने है, वास्तव में कितना आवश्यक है - मुझे नहीं पता। सबसे पहले, क्योंकि आपको गंभीरता से वास्तुकला को फिर से बनाना होगा, केंद्रीकृत डेटाबेस स्थायी रूप से हटा दिए जाएंगे; हर चीज और हर चीज का विकेंद्रीकरण एक बेहद गैर-तुच्छ कार्य है।

उच्च संभावना के साथ, हम मौजूदा कॉन्फ़िगरेशन को बदलने में सक्षम नहीं होंगे, इसलिए क्लाउड की दूसरी प्रतिलिपि लॉन्च की जाएगी। पहले से दूसरे तक के ग्राहकों का प्रवास कैसा दिखेगा - फिर से, मुझे नहीं पता (मैं अभी तक इस बारे में नहीं सोचा था)।

त्रुटि पढ़ें


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

उन लोगों के लिए जो इसे देखते हैं (गुणवत्ता के लिए खेद है, यह उच्च गुणवत्ता वाली शूटिंग तक नहीं है):

क्रैश 1 - 150 ग्राहक:
दुर्घटना के समय तक - 4 महीने 24 दिन। कमीशन के बाद से, पहली विफलता।

क्रैश 2 - 391 ग्राहक:
अपटाइम - 6 महीने 4 दिन (पिछले दुर्घटना के क्षण से। फिर, एनएफएस सर्वर में एक बग के कारण, सभी आभासी मशीनों को रिबूट करने के लिए मजबूर करना और लोगों से / आदि / एफएटीबी से एनएफएस के उल्लेख को हटाने के लिए कहना आवश्यक था)।

क्रैश 3 - 398 ग्राहक।
वही भंडार; दुर्घटना के समय तक - 2 दिन 4 घंटे।

इस तरह की अड़चनों को खत्म करना दूसरा काम है जिसे हम तय किए गए टाइमआउट के दौरान हल करेंगे।

क्लाइंट डेटा संग्रहीत करने के लिए हमारे प्रस्तावित मॉडल में, हमें सिस्टम कोर के पूर्ण और बिना शर्त समाप्ति की उम्मीद नहीं थी। हमने एक नियंत्रित रिबूट, विशिष्ट सेवाओं के पतन, बार-बार आरक्षित छापे में डिस्क की मौत (और एसएएस नियंत्रक की मौत भी) की कल्पना की। लेकिन ऐसा कोई "अच्छा" नहीं है।

यही हमारी भूल थी। और मैं इस त्रुटि के लिए जिम्मेदार हूं, क्योंकि मैंने इस बात पर भरोसा किया था कि हम कम से कम सेवा ठप होने के बारे में क्या पता लगा सकते हैं। क्लाउड पर काम के दौरान, यह उन मुख्य कार्यों में से एक होगा जिन पर मैं काम करूंगा।

क्या समस्या है?


जब कोई दुर्घटना होती है, तो ग्राहक बहुत इशारे करने लगते हैं। मशीनों को पुनरारंभ करें, उन्हें बार-बार चालू और बंद करने का प्रयास करें।

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

और जब कई सौ ऐसे ग्राहक होते हैं ... यह अप्रिय रूप से बदल जाता है। खासकर जब सभी अनुरोध लगभग एक साथ आते हैं। पूल मास्टर के पास पर्याप्त तरीके से संसाधन नहीं हैं। यही है, प्रोसेसर लोड का 800% और कई सौ नौकरियों के लिए कतार।

लेकिन पूल मास्टर्स को कई में विभाजित करने के लिए, हम बस बिल्कुल तैयार नहीं हैं। अब तक। यह उन कार्यों में से एक है जिसके साथ हम सोचेंगे।

अद्यतन: लेख मेरी भागीदारी के बिना प्रकाशित किया गया था, चित्र कल होंगे

Source: https://habr.com/ru/post/In130441/


All Articles