Anlamlı ve anlamsız ana bilgisayar adları arasında seçim yapma [kapalı]


79

Farklı donanımlardan oluşan kukla yönetimli bir küme - çeşitli donanım, yazılım, işletim sistemleri, sanal / özel vb.

Anlamlı ana bilgisayar adları mı (mysqlmaster01..99, mysqlslave001..999, vpnprimary, vpnbackup, vb.) Seçer misiniz yoksa bir kitaptan veya filmden gelen karakterler gibi anlamsız ana bilgisayar adları mı tercih edersiniz?

Anlamlı ana bilgisayar adlarıyla gördüğüm sorun, adların genellikle tek bir hizmeti temsil etmesi ve bir sunucunun birden fazla amacı olması durumunda, gerçekten dağınık olması (özellikle de sunucu rolleri sık sık değişirse).

Bir hizmet adını bir IP adresine eşlemek ve bu eşleşmeyi yapmak için hangi DNS'in yapması gerektiğini belirtmemek?

Her iki yaklaşımın avantajları ve dezavantajları nelerdir ve seçtiğiniz yaklaşımla başa çıkmanız gereken gerçek problemler nelerdir?


10
DNS'yi denetlerseniz, her ikisini de yapabilirsiniz.
jscott

16
Sadece burada bırakacağım: RFC 1178
gelraen

Yüzeysel olarak görüş temelli bir soru olsa da, gerçek cevaplar ampirik oylama ile gerçeğe dayalı ve insan bilişsel işlevine dayanıyor (insan beyninin bir şeyleri nasıl hatırladığı). Bence bu soru yeniden açılmalı.
dotancohen

Yanıtlar:


98

Bir zamanlar bir isimlendirme şemasına karar verme fırsatım oldu. Bu yüzden etrafa döndüm ve geliştiricilerime sordum ki, sonuçta günlük olarak bu isimlerle çalışmak zorunda kalan insanlardı, fonksiyonel isimleri tercih ettiler mi (yani, bazı kodlanmış biçimlerde temsil eden isimleri). makinenin amacı) veya anımsatıcı isimler (yani önceden var olan bazı insan isimlendirme düzeninden çizilen, makinenin amacı ile ilgili hiçbir örtülü içerik içermeyen isimler).

38 geliştiriciden 37'si anımsatıcı ismi tercih etti; sadece bir tane tercih edilen fonksiyonel isim. Bu yüzden hepsine nehirlerden sonra ad verdim (çok büyük bir olası adlar havuzu var ve birçoğu kısa, hatırlaması kolay ve yazması kolay).

İnsan beyni, isimlere anlam eklemek için oldukça iyi tasarlanmış. Unutulmaz isimler verirseniz, insanlar bu isimlerin ne için kullanıldığını çok çabuk hatırlar ve kullanır. Ortak bir arka plandan (örneğin nehirler, elementler, yıldızlar, ilçeler, içecekler, içecekler gibi) çizilmiş isimler kullanırsanız, insanların karşılaştığı zaman bir şirketin ana bilgisayar adını hemen tanımalarına yardımcı olur; Aksi halde "tüm e-postalar bitti" gibi ifadeler betelgeusebiraz kafa karıştırıcı olabilir).

Tersine, geliştiricilerim önceki işlerde yaşadıklarını tam olarak ne pr1ms001olduğunu hatırlamakta gerçekten zorlandılar .

Ancak şunu eklemeliyim ki, dahili DNS'de CNAME'leri, anımsatıcı ad eşleştirmesine işlevsel bir ad sağlamak için kullandık. Bu nedenle, PR sitesindeki ilk kümedeki ana posta sunucusunun, bu pr1ms001durumda DNS olduğunu hatırlatmayı daha kolay bulduysanız , Bunun şu anda olduğunu bilmeme izin ver orwell. Ayrıca, makine başına birçok işlevsel isme sahip olmamıza izin verir, böylece üzerinde çalıştığınız işlevle ilgili işlevsel adı her zaman kullandığınız sürece, bu işlevi pr1imap001taşımamıza rağmen IMAP sunucusuna her zaman işaret edeceğinden emin olabilirsiniz. dan orwelliçin rhine. Ve hudsonöldüğünde, yerine koyma ismini operasyonel fonksiyonları etkilemeden değiştirebilirdik, böylece asla "yeni hudsonmi, eski hudsonmi demek istiyorsun ?" karışıklığı.


7
Bunu düşünebilirsiniz, ancak geliştiricilerim, anımsatıcı şemanın başka hiçbir şeyin iletilip iletilmediğine bakılmaksızın daha iyi olduğunu söyledi, çünkü hepsi, nerede olduklarına dair kendi iç durum tablolarını oluşturdular ve bu tür bir hafızanın isimler üzerine inşa edilmesi daha kolaydı. İnsan beyni hatırlamayı sever.
MadHatter

11
İzlanda'daki volkanlardan sonra onları isimlendirmeliydin.
Chloe,

1
"Nehirlerin havuzu" için +1;)
Konerak

2
Bu harika bir fikir ve ben onu çalıyorum.
SpacemanSpiff

1
Ben sunuculara bu şekilde adlandırma bir autobuild sistemi ile daha fazla iş olduğunu kabul, ama diğer insanlar bunları kullanmak için bunları bina noktası olduğuna dikkat - ve veri yukarıdaki zorunda insanlardan kullanmak onları. İstedikleri şey değişmiş olabilir, ancak sunucu yöneticisindeki kararlarımızın işlerimizi kolaylaştıracak şeyden daha çok öncelikli olması gerektiğini düşünüyorum.
MadHatter

93

Bu büyük ölçüde sunucularınız olup olmadığına dair aşağı gelir petsya livestock.

Evcil hayvanlar bireysel isimler alırlar. Birbirlerinden farklılar ve bu farklılıkları önemsiyoruz. Biri hastalanınca, genellikle onu tekrar sağlığa çekmeye çalışırız. Geleneksel olarak, sunucular evcil hayvan olmuştur.

Hayvancılık sayıları alır. Çoğunlukla özdeştirler ve ne gibi farklılıklar vardır, umursamıyoruz ve genellikle en aza indirmeye çalışıyoruz. Biri hastalanınca, onu bırakıp bir tane daha alırız. Tamamen sanallaştırılmış sunucular, özellikle de AWS gibi IaaS sunucuları hayvancılıktır.

Çoğu karmaşık ortamda, bir karışımınız vardır. Örneğin, web arka uçlarınız neredeyse kesinlikle hayvancılıktır. Daha fazlasına ihtiyacınız olursa, standart config ile birkaç tane daha döndürürsünüz; Çok ihtiyacın yoksa biraz kapat. Bazı sunucularda veritabanı sunucularınız evcil hayvanlardır. Her birinde çok fazla özel kurulum olabilir; sanallaştırma yerine onları çıplak metal üzerinde bile kullanıyor olabilirsiniz.

Elbette, her iki ortamda da HİZMETLER olarak adlandırabilir ve doğrudan bunları ele alabilirsiniz. Bu, her durumda en iyi uygulamadır; geliştiricilerin bir hizmetin asıl ana bilgisayar adının ne olduğunu bilmeleri ya da önemsemeleri gerekmemelidir. Ana bilgisayar adı tamamen operasyonel bir ayrıntı olmalıdır. O zaman, ops personeliniz için host isimlerinde yararlı olan bilgileri kodlamayı düşünün - örneğin, bir sunucunun hangi veri merkezinde olduğunu belirtmek genellikle yararlıdır.


22
Evcil veya hayvancılık - koymak için güzel bir yol.
Michael Hampton

5
Geçenlerde bu kavramı ilk gördüğüm makaleyi yeniden buldum: gregarnette.com/blog/2012/05/cloud-servers-are-not-our-pets
Thaeli

Teşekkürler @Ian ben bu yazı için son gün için avcılık yapıyorum, SEO başarısız heh
Rudolf Olah

18

Bu daha önce burada ele alındı.

Benim tavsiyem, işlevsel isimlerle anımsatıcı isimlerin birleşimidir ...

Bir uygulama yazıyorsanız ve ele alması gerekiyorsa ccts-logserver1, bu adı baştan sona kullanın, ancak bunu bir CNAME veya takma ad yapın. Asıl ana bilgisayar adı ne istersen olabilir: bir meyve veya sebze, yunan mitolojisi veya Seinfeld karakteri ... ama gerçek fonksiyonel isimleri birleştirmen gerektiğinde sana biraz esneklik verir, ama insanların hatırlayabileceği bir şeyleri sakla.

mangoDB sunucusunun başarısız olduğu bir örnek düşünün ... ancak başka bir şeyle değiştirilir peach. Belki mevcut süreçleri ve uygulamaları görmeniz gerekir cmt-prod-db1. Sistemleri değiştirebilir, çakışmaları adlandırmadan oluşturabilir ve uygulamaları (ve geliştiricileri) mutlu edebilirsiniz.


4

Çalıştığım yerde, birden fazla şehri, birden fazla şirketi, birden fazla şehirde yönetiyoruz. Bizim için anımsatıcı isimler çalışamaz. Bunun yerine sunucularımızı tanımlayan bir kestirme formu kullanıyoruz. Bu, bizim durumumuzda iyi sonuç veriyor, çünkü farklı alanlarda birden fazla ofisi (veya birden fazla alanda tek bir ofisi veya aynı alanda birden fazla ofisi veya yukarıdakilerin hepsini!) Olan bazı müşterilerimiz var.

Bizim için bilgiler Şirket / Alan, şehir, fonksiyon, numara içerir. Bu yüzden, şirket için bir etki alanı denetleyicisi için Chicago’daki Cypress’in şöyle olacağını söyleyin:

CYPRCHDOM001 (Bunu sohbetteki Cypress ana DOM olarak adlandırırız)

CYPRCHSQL001, SQL sunucusu, CYPRCHMGM001 yönetimi (yani, virüsten koruma, yedekleme vb.) Olacak ve CYPRCHAPP001 karma bir uygulama sunucusu olacaktır. Hatırlaması kolay, sıralaması kolay, öğretmesi kolay.


1
Peki, hangi uygulamaların CYPRCHAPP003'ün aksine CYPRCHAPP001'de çalıştığını nasıl hatırlıyorsunuz? Bunun mnenomik isimlerle ilgili bir sorun olduğunu kabul edeceğim, ancak bir tür işlevsel isimler için gidiyorsanız, belirli olabilir.
44'te CVn

2
@ MichaelKjörling Bir sunucudakilerin ince taneli özellikleri bir isme ait değildir, bir çeşit dokümantasyona aittir. Birisinin CYPRCHAPP001'de nelerin çalıştığını bilmesi gerekiyorsa, belgeleri okurlar. Uygulamaların taşınmasının yanı sıra, şirket bordro yazılımlarını barındırılan bir çözüme taşıdığında CYPRCHAPP001_PointofSale_Payroll_HRSoftware-etc bir yanlış isim olacaktır.
Wulfhart

2
@Wulfhart senin noktada katılıyorum ama ne için CNAME'ler sahip nesi pointofsale, payrollvb? Bu şekilde, sistem yöneticileri dışında kimse, tam olarak bordro yazılımının çalıştığı yerle ilgilenmez; herkes için, sadece işe yarıyor. Bir şeyi başka bir veri merkezine taşımak ister misiniz? Hiç sorun değil. Satış sistemi veritabanını kendi adanmış sunucusuna taşımak ister misiniz? pointofsale-databaseYeni konumu işaret etmek için CNAME'i güncellemeniz yeterli . Ve bunun gibi.
CVn 8

1
Bir makineyi değiştirmeniz gerektiğini varsayalım: CYPRCHSQL002'yi oluşturup test ettikten sonra, yalnızca CYPRCHSQL001 adını (asla değiştirilmeyecek) ya da eski 001'i çıkardıktan sonra 002 ile 001 olarak yeniden adlandırır mısınız? Başka?
nickgrim

@ MichaelKjörling Bu bana harika bir fikir gibi görünüyor. "Teknik özellikler bir isme ait değil" derken, makinenin ana bilgisayar adına değil.
Wulfhart

2

Ana bilgisayar adları için tek gereksinim , ağda benzersiz olmalarıdır.

Bunun anlamı sadece server fonksiyonu ile ilgili olmak zorunda değildir. Fiziksel cihazlarla uğraşmanız gerekirse, yer çok yararlı olabilir. Bir cihazın sanal mı yoksa fiziksel mi olduğunu bilmek de yararlı olabilir. Bir ağ cihazı, bir linux sunucusu veya bir windows kutusu arasındaki farkı söyleyebilmek, giriş yapmak için hangi aracın kullanılacağını bulmak açısından çok kullanışlı olabilir.

Bunu ele almamızın yolu, bu bilgiyi aşağıdaki gibi cihazın ismine koymaktır:

L veya T - Canlı veya Test P veya V - Fiziksel veya Sanal S veya N - Sunucu veya Ağ (herhangi bir Linux sunucumuz yok) benzersizliği sağlamak için sıralı bir numara Cihazın nerede olduğunu belirten bir ISO 3166-1 üç harfli ülke kodu yer almaktadır.

Daha sonra çeşitli servis adlarını ana bilgisayar adına eşlemek için DNS'deki CNAMES kullanıyoruz.

Bununla ilgili karışık hislerim var. Belirli bir cihazın bulunduğu yere bakmak zorunda kalmaktan kesinlikle zaman kazandırır. Öte yandan, belirli bir sunucunun ana bilgisayar adı ile sunulduğunda, değerli taşları kullanan önceki sistemimize kıyasla ne yaptığını hatırlamak çok daha zordur. Değerli taşlar hiç bir anlam ifade etmiyordu, ancak hatırlanması kolaydı çünkü her insan kendi bağlantısını kurabiliyordu.

Sanırım tek tavsiyemiz, bir sistemden diğerine geçiş yaparken ortaya çıkan en büyük karmaşa gibi bir şemayı çözmektir.


Adlandırma tartışması bağlamında, "Bir cihazın sanal mı yoksa fiziksel mi olduğunu bilmek de yararlı olabilir" ifadesine katılmıyorum . Elbette faydalı bilgiler, ancak bir sunucu hakkında adını okumaktan bilmeniz gereken ilk şey değil. Ayrıca, P2V veya V2P, planınızı bozar veya sunucuyu yeniden adlandırmayı gerektirir; bu, diğer şeyleri bozabilir.
mfinni

1
Tecrübelerime göre P2V veya V2P bir çok şeyi kırıyor ve mümkün olduğu durumlarda kaçınılmalıdır - öyle yapıyoruz, bu nedenle adlandırma kurallarımızla ilgili bir sorun değil. Adlandırma kuralının, onu tasarlayanın gereksinimlerini karşılaması gerekir - içinde çalıştığım kurumda, tüm sunucuları ve ağ ekipmanlarını yöneten ekip tarafından tasarlandı ve yukarıdakileri anlatabilmek istiyorlar. Sizin için doğru olmayabilir, ama sonra tartışmaya açıktır. Tek teknik gereklilik benzersizdir.
dunxd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.