वेबसाइटें (यहां तक ​​कि यह भी) कभी-कभी "डाउन फॉर मेंटेनेंस" क्यों होती हैं?


36

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

मैंने हमेशा इस बारे में सोचा है।

इस समय के दौरान वे क्या कर रहे हैं, इसे करने की आवश्यकता क्या है?


56
वे सर्वर में वैक्यूम ट्यूबों की जगह ले रहे हैं।
मिपाड़ी

11
मुझे लगा कि वे पंचों को ढेर कर रहे हैं।
क्रिस्टोफर महान

5
ध्यान रखें कि साइट शायद है सबसे अपडेट के लिए साइन रहते हैं। जाहिर है, आप केवल उन लोगों को देखते हैं जहां वास्तव में कुछ समय के लिए ऑफ़लाइन आने की आवश्यकता होती है।
डीन हार्डिंग

4
किसी ने सुरक्षा कारण को संबोधित नहीं किया; एक ज्ञात शोषण हो सकता है (उर्फ किसी ने कुछ वेबसाइट का शोषण करने के लिए कैसे प्रकाशित किया) और व्यवस्थापक इसे ठीक करने के लिए अन्य पार्टियों से दुरुपयोग को कम करने के लिए ऑफ़लाइन लेते हैं।
फ्रांसिस्को प्रेसेनिया

1
यह मेरे पास यह पूछने के लिए होता है कि डेटाबेस समर्थित वेब ऐप में डाउनटाइम (शून्य) प्राप्त करने के लिए मैं किन रणनीतियों का उपयोग कर सकता हूं? ' विशेष रूप से अपग्रेड जिसमें db स्कीमा परिवर्तन की आवश्यकता है: softwareengineering.stackexchange.com/questions/336945/…
Stephen

जवाबों:


59

बड़े पैमाने के साथ किसी भी चीज़ के लिए बड़ा किकर अगर किसी तरह से डेटाबेस स्कीमा बदल रहा है, तो आमतौर पर किसी को चलाने के लिए कुछ बड़ा, गंदा रखरखाव स्क्रिप्ट होता है।

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

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


3
+1 - केवल एक स्टैक ओवरफ़्लो बहुत अच्छा नहीं होगा। वहाँ बहुत कुछ नहीं है जो आप Google पर नहीं पा सकेंगे :)
corsiKa

10
@glowcoder: जब आप Google पर सर्च करते हैं, तो आपको SO उत्तर मिलते हैं।
डोनल फैलो

@ जोनल बिल्कुल मेरी बात थी।
corsiKa

1
Google बड़े पैमाने पर डेटाबेस के लिए विशाल और निश्चित है; मैं कभी भी Google के लिए "रखरखाव के लिए नीचे" कैसे नहीं देख सकता हूं? (Google.com होमपेज)
एलेक्स्यॉर्क

7
@ alexy13 - google पैमाने की एक विशेष श्रेणी में है जहाँ उनके पास एक भी डेटाबेस या डेटासेंटर नहीं हो सकता है, सिस्टम के हिस्से हमेशा नीचे होते हैं और उन्होंने इसे संभालने के लिए सामने का छोर लिखा है। मैं भी अगर आप मुझे उस तरह का समय और आर एंड डी बजट सौंपते हैं।
व्याट बार्नेट

7

कई कारण हैं कि आप रखरखाव के लिए साइट को नीचे क्यों ले जाना चाहते हैं। कुछ नाम है:

  • डेटाबेस बदलता है
  • दल बदल
  • अद्यतन सेवाएँ

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

इसके अलावा, यदि आप अपनी साइट के लिए web.config (ASP.NET) को छू रहे हैं, तो आपको इसे पहले रखरखाव के लिए नीचे ले जाना चाहिए क्योंकि यह उपयोगकर्ताओं के लिए सत्र को बाहर कर देगा। इस प्रकार, अगर वे किसी चीज के बीच में थे, तो यह खो जाएगा।


2
यदि सत्र "इन-प्रोसेस" सत्र स्थिति का उपयोग करके सत्र खो जाएगा। यदि आप प्रक्रिया सत्र से बाहर का उपयोग करते हैं, तो सत्र खो नहीं जाएगा यदि web.config को बदल दिया जाए।
एंथनी

2
अंतिम बिंदु केवल सच है यदि आप इन-प्रोसेस सत्र कर रहे हैं, जो मुझे आशा है कि आप उत्पादन साइट पर नहीं हैं! वहाँ सिर्फ web.config को छूने से ज्यादा है कि कार्यकर्ता प्रक्रिया को नीचे ले जाएगा।
डीन हार्डिंग

7

वैसे यह किसी तरह का अमूर्त प्रश्न है - मैंने ऐसी साइटें भी देखीं जो HTTP 500 के बजाय "डाउन रखरखाव के लिए" का उपयोग करती थीं।

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

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


2
HTTP 503 (500 के बजाय) "रखरखाव के लिए नीचे" के लिए सही स्थिति कोड नहीं है?
नुबोक

4

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

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

मैंने जिस कंपनी के लिए काम किया था, उसमें कुछ गलत पाठ गलत जगह पर डाले गए थे और सीईओ बाहर निकल गए और वेबसाइट को "रखरखाव के लिए" लाइन में ले लिया, जबकि लेआउट और पाठ "निश्चित" थे और उपयुक्त शिकार को दोषी ठहराया गया और निकाल दिया गया।


यहां तक ​​कि उचित भार संतुलन के साथ इसे कम किया जा सकता है
वायसी

4

जबकि अन्य उत्तर सही हैं, आप लगभग हमेशा सही आर्किटेक्चर का उपयोग करके डाउनटाइम से बच सकते हैं। लेकिन इसकी एक लागत है, और यह लागत इसके लायक नहीं हो सकती है: डाउनटाइम के एक घंटे में अमेज़ॅन या NASDAQ के पीछे बुनियादी ढाँचा बहुत खर्च होता है। स्टैक ओवरफ़्लो ? सबसे अधिक संभावना नहीं है।

डाउनटाइम्स से कैसे बचें:

  • हार्डवेयर सेवारत पृष्ठ बंद करना: यदि आपकी वेबसाइट के सामने परदे के पीछे हैं, तो आप उपयोगकर्ता को बिना किसी प्रभाव के ऑफ़लाइन रख सकते हैं
  • सर्वर को फिर से कॉन्फ़िगर करना: ऊपर के समान
  • डेटाबेस में डेटा को अपडेट करना / बदलना: आप अपनी वेबसाइट को केवल मोड में पढ़ सकते हैं, आदि ...

आम तौर पर, एक स्तरित वास्तुकला में, आप "शीर्ष" के करीब हैं, सबसे कठिन यह डाउनटाइम से बचने के लिए बन जाता है, वही स्टेटफुल (वेबसर्वर बनाम डेटाबेस) के लिए।


4
क्या NASDAQ के पास निर्धारित डाउनटाइम का एक दिन लगभग 14 घंटे नहीं है?
पीटर टेलर

3

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


इसके लिए एक इलाज है: डाउनटाइम के दौरान शिकायत प्रणाली को नीचे लाएं :) मैंने वास्तव में कंपनियों को ऐसा करते देखा है। एक MMO कंपनी डाउनटाइम घोषणा की मेजबानी करने वाली वेबसाइट के साथ-साथ समर्थन मंचों के साथ-साथ खेल के रखरखाव के लिए नीचे होने के कारण इसका एक अच्छा उदाहरण है। जो कोई भी रखरखाव से पहले कुछ घंटों के दौरान घोषणा को नहीं पकड़ता था, वह कभी नहीं जानता था कि क्या चल रहा है।
jwenting

3

इसके लिए एक मनोवैज्ञानिक और विपणन पक्ष भी है। कुछ मामलों में (मैं अधिकांश मामलों को कहने की हिम्मत करता हूं लेकिन मैं इतना बोल्ड * जी नहीं हूं) "डाउन फॉर मेंटेनेंस" पढ़ने का मतलब यह भी हो सकता है कि "सर्वर दुर्घटनाग्रस्त हो गया है या किसी अन्य कारण से सेवा से बाहर हो गया है"।

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

तो "रखरखाव के लिए नीचे" अक्सर "सेवा से बाहर" के लिए एक और शब्द है।


2

रखरखाव के लिए नीचे जाने के लिए कोई सर्वर की आवश्यकता नहीं है। आप किसी भी चीज के लिए, किसी भी पैमाने पर, डीबी परिवर्तन, सर्वर अपडेट आदि से बच सकते हैं।

समस्या यह है कि 0-डाउनटाइम सिस्टम, एक निश्चित पैमाने पर, बनाने और बनाए रखने के लिए बहुत महंगा है। आपको हर जगह अतिरेक, हर जगह संतुलन, डेटा प्रतिकृति, सिंक्रनाइज़ेशन की आवश्यकता होती है। वे कठिन समस्याएं हैं।

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

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

अर्थशास्त्र।

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


0

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

शिट होता है। जब तक आप अपने डिलिवरेबल्स ( और आपके स्पेक्स मान्य हैं ) के गणितीय सत्यापन के कुछ फार्म नहीं कर रहे हैं, तब तक कोई फर्क नहीं पड़ता कि आप कितने सावधान हैं।

इसके अलावा, ऐसे समय होते हैं जब आपको अपने बुनियादी ढाँचे के एक महत्वपूर्ण हिस्से में बदलाव करना पड़ सकता है (जैसे, आपके डेटाबेस संरचनाओं में बदलाव) जिसे डाउन-टाइम की आवश्यकता होती है।

जब तक आप एक महत्वपूर्ण प्रणाली ( पांच-नौ या छह-नौ प्रणाली कहते हैं) विकसित कर रहे हैं, तब तक जिम्मेदार और लागत प्रभावी चीज वास्तविकता के हिस्से के रूप में डाउन-टाइम की स्वीकृति के साथ एक प्रणाली का निर्माण करना है।

इसके अलावा, आप उस सिद्धांत को और अधिक प्रभावी बनाने के लिए एक स्पष्ट समझ और प्रक्रिया के साथ समय प्रबंधन (या कम से कम पता लगाने योग्य) के लिए प्रबंधनीय और उत्तरदायी बना सकते हैं।


1
गणितीय सत्यापन भी रामबाण नहीं है; कभी-कभी आप पाते हैं कि आपने जो सत्यापित किया है वह वह नहीं है जिसे आप सत्यापित करना चाहते थे
डोनल फैलो

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

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

ओह। मुझे लगता है कि फिर हम सोच में हैं। बदलती आवश्यकताएं (और पुनः सत्यापन।) औपचारिक तरीकों की अकिलीज़ एड़ी हैं। चूंकि यह एक रचनात्मक कार्य है (अपने मानव स्वभाव के कारण), मेरा मानना ​​है कि यह हल करने योग्य नहीं है, न कि इस तरह से कि औपचारिकतावादी / शुद्धतावादी इसे पसंद करेंगे। मुझे लगता है कि एफएम के विफल वादों में से एक रहा है; वे ओवरसोल्ड हो गए (मेरा मतलब है, उदाहरण के लिए, वेब विकास के लिए औपचारिक तरीके ?) चश्मे की अत्यधिक छानबीन की जानी है और तेजी से परिवर्तन के लिए उत्तरदायी नहीं है (और यह महत्वपूर्ण प्रणालियों की विशिष्ट है, अत्यधिक निंदनीय नहीं)। बाद के अपवाद के बजाय आदर्श हैं।
luis.espinal

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

-2

एक बार हमारी वेबसाइट हैक हो गई थी (कुछ साल पहले पुराने IIS6 और Windows 2003 सर्वर)। जब हम बहाली पर काम कर रहे थे तो हमने कुछ घंटों के लिए "रखरखाव के तहत" पृष्ठ पर रखा ...।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.