सवाल सार्थक और अर्थहीन होस्टनामों के बीच चयन [बंद]


विभिन्न सर्वरों के कठपुतली-प्रबंधित क्लस्टर के साथ एक पर्यावरण मानें - विभिन्न हार्डवेयर, सॉफ्टवेयर, ऑपरेटिंग सिस्टम, वर्चुअल / समर्पित इत्यादि।

क्या आप सार्थक होस्टनाम (mysqlmaster01..99, mysqlslave001..999, vpnprimary, vpnbackup, आदि) चुनेंगे या आप एक पुस्तक या फिल्म के पात्रों जैसे अर्थहीन होस्टनाम पसंद करेंगे?

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

किसी आईपी पते पर सेवा नाम मैप नहीं कर रहा है और यह मैपिंग बनाए रखता है कि DNS को क्या करना है?

दोनों दृष्टिकोणों के फायदे और दोष क्या हैं और आपके द्वारा चुने गए दृष्टिकोण से निपटने के लिए आपको क्या वास्तविक समस्याएं हैं?


74
2018-02-18 14:04


मूल


यदि आप DNS को नियंत्रित करते हैं, तो आप हमेशा दोनों कर सकते हैं। - jscott
मैं इसे यहाँ छोड़ दूंगा: आरएफसी 1178 - gelraen
हालांकि सतही रूप से एक राय-आधारित प्रश्न, वास्तविक उत्तर तथ्यजन्य मतदान के साथ-साथ मानव संज्ञानात्मक कार्य (मानव मस्तिष्क को चीजों को याद करते हैं) के आधार पर आधारित होते हैं। मेरी राय में यह सवाल फिर से खोलना चाहिए। - dotancohen


जवाब:


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

38 डेवलपर्स में से 37 पसंदीदा मनोवैज्ञानिक नाम; केवल एक पसंदीदा कार्यात्मक नाम। इसलिए मैंने उन्हें नदियों के बाद नाम दिया (संभावित नामों का एक बहुत बड़ा पूल है, और उनमें से कई छोटे, याद रखने में आसान हैं, और टाइप करने में तेज़ हैं)।

मानव मस्तिष्क नामों के अर्थ को जोड़ने के लिए बहुत अच्छी तरह से डिज़ाइन किया गया है। यदि आप यादगार नाम प्रदान करते हैं, तो लोग बहुत जल्दी याद करेंगे कि उन नामों का उपयोग किस प्रकार किया जाता है, और उनका उपयोग करें। यदि आप कुछ सामान्य पृष्ठभूमि से खींचे गए नामों का उपयोग करते हैं (उदाहरण के लिए नदियों, तत्वों, सितारों, काउंटी, पेय, आपको विचार मिलता है) यह लोगों को कंपनी होस्टनाम को तुरंत पहचानने में सहायता करता है; अन्यथा बयान जैसे "सभी ईमेल समाप्त हो गया betelgeuse"थोड़ा उलझन में हो सकता है)।

इसके विपरीत, मेरे डेवलपर्स ने महसूस किया कि पिछली नौकरियों में उनके पास वास्तव में याद रखने में काफी कठिन समय था pr1ms001 था।

लेकिन मुझे यह जोड़ना चाहिए कि हमने आंतरिक DNS में CNAMEs का उपयोग मनोनीत नाम मैपिंग के लिए एक कार्यात्मक नाम प्रदान करने के लिए किया था, इसलिए यदि आपको वास्तव में याद रखना आसान लगता है कि पीआर साइट पर पहले क्लस्टर में मुख्य मेल सर्वर था pr1ms001, तो DNS आपको बताएगा कि वह वर्तमान में था orwell। साथ ही, हमें प्रति मशीन के कई कार्यात्मक नाम होने दें, इसलिए जब तक आप हमेशा उस कार्य के लिए प्रासंगिक कार्यात्मक नाम का उपयोग करते हैं जिस पर आप काम कर रहे थे, तो आप सुनिश्चित हो सकते हैं कि pr1imap001 हमेशा आईएमएपी सर्वर को इंगित करेंगे, भले ही हमने उस कार्यक्षमता को स्थानांतरित किया हो orwell सेवा मेरे rhine। और कब hudson मृत्यु हो गई, हम परिचालन कार्यों को प्रभावित किए बिना प्रतिस्थापन का नाम बदल सकते थे, ताकि हमारे पास कभी "नया मतलब न हो।" hudsonया पुराना hudson?" उलझन।


96
2018-02-18 14:10



आप सोच सकते हैं कि, लेकिन मेरे डेवलपर्स ने कहा कि निमोनिक योजना बेहतर थी या नहीं, कुछ और भी संचारित किया गया था, क्योंकि वे सभी अपनी आंतरिक राज्य सारणी बनाते थे, और उस तरह की यादें नामों पर निर्माण करना आसान है मानव मस्तिष्क को याद रखना पसंद है। - MadHatter
आइसलैंड में ज्वालामुखी के बाद आपको उनका नाम होना चाहिए था। - Chloe
"नदियों के पूल" के लिए +1;) - Konerak
यह एक शानदार विचार है, और मैं इसे चोरी कर रहा हूं। - SpacemanSpiff
मैं मानता हूं कि नामकरण सर्वर इस तरह से एक ऑटोबल्ड सिस्टम के साथ अधिक काम करते हैं, लेकिन मुझे लगता है कि उन्हें बनाने का मुद्दा अन्य लोगों के लिए उनका उपयोग करना है - और ऊपर दिया गया डेटा उन लोगों से है जिन्हें करना था उपयोग उन्हें। ऐसा हो सकता है कि वे क्या चाहते हैं, लेकिन मुझे लगता है कि सर्वर व्यवस्थापक पर हमारे फैसले को हमारी नौकरियों को आसान बनाने के मुकाबले ज्यादा अनुमान लगाया जाना चाहिए। - MadHatter


यह काफी हद तक नीचे आता है कि आपके सर्वर हैं या नहीं pets या livestock

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

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

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

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


93
2018-02-18 18:16



पालतू जानवर या पशुधन - यह रखने का एक अच्छा तरीका है। - Michael Hampton♦
मैंने हाल ही में इस लेख को फिर से पाया है कि मैंने पहली बार इस अवधारणा को देखा: gregarnette.com/blog/2012/05/cloud-servers-are-not-our-pets - Ian
धन्यवाद @Ian मैं उस लेख के आखिरी दिन के लिए शिकार कर रहा हूं, एसईओ असफल हो गया - Rudolf Olah


यह पहले यहां कवर किया गया है ...

मेरी सिफारिश कार्यात्मक नामों और नींबू नामों का संयोजन है ...

यदि आप एक आवेदन लिख रहे हैं और इसे संबोधित करने की जरूरत है ccts-logserver1, उस नाम का संपूर्ण उपयोग करें, लेकिन इसे एक सीएनएन या उपनाम बनाएं। वास्तविक मेजबाननाम जो कुछ भी आप चाहते हैं: एक फल या सब्जी, ग्रीक पौराणिक कथाओं या सेनफेल्ड चरित्र ... लेकिन जब आपको वास्तविक कार्यात्मक नामों को जोड़ने की आवश्यकता होती है तो यह आपको कुछ लचीलापन देता है, लेकिन कुछ ऐसा याद रखें जो लोग याद कर सकते हैं।

उदाहरण के बारे में सोचो mango, डीबी सर्वर विफल रहता है ... लेकिन कुछ और के साथ बदल दिया गया है, कहो peach। शायद मौजूदा प्रक्रियाओं और अनुप्रयोगों को देखने की जरूरत है cmt-prod-db1। आप सिस्टम को स्वैप कर सकते हैं, संघर्षों का नाम दिए बिना उन्हें बना सकते हैं और एप्लिकेशन (और डेवलपर्स) को खुश रख सकते हैं।


18
2018-02-18 14:17





जहां मैं काम करता हूं हम कई शहरों में कई साइटों, एकाधिक कंपनियों का प्रबंधन करते हैं। हमारे लिए निमोनिक नाम काम नहीं कर सकते हैं। इसके बजाय हम एक शॉर्टेंड फॉर्म का उपयोग करते हैं जो हमारे सर्वर का वर्णन करता है। यह हमारे मामले में अच्छी तरह से काम करता है क्योंकि हमारे पास कुछ ग्राहक हैं जिनके पास विभिन्न डोमेन पर एकाधिक कार्यालय हो सकते हैं (या एकाधिक डोमेन पर एक ही कार्यालय, या एक ही डोमेन पर एकाधिक कार्यालय, या उपरोक्त सभी!)

हमारे लिए, जानकारी में कंपनी / डोमेन, शहर, फ़ंक्शन, संख्या शामिल है। तो कंपनी के लिए एक डोमेन नियंत्रक के लिए, शिकागो में साइप्रस कहें यह होगा:

CYPRCHDOM001 (हम इसे वार्तालाप में साइप्रस मुख्य डोम के रूप में देखेंगे)

CYPRCHSQL001 यह SQL सर्वर होगा, CYPRCHMGM001 इसका प्रबंधन होगा (यानी एंटी-वायरस, बैकअप, आदि), और CYPRCHAPP001 एक मिश्रित अनुप्रयोग सर्वर होगा। याद रखने में आसान, सॉर्ट करने में आसान, सिखाने में आसान।


4
2018-02-18 18:31



तो आप कैसे याद रखें कि CYPRCHAPP001 पर CYPRCHAPP003 के विरोध में कौन से अनुप्रयोग चलते हैं? मैं स्वीकार करूंगा कि यह मोनोमिक नामों के साथ भी एक समस्या है, लेकिन यदि आप किसी प्रकार के कार्यात्मक नामों के लिए जा रहे हैं, तो यह भी विशिष्ट हो सकता है। - α CVn
@ माइकल Kjörling एक सर्वर पर क्या है के ठीक अनाज विनिर्देश एक नाम से संबंधित नहीं है, वे किसी तरह के दस्तावेज में हैं। अगर किसी को यह जानने की ज़रूरत है कि सीवाईपीआरएचएपीपी 001 पर क्या चल रहा है, तो वे दस्तावेज पढ़ते हैं। अनुप्रयोगों के कदम के अलावा, CYPRCHAPP001_PointofSale_Payroll_HRSoftware-आदि एक गलत नामक होगा जब कंपनी अपने पेरोल सॉफ़्टवेयर को होस्ट किए गए समाधान में ले जाती है। - Wulfhart
@Wulfhart मैं आपके बिंदु से सहमत हूं, लेकिन सीएनएन के साथ क्या गलत है pointofsale, payroll, आदि।? इस तरह, सिसडमिन के अलावा किसी भी व्यक्ति को खुद को चिंता करने की ज़रूरत नहीं है जहां पेरोल सॉफ्टवेयर चल रहा है; हर किसी के लिए, यह सिर्फ काम करता है। किसी अन्य डेटासेंटर को ले जाना चाहते हैं? बिल्कुल भी परेशानी नहीं है। बिक्री प्रणाली डेटाबेस के बिंदु को अपने समर्पित सर्वर पर ले जाना चाहते हैं? बस अपडेट करें pointofsale-database नए स्थान पर इंगित करने के लिए सीएनएन। और इसी तरह। - α CVn
मान लीजिए कि आपको मशीन को प्रतिस्थापित करने की आवश्यकता है: एक बार जब आपने CYPRCHSQL002 बनाया है और इसका परीक्षण किया है, तो क्या आप केवल CYPRCHSQL001 (कभी भी प्रतिस्थापित नहीं होने वाले) नाम सेवानिवृत्त हो जाते हैं, या पुराने 001 को हटाए जाने के बाद 002 से 001 का नाम बदलते हैं या कुछ अन्य? - nickgrim
@ माइकल Kjörling यह मेरे लिए एक अच्छा विचार की तरह लगता है। "विनिर्देश एक नाम से संबंधित नहीं हैं" मेरा मतलब मशीन के होस्टनाम में नहीं था। - Wulfhart


केवल आवश्यकता होस्टनाम के लिए यह है कि वे नेटवर्क पर अद्वितीय होना चाहिए।

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

जिस तरह से हम इसे संभालते हैं, इस जानकारी को डिवाइस नाम में निम्नानुसार रखने और रखने के लिए है:

एल या टी - लाइव या टेस्ट पी या वी - शारीरिक या वर्चुअल एस या एन - सर्वर या नेटवर्क (हमारे पास कोई लिनक्स सर्वर नहीं है) विशिष्टता सुनिश्चित करने के लिए अनुक्रमिक संख्या एक आईएसओ 3166-1 तीन अक्षर देश कोड यह इंगित करता है कि डिवाइस कहां स्थित है।

हम मेजबाननाम के माध्यम से विभिन्न सेवा नामों को मैप करने के लिए DNS में CNAMES का उपयोग करते हैं।

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

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


2
2018-02-19 15:18



मैं इससे असहमत हूं: "पता है कि डिवाइस आभासी या भौतिक भी उपयोगी हो सकता है" के संदर्भ में नामकरण चर्चा। बेशक यह उपयोगी जानकारी है, लेकिन यह पहली बात नहीं है जिसे आपको किसी सर्वर के नाम को पढ़ने से जानने की आवश्यकता है। इसके अलावा, पी 2 वी या वी 2 पी या तो आपकी योजना को तोड़ता है, या सर्वर का नाम बदलने की आवश्यकता है, जो अन्य चीजों को तोड़ सकता है। - mfinni
मेरे अनुभव में पी 2 वी या वी 2 पी चीजों का एक पूरा समूह तोड़ता है और जहां संभव हो वहां से बचा जाना चाहिए - हम करते हैं, इसलिए यह हमारे नामकरण सम्मेलन के साथ कोई मुद्दा नहीं है। नामकरण सम्मेलन को जो भी इसे डिजाइन किया गया है उसकी आवश्यकताओं को पूरा करने की आवश्यकता है - जिस संगठन में मैं काम करता हूं उसमें टीम द्वारा डिजाइन किया गया था जो सभी सर्वरों और नेटवर्क उपकरणों का प्रबंधन करता है, और वे उपरोक्त चीजों को बताने में सक्षम होना चाहते हैं। यह आपके लिए सही नहीं हो सकता है, लेकिन फिर यह बहस के लिए खुला है। एकमात्र तकनीकी आवश्यकता विशिष्टता है। - dunxd