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


79

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

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

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

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

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


10
यदि आप DNS को नियंत्रित करते हैं, तो आप हमेशा दोनों कर सकते हैं।
14

16
मैं अभी इसे यहाँ छोड़ दूँगा: RFC 1178
जेलरन

हालांकि सतही तौर पर एक राय आधारित प्रश्न, वास्तविक उत्तर तथ्यपरक-आधारित मतदान के साथ और मानव संज्ञानात्मक कार्य पर आधारित है (मानव मस्तिष्क चीजों को कैसे याद रखता है)। मेरी राय में इस सवाल को फिर से खोलना चाहिए।
बिंदुचेन dot

जवाबों:


98

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

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

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

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

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


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

11
आपको आइसलैंड में ज्वालामुखियों के नाम पर उन्हें नामित करना चाहिए था।
च्लोए

1
"नदियों के पूल" के लिए +1;)
कोनरक

2
यह एक भयानक विचार है, और मैं इसे चुरा रहा हूं।
SpacemanSpiff

1
मैं इस बात से सहमत हूं कि इस तरह से नामकरण सर्वर एक ऑटोबिल्ड सिस्टम के साथ अधिक काम करता है, लेकिन मैं ध्यान देता हूं कि उन्हें बनाने का बिंदु अन्य लोगों के लिए उनका उपयोग करने के लिए है - और ऊपर दिए गए डेटा उन लोगों के हैं जिन्हें उनका उपयोग करना था। यह हो सकता है कि वे जो चाहते हैं, वह बदल गया है, लेकिन मुझे लगता है कि सर्वर व्यवस्थापक पर हमारे निर्णयों को हमारे काम को आसान बनाने से अधिक पर समर्पित किया जाना चाहिए।
18

93

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

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

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

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

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


22
पालतू जानवर या पशुधन - इसे लगाने का एक अच्छा तरीका है।
माइकल हैम्पटन

5
मैंने हाल ही में इस लेख को फिर से पाया कि मैंने पहली बार इस अवधारणा को देखा था: gregarnette.com/blog/2012/05/cloud-servers-are-not-our-pets
Thaeli

धन्यवाद @ मैं उस लेख के लिए आखिरी दिन का शिकार कर रहा हूं, एसईओ विफल रहा है
रुडोल्फ ओला

18

इससे पहले यहाँ कवर किया गया है ...

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

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

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


4

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

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

CYPRCHDOM001 (हम बातचीत में सरू मुख्य डोम के रूप में इसका उल्लेख करेंगे)

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


1
तो आप कैसे याद रखें कि CYPRCHAPP003 के विपरीत CYPRCHAPP001 पर कौन से अनुप्रयोग चलते हैं? मैं मानता हूँ कि यह मेनेनोमिक नामों के साथ एक समस्या है, लेकिन यदि आप किसी प्रकार के कार्यात्मक नामों के लिए जा रहे हैं, तो यह विशिष्ट हो सकता है।
एक CVn

2
@ MichaelKjörling एक सर्वर पर क्या है की बारीक बारीक बारीकियों में एक नाम नहीं है, वे किसी प्रकार के प्रलेखन में हैं। अगर किसी को यह जानने की जरूरत है कि CYPRCHAPP001 पर क्या चल रहा है, तो वे प्रलेखन पढ़ते हैं। अनुप्रयोगों के अलावा, CYPRCHAPP001_PointofSale_Payroll_HRSoftware- आदि एक मिथ्या नाम होगा जब कंपनी अपने पेरोल सॉफ़्टवेयर को एक होस्ट किए गए समाधान पर ले जाती है।
वुल्फार्ट

2
@Wulfhart मैं अपनी बात से सहमत हैं, लेकिन क्या के लिए CNAME होने के साथ गलत क्या है pointofsale, payrollआदि? इस तरह, किसी को भी नहीं, लेकिन सईसडमिन को खुद को चिंता करने की ज़रूरत है कि पेरोल सॉफ्टवेयर कहां चल रहा है; बाकी सभी के लिए, यह सिर्फ काम करता है। किसी अन्य डेटास्नेटर में कुछ स्थानांतरित करना चाहते हैं? बिल्कुल भी परेशानी नहीं है। बिक्री प्रणाली डेटाबेस के बिंदु को अपने स्वयं के समर्पित सर्वर पर स्थानांतरित करना चाहते हैं? pointofsale-databaseनए स्थान को इंगित करने के लिए बस CNAME को अपडेट करें । और इसी तरह।
बजे एक CVn

1
मान लें कि आपको एक मशीन को बदलने की आवश्यकता है: एक बार जब आपने CYPRCHSQL002 बनाया है और इसका परीक्षण किया है, तो क्या आप सिर्फ CYPRCHSQL001 नाम को रिटायर करते हैं (कभी नहीं बदला जाएगा), या क्या आप पुराने 001, या कुछ को हटाने के बाद 002 से 001 का नाम बदल देते हैं। अन्य?
nickgrim

@ माइकलकजर्लिंग मुझे एक महान विचार की तरह लगता है। "बारीकियों में एक नाम नहीं है" मेरा मतलब मशीन के होस्टनाम में नहीं था।
वुल्फार्ट

2

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

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

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

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

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

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

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


मैं इस बात से असहमत हूं: "एक नामकरण चर्चा के संदर्भ में यह जानना कि क्या कोई उपकरण आभासी या भौतिक भी उपयोगी हो सकता है" । बेशक यह उपयोगी जानकारी है, लेकिन यह पहली चीज नहीं है जिसे आपको किसी सर्वर के बारे में उसके नाम को पढ़ने से पहले जानना होगा। इसके अलावा, पी 2 वी या वी 2 पी या तो आपकी योजना को तोड़ देता है, या सर्वर का नाम बदलने की आवश्यकता होती है, जो अन्य चीजों को तोड़ सकता है।
mfinni

1
मेरे अनुभव में पी 2 वी या वी 2 पी चीजों की एक पूरी गुच्छा को तोड़ देता है और जहां संभव हो वहां से बचा जाना चाहिए - हम करते हैं, इसलिए यह हमारे नामकरण सम्मेलन के साथ कोई समस्या नहीं है। नामकरण सम्मेलन को जिस किसी की आवश्यकताओं को पूरा करने की आवश्यकता है - जो मैं काम करता है, उसमें मैं उस टीम द्वारा डिज़ाइन किया गया था, जो सभी सर्वर और नेटवर्क उपकरण का प्रबंधन करती है, और वे उपरोक्त बातें बताने में सक्षम होना चाहते हैं। यह आपके लिए सही नहीं हो सकता है, लेकिन तब यह बहस के लिए खुला है। केवल तकनीकी आवश्यकता अद्वितीयता है।
dunxd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.