Soru Anlamlı ve anlamsız hostname arasında seçim yapma [kapalı]
Farklı sunucular, çeşitli donanım, yazılım, işletim sistemleri, sanal / özel vb. Kukla yönetimli bir kümeyle ortam yaratın.
Anlamlı hostnameleri seçer misiniz (mysqlmaster01..99, mysqlslave001..999, vpnprimary, vpnbackup, vb.) Veya bir kitap veya filmdeki karakterler gibi anlamsız hostnameleri tercih eder misiniz?
Anlamlı sunucu isimleriyle gördüğüm problem, isimlerin genellikle tek bir hizmeti temsil ettikleri ve bir sunucunun birden fazla amaca sahip olması durumunda gerçekten dağınık olduğu (özellikle sunucu rollerinin sık sık değiştiği durumlarda).
Bir hizmet adını bir IP adresine eşleme ve bu DNS'nin yapması gereken eşleştirmeyi sürdürmüyor mu?
Her iki yaklaşımın avantajları ve dezavantajları nelerdir ve seçtiğiniz yaklaşımla ne gibi sorunlarla başa çıkmak zorunda kaldınız?
74
2018-02-18 14:04
Menşei
Cevaplar:
Bir zamanlar bir adlandırma şemasına karar verme fırsatım oldu. Bu yüzden turlara devam ettim ve geliştiricilerime sordum ki, her şeyden önce bu isimlerle günlük olarak çalışmak zorunda olan insanlar, ister tercih ettiler fonksiyonel adları (yani, kodlanmış bir biçimde, makinenin amacını temsil eden adlar) veya hafıza isimleri (yani, makinenin amacı hakkında herhangi bir dolaylı içerik içermeyen önceden varolan insan isimlendirme şemasından alınan isimler).
38 geliştiriciden 37'si tercih edilen mnemonik isim; sadece bir tane tercih edilen fonksiyonel isim. Bu yüzden hepsini nehirlerden sonra isimlendirdim (çok büyük isimlerden oluşan bir havuz var, birçoğu kısa, hatırlaması kolay ve yazması hızlı).
İnsan beyni, isimlere anlam vermek için oldukça iyi tasarlanmış. Unutulmaz isimler sunuyorsanız, insanlar bu isimlerin ne için kullanıldığını oldukça çabuk hatırlayacak ve bunları kullanacaktır. Bazı ortak geçmişlerden (örneğin, nehirler, elementler, yıldızlar, ilçeler, içecekler, fikirleri alırsanız) isimleri kullanırsanız, insanların bir şirketin ana bilgisayar adını anında tanımaları için yardımcı olur; aksi halde "e-postaların tümü"
betelgeuse"biraz kafa karıştırıcı olabilir".
Tersine, geliştiricilerim, önceki işlerde sahip olduklarının tam olarak ne olduğunu hatırlamakta gerçekten zorlandıklarını hissetti.
pr1ms001 oldu.
Ancak, iç DNS'de CNAME'leri mnemonik ad eşlemesine işlevsel bir ad sağlamak için kullandığımızı eklemeliyiz. Bu nedenle, PR sitesindeki ilk kümedeki ana posta sunucusunun gerçekten olduğunu hatırlamanız daha kolay olduysa
pr1ms001sonra DNS, bunun şu anda olduğunu bilmenizi isterdi
orwell. Ayrıca, bu makine başına çok sayıda işlevsel isme sahip olalım, bu yüzden üzerinde çalıştığınız işlevin işlevsel adını her zaman kullandığınız sürece, emin olabilirsiniz.
pr1imap001 Bu işlevi taşıyalım bile, IMAP sunucusuna her zaman işaret eder
orwell için
rhine. Ve ne zaman
hudson öldü, operasyonel fonksiyonları etkilemeden değiştirmenin ismini değiştirebilirdik, böylece "hiç demek istemedin"
hudsonveya yaşlı
hudson"karışıklık.
96
2018-02-18 14:10
Bu büyük ölçüde sunucularınızın olup olmadığıdır.
pets veya
livestock.
Evcil hayvanlar bireysel isimler alır. Birbirlerinden ayrılar ve bu farklılıkları önemsiyoruz. Birisi hastalandığında, genellikle onu tekrar sağlığa kavuşturmaya çalışırız. Geleneksel olarak, sunucular evcil hayvanlardı.
Hayvancılık sayıları alır. Çoğunlukla özdeşler, ve hangi farklılıklar var, umurumda değil ve genellikle en aza indirmeye çalışıyoruz. Biri hastalandığında, onu yere koyar ve bir tane daha alırız. Tamamen sanallaştırılmış sunucular, özellikle AWS gibi IaaS sunucuları çiftlik hayvanlarıdır.
Çoğu karmaşık ortamlarda, bir karışımınız var. Örneğinizin arka kısımları, neredeyse kesinlikle hayvancılıktır. Daha fazlasına ihtiyacınız varsa, standart yapılandırma ile birkaç tane daha döndürün; Eğer çok fazla ihtiyacın yoksa bazılarını kapatırsın. Bazı sunucularda veritabanı sunucularınız evcil hayvanlardır. Her birinde çok sayıda özel kurulum olabilir; hatta sanallaştırma yerine onları çıplak metal üzerinde çalıştırıyor olabilirsiniz.
Tabii ki, her iki ortamda, HİZMETLERİ isimlendirebilir ve bunları doğrudan ele alabilirsiniz. Bu her durumda en iyi uygulamadır; geliştiricilerin bir hizmetin gerçek ana bilgisayar adının ne olduğunu bilmesi veya önemsemesi gerekmemelidir. Ana bilgisayar adı sadece operasyonel bir detay olmalıdır. Öyleyse, o zaman, sunucu adlarında host personeliniz için yararlı olan kodlama bilgisini düşünün - örneğin, bir sunucunun hangi veri merkezini içerdiğini belirtmek genellikle yararlıdır.
93
2018-02-18 18:16
Bu daha önce burada ele alındı ...
Benim önerim, işlevsel isimler ve anımsatıcı isimlerin birleşimidir ...
Bir uygulama yazıyorsanız ve adresi gerekiyorsa
ccts-logserver1, bu adı kullanın, ancak bir CNAME veya bir takma ad verin. Gerçek ana bilgisayar adı istediğiniz her şey olabilir: Bir meyve ya da sebze, Yunan mitolojisi ya da Seinfeld karakteri ... ama gerçek işlevsel isimleri ilişkilendirmeniz gerektiğinde size biraz esneklik sağlar, ancak insanların hatırlayabileceği bir şeyi saklayın.
Örneğini düşün
mango, DB sunucusu başarısız ... ama başka bir şeyle değiştirildi, söyle
peach. Belki mevcut süreçler ve uygulamalar görmek gerekir
cmt-prod-db1. Sistemleri takas edebilir, çakışmalara isim vermeden bunları inşa edebilir ve uygulamaları (ve geliştiricileri) mutlu tutabilirsiniz.
18
2018-02-18 14:17
Çalıştığım yerde birden çok şehirde birden çok şirketi, birden çok şirketi yönetiyoruz. Bizim için anımsatıcı isimler çalışamaz. Bunun yerine, sunucularımızı tanımlayan kısa bir form kullanıyoruz. Bu durum, farklı alanlarda birden fazla ofise sahip (veya birden fazla alandaki tek bir ofise veya aynı alanda birden fazla ofise veya yukarıdakilerin tümüne sahip olan) bazı müşterilerimiz olduğu için bizim durumumuzda iyi sonuç verir.
Bizim için bilgi Şirket / Domain, şehir, fonksiyon, sayı içerir. Şirket için bir etki alanı denetleyicisi için, Şikago'daki Cypress şöyle olurdu:
CYPRCHDOM001 (Bunu konuşmamızda Cypress ana DOM olarak ifade ederiz)
CYPRCHSQL001 onun SQL sunucusu olurdu, CYPRCHMGM001 onun yönetimi (yani, anti-virüs, yedekler, vb) olurdu ve CYPRCHAPP001 bir karma uygulamalar sunucusu olurdu. Hatırlanması kolay, sıralaması kolay, öğretmesi kolay.
4
2018-02-18 18:31
Tek gereklilik ana bilgisayar adları için ağda benzersiz olmaları gerektiğidir.
Anlam sadece sunucular işleviyle ilgili olmak zorunda değildir. Fiziksel cihazlarla uğraşmanız gerekiyorsa, konum çok kullanışlı olabilir. Bir cihazın sanal veya fiziksel olup olmadığını bilmek de yararlı olabilir. Bir ağ aygıtı, bir linux sunucusu veya bir windows kutusu arasındaki farkı anlayabilmek, hangi aracın oturum açmak için kullanıldığını bulmak için çok kullanışlı olabilir.
İşleyiş şeklimiz bu bilgiyi aşağıdaki gibi cihaz adına koymak ve denemek:
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 bir sıra numarası
bir ISO 3166-1 üç harfli ülke kodu Cihazın bulunduğu yeri gösterir.
Daha sonra DNS'de CNAMES'i kullanarak, çeşitli servis isimlerini hostname ile eşleştiriyoruz.
Bunun hakkında karışık duygular var. Belirli bir cihazın nerede bulunduğuna bakmak için zaman ayırır. Öte yandan, verilmiş bir sunucunun ana makine adı ile sunulduğunda, değerli taşların kullanıldığı önceki sistemimize kıyasla ne olduğunu hatırlamak çok daha zordur. Değerli taşlar hiçbir anlam ifade etmiyordu, ama hatırlamak kolaydı çünkü her kişi kendi bağlantılarını yaratabilirdi.
Tek bir sistemden diğerine geçiş yaptığımızda en büyük karışıklığın ortaya çıkmasıyla tek tavsiyenin tek bir şemaya yerleşmesi olacağını düşünüyorum.
2
2018-02-19 15:18