हर प्रोग्रामर को क्या सीसैडमिन चीजें पता होनी चाहिए?


96

एक प्रोग्रामर के रूप में, हम के लिए sysadmins लेने के लिए जाते हैं। कुछ समय के लिए मैं एक अच्छा sysadmin के बिना किया गया है वास्तव में मुझे सराहना की है कि तुम लोग क्या करते हैं। जब हम बिना किसी पाप के वातावरण में जा रहे हैं, तो आप हमें क्या ज्ञान दे सकते हैं?

जवाबों:


70

मैं इसके साथ शुरू करूँगा:

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

11
सभी चरणों का दस्तावेजीकरण करना कुछ ऐसा है जिसे मैंने अच्छे sysadmins को करते देखा है, और मैंने इसे स्वयं करना शुरू कर दिया है। बहुत मददगार, वास्तव में।
नाथन डेविट

2
स्व दस्तावेज प्रणालियों पर विचार करें। उदाहरण के लिए, पाठ फ़ाइल या विकी में होस्ट नामों की सूची क्यों रखें जब एक अच्छी टिप्पणी की गई ज़ोन फ़ाइल सूचना का स्रोत है।
डेव चेनी

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

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

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

44

<बड़ी पोस्ट डिस्क्लेमर यहां डालें>

इनमें से कुछ पहले कहा गया है, लेकिन यह दोहराने लायक है।

प्रलेखन:

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

  • प्रत्येक लॉजिकल चंक के लिए आरेख बनाएं और उन्हें अपडेट रखें। मैं एक सटीक नेटवर्क मैप या क्लस्टर आरेख की संख्या की गणना नहीं कर सकता हूं जिसने मुझे बचाया है।

  • प्रत्येक सिस्टम के लिए बिल्ड लॉग रखें, भले ही यह कैसे कॉपी करें और इसे कैसे बनाएं, इसके लिए कमांड पेस्ट करें।

  • अपने सिस्टम का निर्माण करते समय, अपने एप्लिकेशन इंस्टॉल करें और कॉन्फ़िगर करें, यह काम करता है और अपने बेंचमार्किंग का परीक्षण करें। अब, डिस्क को पोंछ दें। गंभीरता से। डिस्क के सामने की पहली मेगाबाइट को 'dd' या अन्यथा बॉक्स को अनबूटेबल रेंडर करें। घड़ी की टिक टिक है: साबित करें कि आपके दस्तावेज़ इसे खरोंच से पुनर्निर्माण कर सकते हैं (या, और भी बेहतर, साबित करें कि आपका सहकर्मी आपके दस्तावेज़ से अधिक कुछ नहीं कर सकता)। यह आपके डिजास्टर रिकवरी प्लान का आधा हिस्सा बनेगा।

  • अब आपके पास पहली आधी आपकी डिजास्टर रिकवरी योजना है, बाकी दस्तावेज; कैसे अपने आवेदन की स्थिति को वापस लाने के लिए (टेप से फ़ाइलों को पुनर्स्थापित करें, डंप से डेटाबेस को फिर से लोड करें), विक्रेता / समर्थन विवरण, नेटवर्क की आवश्यकताएं, कैसे और कहां प्रतिस्थापन हार्डवेयर प्राप्त करें - आप जो भी सोच सकते हैं वह आपके सिस्टम को वापस लाने में मदद करेगा।

स्वचालन:

  • आप जितना कर सकते हैं उतना स्वचालित करें। यदि आपको तीन बार कुछ करना है, तो सुनिश्चित करें कि दूसरा आपके स्वचालन को विकसित करने में खर्च हो रहा है, इसलिए तीसरा पूरी तरह से स्वचालित है। यदि आप इसे स्वचालित नहीं कर सकते हैं, तो इसे दस्तावेज़ करें। वहाँ स्वचालन सुइट्स हैं - देखें कि क्या आप उन्हें आपके लिए काम कर सकते हैं।

निगरानी:

  • एप्लिकेशन इंस्ट्रूमेंटेशन शुद्ध सोना है। सिस्टम से गुजरने वाले लेनदेन को देखने में सक्षम होना डिबगिंग और समस्या निवारण को इतना आसान बनाता है।

  • एंड-टू-एंड परीक्षण बनाएं जो न केवल यह साबित करता है कि एप्लिकेशन जीवित है, बल्कि वास्तव में वही करता है जो इसे माना जाता है। अंक आपके हैं यदि इसे उद्देश्यों की निगरानी के लिए निगरानी प्रणाली में रखा जा सकता है। यह दोहरा कर्तव्य करता है; ऐप के काम को साबित करने से अलग, यह सिस्टम अपग्रेडेशन को काफी आसान बनाता है (मॉनिटरिंग सिस्टम रिपोर्ट्स ग्रीन, अपग्रेड काम, घर जाने का समय)।

  • बेंचमार्क, मॉनिटर और सब कुछ ऐसा करने के लिए समझदार सब कुछ पर मैट्रिक्स इकट्ठा। बेंचमार्क आपको बताता है कि कब कुछ उम्मीद करनी चाहिए कि जादू का धुआं निकल जाएगा। निगरानी आपको बताती है कि यह कब है। मेट्रिक्स और आंकड़े प्रबंधन के माध्यम से नई किट (ताजा जादू के धुएं के साथ) प्राप्त करना आसान बनाते हैं।

  • यदि आपके पास एक निगरानी प्रणाली नहीं है, तो एक को लागू करें। बोनस अंक यदि आप वास्तव में उपरोक्त एंड-टू-एंड टेस्ट जैक करते हैं।

सुरक्षा:

  • "chmod 777" (उर्फ अनुदान सभी एक्सेस / विशेषाधिकार) कभी हल नहीं है।

  • 'कम से कम बिट' सिद्धांत की सदस्यता लें; यदि यह डिस्क पर स्थापित, कॉपी या अन्यथा नहीं है, तो इसे समझौता नहीं किया जा सकता है। "किचन सिंक" OS और सॉफ़्टवेयर इंस्टॉल बिल्ड चरण के दौरान जीवन को आसान बना सकते हैं, लेकिन आप ट्रैक के लिए इसका भुगतान करना समाप्त कर देते हैं।

  • जानते हैं कि किसी सर्वर पर हर खुला पोर्ट किस लिए है। यह सुनिश्चित करने के लिए अक्सर उनका ऑडिट करें कि कोई नया दिखाई न दे।

  • एक समझौता सर्वर की सफाई की कोशिश मत करो; इसे खरोंच से पुनर्निर्माण करने की आवश्यकता है। ताजा डाउनलोड किए गए मीडिया के साथ एक अतिरिक्त सर्वर को फिर से बनाएं, केवल बैकअप से डेटा को पुनर्स्थापित करें (जैसा कि बायनेरिज़ से समझौता किया जा सकता है) या विश्लेषण के लिए अलग-थलग किए गए होस्ट को क्लोन करें ताकि आप उसी किट पर पुनर्निर्माण कर सकें। इसके आसपास एक संपूर्ण कानूनी दुःस्वप्न है, इसलिए यदि आपको कानूनी सहायता प्राप्त करने की आवश्यकता है, तो संरक्षण के पक्ष में। (नोट: IANAL)

हार्डवेयर:

  • कभी भी कुछ भी मत मानो कि यह बॉक्स पर क्या कहता है। साबित करो कि तुम क्या जरूरत है, बस के मामले में यह नहीं करता है। आप अपने आप को "यह लगभग काम करता है" कहकर पाएंगे जो आप अपेक्षा से अधिक बार करेंगे।

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

(एक तरफ: 3 बजे एक समस्या को ठीक करने के दो तरीके हैं, एक में गर्म होना शामिल है, एक लैपटॉप पर अपने पजामा में वीपीएन पर काम करना, दूसरे में एक मोटी जैकेट और डेटासेंटर / कार्यालय के लिए एक ड्राइव शामिल है। मुझे पता है कि मैं कौन सा हूं। पसंद करते हैं।)

परियोजना प्रबंधन:

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

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

  • पहले दिन से प्रोजेक्ट में नियोजित अप्रचलन को लागू करें, और प्रोजेक्ट प्रलेखन में निर्दिष्ट स्विच ऑफ डे से छह महीने पहले रिफ्रेश चक्र शुरू करें।

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

विकास:

  • अपने विकास को सुनिश्चित करें और स्टेजिंग सिस्टम उत्पादन से मिलता जुलता है। वीएम या अन्य वर्चुअलाइजेशन तकनीक (जोन, एलडीओएम, vservers) वास्तविक-दुनिया-में-हर-लेकिन-प्रदर्शन उत्पादन क्लोन को आसान बनाते हैं।

बैकअप

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

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

  • जब तक उनका परीक्षण नहीं किया जाता तब तक बैकअप बेकार है। हर कुछ महीनों में, अभिलेखागार से एक यादृच्छिक टेप खींचते हैं, सुनिश्चित करें कि यह वास्तव में उस पर डेटा है, और डेटा सुसंगत है।

और सबसे महत्वपूर्ण रूप से...

अपने विफलता मोड, या मर्फी उठाओ ... और मर्फी अपने कार्यक्रम पर काम नहीं करता है।

विफलता के लिए डिज़ाइन, प्रत्येक सिस्टम के डिज़ाइन किए गए कमजोर बिंदुओं को दस्तावेज़ित करें, जो उन्हें ट्रिगर करता है और पुनर्प्राप्त करने के लिए कैसे। जब कुछ गलत हो जाएगा तो यह सब अंतर कर देगा।


1
+1 यह ऐसा है जैसे किसी ने मेरे दिमाग में देखा - और यह सुंदर था; पी
ऑस्कर ड्यूवॉर्न

3
"बेंचमार्क, मॉनिटर और सब कुछ करने के लिए सब कुछ पर मैट्रिक्स इकट्ठा। बेंचमार्क आपको बताता है कि कब उम्मीद है कि कुछ जादू के धुएं को बाहर कर देगा। निगरानी आपको बताती है कि कब है। मेट्रिक्स और आंकड़े नई किट (ताजा जादू के साथ) प्राप्त करना आसान बनाते हैं। धूम्रपान) प्रबंधन के माध्यम से। " शुद्ध सोना
टीजे क्राउडर 16

43

यह आसान नहीं है। मैं ऐसे कई प्रोग्रामर्स को जानता हूं जो सोचते हैं कि सिर्फ इसलिए कि वे IIS या Apache को देव बॉक्स पर सेटअप कर सकते हैं कि वे एक वेब फ़ार्म चला सकें। यह समझें कि नौकरी में क्या शामिल है और अपने शोध और नियोजन को करें, बस यह मत सोचो कि आपके ऐप को प्राप्त करने के लिए 10 मिनट में sysadmin काम आसान काम है।


7
इसके लिए +1। यह इसलिए है क्योंकि हम यह नहीं कर सकता है देखने के लिए आसान है कि यह वास्तव है।
गर्ट एम

व्यवस्थापक और प्रोग्रामिंग दोनों काम करने वाले एक सामान्य व्यक्ति के रूप में, मैं आपकी दुर्दशा को पूरी तरह से समझता हूं। +1
एवरी पायने

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

2
+1 रॉबर्ट: या sysadmin का कहना है कि "यह एक सरल अगर बयान है" खराब रूप से डिज़ाइन किए गए नेटवर्क आर्किटेक्चर को वर्कअराउंड करने के लिए। पारस्परिक सम्मान और समझ महत्वपूर्ण है।
स्टीवन एवर्स

27
  • एहसास है कि, बेहतर या बदतर के लिए, कई सर्वर और / या नेटवर्किंग उपकरण वे एक दूसरे परिवार के बच्चों को बहुत पसंद करते हैं। ये उनके बच्चे हैं। वे उन्हें भगाते हैं, बीमार होने पर उनकी मदद करते हैं और परेशानी के लिए सतर्कता से उनकी निगरानी करते हैं। यह इस तरह नहीं होना चाहिए , लेकिन कई वर्षों के बाद, यह अक्सर होता है । इसे ध्यान में रखें क्योंकि आप उनसे उपकरणों के बारे में अपनी चिंताओं को ठीक से या अपेक्षा के अनुरूप प्रदर्शन नहीं करते हैं। और अगर आपको कोई उत्तर मिलता है जो आपको समझ में नहीं आता है, तो इसे इस विश्व-दृश्य के माध्यम से फ़िल्टर करने का प्रयास करें।
  • अच्छा काम करने की शर्तों पर हो। चेज़ लगता है, लेकिन यह सोने में अपने वजन के लायक है। किसी दिन, आपको कुछ विशेष एहसान की आवश्यकता होगी। और किसी दिन, यह सिसडमिन जीवन के लिए थोड़ा आसान बनाने के लिए अपने रास्ते से बाहर जाने के लिए खुश होगा, बस इस एक बार।
  • यह काम करने का रिश्ता दोनों तरह से चलता है। यदि sysadmin बहुत व्यस्त है, और आप एक छोटी सी स्क्रिप्ट या प्रोग्राम लिखकर जीवन को थोड़ा आसान बना सकते हैं, तो इसे करें! जितना वे जानते हैं, उससे अधिक वे इसकी सराहना करेंगे।
  • बहुत स्पष्ट हो। "यह बेकार है" के रूप में स्पष्ट नहीं है "आंतरायिक नेटवर्क कनेक्शन होने के कारण थोड़ा परेशान है, कोई भी मौका जिसे आप इसे देख सकते हैं?"
  • अगर आपको लगता है कि आपका ऐप स्केल कर देगा, तो यह मानने से पहले एडमिन से पूछें । वे उन चीज़ों को "देख" सकते हैं जो आप नहीं करते हैं, या उन उपकरणों की प्रदर्शन सीमा के बारे में कुछ जानते हैं जिन्हें आप तैनात करने जा रहे हैं।
  • यदि आपके ऐप को ट्यूनिंग की आवश्यकता है, लेकिन यह एक कोड इश्यू नहीं है, तो सर्वर से कैसे प्रदर्शन कर रहे हैं, इसके बारे में अच्छी तरह से पूछें। Sysadmins अपनी मशीनों को प्यार से देखभाल करते हैं और जब वे "बीमार" या "दुर्व्यवहार" से प्रसन्न नहीं होते हैं। अच्छी तरह से पूछना एक बीमार मशीन को चारों ओर मोड़ देगा (या इसे मरम्मत / बदल दिया जाएगा)।
  • (जैसा कि अन्यत्र उल्लेख किया गया है) आपके द्वारा उपयोग की जाने वाली सेटिंग्स का दस्तावेज़, और आप उनका उपयोग क्यों करते हैं। बस "सेट चेकबॉक्स एक्स" या "अनफॉरमेंट कॉन्फिग फाइल लाइन वाई" होने से मदद नहीं मिलती है। आप उस विकल्प को सेट कर सकते हैं जो आपके सभी डेटा को अगले रिबूट पर मिटा देता है जो आप जानते हैं।
  • यदि आपके पास कागज पर सेटिंग का दस्तावेजीकरण करने का समय नहीं है, तो संभव हो तो इसे सिस्टम में दस्तावेज करने का प्रयास करें। Config फ़ाइलों के साथ, इस लगभग मानक अभ्यास होना चाहिए - हर की स्थापना परिवर्तन, datestamped किया जाना चाहिए नाम के पहले अक्षर के साथ, तो वह सेटिंग की उम्मीद प्रभाव, और कारण क्यों यह बदल गया था (पूर्व बुलेट बिंदु देखें)। इस छोटी सी आदत ने क्रंच-टाइम के दौरान मेरे बेकन को एक से अधिक बार बचाया है। "हमने ऐसा क्यों किया?" "क्योंकि हमने पॉलिसी एक्स को अनिवार्य कर दिया है, और सेटिंग वाई हमें वह व्यवहार देता है जो हमें पॉलिसी एक्स के लिए आवश्यक है"।
  • बीयर। या कोला। या पानी भी। पेय पदार्थों का हमेशा स्वागत किया जाता है। सिसद्दीन होना प्यासा काम है।

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

इसके लिए +1, क्योंकि यह परिवर्तन प्रबंधन पर "लूप बंद करता है"। शानदार सुझाव।
अवनी पायने

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

23

सुरक्षा पर कोई विचार नहीं किया गया है। हालांकि एक हैक किया गया ऐप प्रोग्रामर को अक्षम बना सकता है, यह कम से कम (कम से कम) एक खोया हुआ सप्ताहांत है, जो सिटाडमिन के लिए बैकअप से सत्यापन, सफाई और / या पुनर्स्थापित करने में खर्च होता है।

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

और अपने कोड के टूटने के लिए Windows अपडेट को आँख बंद करके दोष देना बंद करें। मुझे परवाह नहीं है कि यह काम किया, मुझे बताओ कि यह अब क्यों काम नहीं करता है - फिर हम देख सकते हैं कि यह किसकी गलती है।


17

नेटवर्किंग समस्याओं को कैसे डीबग करें और अपने प्रोग्राम को sysadmin टूल से चलाएं। एक प्रोग्रामर के रूप में जो सिस्टम एडमिनिस्ट्रेशन में शुरू हो गया है, मैं हैरान हूं कि कितने प्रोग्रामर एक बार नेटवर्किंग बन जाते हैं "बस रुक जाता है।"

  • Wireshark , एक ब्लैक-बॉक्स फैशन में अपने कोड को चलाने के लिए, पैकेट-दर-पैकेट
  • नेटवर्क सेवाओं से सीधे जुड़ने के लिए उपकरण:
    • टीसीपी या यूडीपी पर सादे कनेक्शन के लिए टेलनेट, नेटकैट या सोकेट
    • एन्क्रिप्शन के साथ एक ही चीज़ के लिए ओपनएसएसएल (संकेत: openssl s_client -connect target-host:portकुछ समय का प्रयास करें ), मैन्युअल रूप से नेटवर्क सेवाओं से कनेक्ट करने के लिए
  • नाम समाधान के डिबगिंग के लिए (BIND 9 पैकेज में) खुदाई करें
  • यह बताने में सक्षम होना कि विफल कनेक्शन के समय और अन्य विशेषताओं के आधार पर नेटवर्क स्टैक का क्या हिस्सा विफल रहा
  • संभवतः HTTPFox और / या Firebug

3
+1। ठोस नेटवर्क प्रदर्शन पर निर्भर कोई भी एप्लिकेशन लिखने वाले किसी भी डेवलपर को कभी भी कोड शुरू करने से पहले, दिवंगत महान डब्ल्यू। रिचर्ड स्टीवंस द्वारा 'टीसीपी / आईपी इलस्ट्रेटेड v1' पढ़ना चाहिए।
मुरली सूरिार

1
सभी upvotes दोस्तों के लिए धन्यवाद। अंतर्निहित नेटवर्किंग विफल होने पर एक असहाय गति पर प्रोग्रामर को देखने के लिए मुझे बरसों से बाहर रखा गया है। और इन दिनों, लगभग सभी प्रोग्रामिंग नेटवर्क प्रोग्रामिंग है।
JHS

14

जानिए समस्याओं का निवारण कैसे करें।

हिरन को पास करना बहुत आसान है (जैसे, आपका नेटवर्क डेटाबेस के साथ मेरे संचार को छिपा रहा है)। यह नेटवर्क की गलती हो सकती है, लेकिन आपके पास त्रुटियों के साथ एप्लिकेशन लॉग होना चाहिए, जो Google या SO का उपयोग करके किसी एप्लिकेशन के कॉन्फ़िगरेशन में समस्या को प्रकट कर सकता है।

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


1
पूर्ण रूप से। मैं उन घंटों की गिनती शुरू नहीं कर सकता जो मैंने गलत दिशाओं में समस्याओं की तलाश में बिताए हैं क्योंकि लोग मुझे गलत दिशा में इशारा कर रहे हैं
गर्ट एम

8

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


7

वैकल्पिक योजना।

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


6

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

आवश्यकताएँ: यह किस मॉड्यूल पर निर्भर करता है? संस्करण? ओएस?

निगरानी: आदर्श रूप से डेवलपर्स में आवेदन के साथ सूचना और परीक्षण की निगरानी शामिल होगी।

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

अगर एक डेवलपर मेरे पास RPM के साथ आया, जो पहली बार संक्षिप्त, व्यापक प्रलेखन और कुछ Nagios परीक्षणों के साथ स्थापित हुआ, तो वे मेरे नए सबसे अच्छे दोस्त होंगे।


6

मुझे आश्चर्य है कि अब तक दिए गए 17 उत्तरों में से एक भी एक मानक उपयोगकर्ता के रूप में लॉग ऑन करने पर आपके एप्लिकेशन को सुनिश्चित करने के बारे में कुछ भी शामिल है।

स्थापना प्रक्रिया के अलावा, मानक उपयोगकर्ता खाते के साथ लॉग ऑन करने पर एप्लिकेशन को ठीक चलना चाहिए।


4

बैकअप बैकअप बैकअप .... बैकअप का परीक्षण करें .... हमेशा वापस रोल करने के लिए तैयार रहें


4

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

  1. "यह मेरी मशीन पर काम करता है" कभी भी एक मान्य कथन नहीं है। यह प्रोग्रामर की जिम्मेदारी है कि वह सर्वर पर उपयोग के लिए एक इंस्टाल प्रोग्राम तैयार करे, या कम से कम हर कनेक्शन के दस्तावेज और सर्वर पर डीएल और ऐड-इन की आवश्यकता होगी।

  2. (मैंने इसे कई बार सुना है, इसलिए कृपया हँसें नहीं) मैं अपनी मशीन से सर्वर पर एक्सई चलाता हूं और यह काम करता है। लेकिन, जब मैं इसे सर्वर (Citrix, टर्मिनल सर्वर, आदि) पर चलाता हूं तो यह काम नहीं करता है। कृपया dll और ocx और कुछ और अपने कार्यक्रम की आवश्यकता है और कहाँ और कैसे वे पंजीकृत हैं, और कैसे अपने कार्यक्रम का उपयोग करता है उन्हें समझते हैं।

ये सरल लग सकते हैं, लेकिन मैं इससे लगातार निपटता हूं।

ब्रायन


4
  • अपने व्यवस्थापक से औपचारिक और अनौपचारिक रूप से बात करें कि आप क्या कर रहे हैं। वे आम तौर पर दिलचस्पी लेंगे और उत्पादन पर जल्द असर पड़ने की संभावना व्यक्त कर सकते हैं। आपको सहमत होने की आवश्यकता नहीं है, लेकिन यह मुसीबत के स्थानों की पहचान करने में मदद करता है।
  • नहीं, आपके पास पूरा सर्वर नहीं है ... यदि आपको जरूरत है, तो यह एक राजनीतिक निर्णय है, चाहे वह तकनीकी रूप से कितना भी अच्छा हो। अगर आप राजनीति में काम करना चाहते हैं, तो ठीक है।
  • उत्पादन हार्डवेयर अक्सर अलग दिखता है कि आपका विकास सर्वर, और खेतों के भीतर भी, मशीनों पर चश्मा अलग है।
  • जानें कि उत्पादन कैसे सेटअप है, क्योंकि आप संभवतः इसे अपने डेस्कटॉप पर दोहरा नहीं सकते हैं, ऐसा करने से आप खराब अनुमान लगाने से बच जाते हैं।
  • सिर्फ इसलिए कि आप मेमोरी में सामान को कैश कर सकते हैं इसका मतलब यह नहीं है कि आपको पहले टोंटी का इंतजार करना चाहिए (इकाई परीक्षण या पूर्व-उत्पादन प्रदर्शन परीक्षण में)
  • यदि आप किसी डेटाबेस में डेटा चिपका रहे हैं, तो इस बारे में सोचें कि आप डेटा को रीड-ओनली डेटा में विभाजित कैसे कर सकते हैं (जो कि क्षैतिज रूप से बढ़ाया जा सकता है) और रीड-राइट डेटा (जो आमतौर पर केवल लंबवत पैमाने पर होता है)।
  • यदि आप किसी डेटाबेस में डेटा चिपका रहे हैं, तो क्या वास्तव में RDBMS होना चाहिए? वहाँ अन्य कुंजी मूल्य जोड़ी प्रणाली है कि वहाँ बेहतर (netcache) बेहतर हैं।
  • नहीं लगता कि AJAX अंत-सभी समाधान है, यह अच्छा लग रहा है, लेकिन यह निगरानी और स्वचालन की संभावनाओं को सीमित करता है। मैं यह नहीं कह रहा हूं कि इसका इस्तेमाल न करें, बस दो बार सोचें।

4

ठीक है, यह थोड़ा कठिन है लेकिन:

क) कोडिंग करते समय, मान लें कि अंतर्निहित बुनियादी ढांचा विफल हो सकता है, और खुश-खुश हमेशा भूमि पर नहीं आता है। या Google

ख) हमारे पास आपके द्वारा पढ़े गए बुनियादी ढांचे की तरह कुछ भी लागू करने के लिए संसाधन नहीं हैं, इसलिए जब चीजें नीचे जाती हैं, तो हमारे लिए इसे आसान बनाएं। यह संभव है कि हम जानते हैं कि क्या किया जाना चाहिए, लेकिन जो भी कारण अभी तक नहीं हुआ है। हम आपके साथी हैं!

ग) जैसा कि ऊपर बताए गए जेएच ने कहा है कि अगर आप बुनियादी ढांचे के समस्या निवारण के लिए उपकरणों से गुजरते हैं, जैसे कि पिंग, ट्रैसरूट (या दोनों को मिलाकर), खुदाई, इत्यादि, तो आपके लिए सार्थक बोनस अंक भी हो सकता है।

d) यदि आप एक कंप्यूटर प्रोग्राम करते हैं, तो आपको वास्तव में पता होना चाहिए कि यह नेटवर्क से कैसे जुड़ता है और मूल बातें जैसे कि ipconfig / all या ifconfig के आउटपुट को पार्स करने में सक्षम है। आपको कम से कम मदद से अपना इंटरनेट कनेक्शन प्राप्त करने और चलाने में सक्षम होना चाहिए।

अन्यथा मुझे लगता है कि एवरी ने इसे बहुत पसंद किया। जो देवता थोड़े से सासदिन करते हैं उनका वजन सोने में कम होता है! लेकिन समान रूप से, sysadmins जो समझते हैं कि देवता कैसे चीजों के बारे में जाते हैं (संस्करण सहित, आदि) इस दिन और उम्र में बहुत आवश्यक हैं।

यह इस समय हवा में लगता है, मैंने ब्लॉग में देव / ऑप्स संबंधों के बारे में अधिक चर्चा देखी है - देखें

ट्विटर ट्विटर करते रहे

विभाजन और युद्ध

संचालन में पहले टेस्ट


3

कि कोई एक समूह या कार्य दूसरे की तुलना में 'बेहतर' नहीं है और किसी को भी एक-दूसरे की तुलना में 'बड़े दिमाग' की आवश्यकता नहीं है। मैंने देखा है कि दोनों पक्षों ने दूसरे की कंपनी में सभी प्राइम-डोनाश प्राप्त किए हैं - आप सभी समान लक्ष्यों को प्राप्त करने की कोशिश कर रहे हैं - इन समानताओं पर ध्यान दें और इस तथ्य पर ध्यान न दें कि आप विभिन्न उपकरणों का उपयोग करते हैं।


2

इन्फ्रास्ट्रक्चर आर्किटेक्ट ने प्रोग्रामर को बदल दिया, हो सकता है कि वह भविष्य में उस लेनदेन को वापस लेना चाहता हो :)

  1. एक-दूसरे से बात करें, जल्दी और अक्सर। उन लोगों के साथ डिज़ाइन की समीक्षा करें, जो आपके ऐप के बुनियादी ढांचे का प्रबंधन करेंगे (यदि आप जानते हैं कि कौन होगा)।
  2. शून्य डेटा हानि संभव है, लेकिन यह डेवलपर्स और sysadmins द्वारा साझा की गई एक जिम्मेदारी है। फिर, एक-दूसरे से बात करने से यहाँ मदद मिल सकती है।
  3. आपका बुनियादी ढांचा कर्मचारी गैर-कार्यात्मक आवश्यकताओं को निर्धारित करने में शामिल होना चाहिए।
  4. बीयर की व्यवस्था करें (जब काम पूरा हो जाए) और पिज्जा (जब हम काम कर रहे हों)। किसी तरह, उस तरह के भोजन की उपस्थिति हमारी अच्छी छोटी 32 सीपीयू बक्से बनाने की क्षमता को प्रभावित करती है जो भी आप उन्हें करना चाहते हैं :)

2

जैसा कि कोई है जो डेवलपर्स के लिए एक sys व्यवस्थापक है, और खुद एक डेवलपर है, यहां दी गई सलाह न केवल सोने की है, बल्कि सभी कंपनियों के लिए नए डेवलपर्स के लिए भर्ती दस्तावेज का हिस्सा होना चाहिए।

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

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