意味のあるホスト名と意味のないホスト名の選択[終了]


79

さまざまなハードウェア、ソフトウェア、オペレーティングシステム、仮想/専用など、さまざまなサーバーのパペット管理クラスターの環境を想定します。

意味のあるホスト名(mysqlmaster01..99、mysqlslave001..999、vpnprimary、vpnbackupなど)を選択しますか、または本や映画のキャラクターなどの意味のないホスト名を選択しますか?

意味のあるホスト名で見られる問題は、通常、名前が単一のサービスを表し、サーバーに複数の目的がある場合、それが本当に面倒になることです(特にサーバーの役割が頻繁に変更される場合)。

サービス名をIPアドレスにマッピングし、そのマッピングを維持して、DNSが行うべきことをしていませんか?

両方のアプローチの長所と短所は何ですか?また、選択したアプローチで取り組む必要がある実際の問題は何ですか?


10
DNSを制御する場合、いつでも両方を実行できます。
-jscott

16
ここに残しておきます:RFC 1178
gelraen

表面的には意見に基づいた質問ですが、実際の回答は経験的ポーリングによる事実に基づいており、人間の認知機能(人間の脳が物事を記憶する方法)に基づいています。私の意見では、この質問は再開されるべきです。
-dotancohen

回答:


98

むかしむかし、命名スキームを決定する機会がありました。だから私は巡回して、結局これらの名前を日常的に使用しなければならなかった人々である開発者に、機能的な名前(つまり、エンコードされた形式で、マシンの目的)またはニーモニック名(つまり、マシンの目的に関する暗黙のコンテンツを含まない、既存の人間の命名スキームから抽出された名前)。

38人の開発者のうち、37人がニーモニック名を好みました。1つの優先機能名のみ。だから私はすべて川にちなんでそれらに名前を付けました(可能な名前の非常に大きなプールがあり、それらの多くは短く、覚えやすく、入力しやすいです)。

人間の脳は、名前に意味を付けるために非常にうまく設計されています。覚えやすい名前を提供すると、人々はそれらの名前が何に使われているのかをすぐに覚えて使用します。一般的な背景(川、元素、星、郡、飲み物など)から描かれた名前を使用すると、会社のホスト名を見つけたときにすぐに認識できるようになります。そうしないと、「すべてのメールが終わった」などのステートメントbetelgeuseが少し混乱する可能性があります)。

反対に、私の開発者は、以前の仕事で彼らが何でpr1ms001あったかを正確に思い出すのに本当に苦労したと感じました。

ただし、内部DNSでCNAMEを使用してニーモニック名マッピングへの機能名を提供したことを追加する必要があります。そのため、PRサイトの最初のクラスターのメインメールサーバーpr1ms001がそれが現在であったことを知らせてくださいorwell。また、マシンごとに多くの機能名を持つことができるため、作業中の機能に関連する機能名を常に使用している限り、pr1imap001その機能を移動した場合でも、常にIMAPサーバーを指すようになります。からorwellまでrhine。また、hudson死亡した場合、運用機能に影響を与えることなく交換品の名前を変更できるため、「hudson新旧を意味しますhudsonか?」混乱。


7
あなたはそれを考えるかもしれませんが、私の開発者は、他の何かが通信されたかどうかにかかわらず、ニーモニックスキームの方が優れていると言いました。人間の脳は覚えているのが好きです。
MadHatter

11
アイスランドの火山にちなんで命名したはずです。
クロエ

1
「川のプール」の+1;)
コネラク

2
これは素晴らしいアイデアであり、私はそれを盗んでいます。
SpacemanSpiff

1
この方法でサーバーに名前を付けることは、自動構築システムでより多くの作業を行うことに同意しますが、それらを構築するポイントは他の人がそれらを使用することです-そして、上記のデータはそれらを使用しなければならなかった人からのものです。彼らが望むものが変わったのかもしれませんが、サーバー管理に関する私たちの決定は、私たちの仕事を楽にするもの以上のものに基づいているべきだと思います。
MadHatter

93

これは主にサーバーがあるかどうかにダウンしていますpetslivestock

ペットには個人名が付けられます。それらは互いに異なっており、それらの違いを気にかけます。病気になったら、私たちは通常、それを健康に戻すように看護しようとします。従来、サーバーはペットでした。

家畜は数字を取得します。それらはほとんど同一であり、どのような違いがありますか、私たちは気にせず、通常最小化しようとします。人が病気になったら、それを置いて別のものを手に入れます。完全に仮想化されたサーバー、特にAWSなどのIaaSサーバーは家畜です。

ほとんどの複雑な環境では、混在しています。たとえば、Webバックエンドはほぼ確実に家畜です。さらに必要な場合は、標準構成でさらにいくつかを起動します。必要ない場合は、いくつかをオフにします。データベースサーバーは、一部の構成ではペットです。それぞれに多くの特別な設定があります。仮想化の代わりにベアメタルで実行することもできます。

もちろん、どちらの環境でも、SERVICESという名前を付けて、それらに直接対処できます。これは、どのような場合でもベストプラクティスです。開発者は、サービスの実際のホスト名を知っている必要はありません。ホスト名は、純粋に操作可能な詳細である必要があります。次に、ホスト名で運用スタッフに役立つ情報をエンコードすることを考えます。たとえば、サーバーがどのデータセンターにあるかを示すと便利です。


22
ペットや家畜-それはそれを置くにはいい方法です。
マイケルハンプトン

5
最近、この概念を最初に目にした記事を再発見しました:gregarnette.com/blog/2012/05/cloud-servers-are-not-our-pets
Thaeli

私はその記事の最後の日のために狩りをしてきたおかげで@Ianは、SEOはあわや失敗
ルドルフ・オラー

18

これは前にここで説明しました...

私の推奨事項は、機能名とニーモニック名の組み合わせです...

アプリケーションを作成していて、アドレス指定する必要がある場合は、ccts-logserver1全体を通してその名前を使用しますが、CNAMEまたはエイリアスにします。実際のホスト名は、果物や野菜、ギリシャ神話、またはサインフェルドのキャラクターなど、何でもかまいませんが、実際の機能的な名前を関連付ける必要があるときに、ある程度の柔軟性を提供しますが、人々が覚えられるものを保持します。

mangoDBサーバーが失敗する例を考えてみてください...しかし、他の何かに置き換えられますpeach。おそらく、既存のプロセスとアプリケーションを確認する必要がありますcmt-prod-db1。システムを交換し、名前の競合なしにシステムを構築し、アプリケーション(および開発者)を満足させることができます。


4

私が働いている場所では、複数の都市、複数の企業、複数のサイトを管理しています。ニーモニック名は機能しません。代わりに、サーバーを説明する短縮形を使用します。異なるドメインに複数のオフィス(または複数のドメインに単一のオフィス、同じドメインに複数のオフィス、または上記すべて)を持つクライアントがあるため、このケースではうまく機能します。

私たちにとって、情報には会社/ドメイン、都市、機能、番号が含まれます。したがって、会社のドメインコントローラーの場合、シカ​​ゴのサイプレスは次のようになります。

CYPRCHDOM001(会話ではこれをサイプレスのメインDOMと呼びます)

CYPRCHSQL001はSQLサーバー、CYPRCHMGM001はその管理(ウイルス対策、バックアップなど)、CYPRCHAPP001は混合アプリケーションサーバーになります。覚えやすく、分類しやすく、教えやすい。


1
それでは、CYPRCHAPP003ではなくCYPRCHAPP001で実行されるアプリケーションをどのように覚えていますか?これはニーモニック名の問題でもあると認めますが、何らかの機能的な名前を使用する場合は、具体的な名前を指定することもできます。
CVn

2
@MichaelKjörlingサーバー上にあるものの詳細な細目は名前に属さず、何らかのドキュメントに属しています。CYPRCHAPP001で何が実行されているかを知る必要がある場合は、ドキュメントを読んでください。アプリケーションの移動に加えて、CYPRCHAPP001_PointofSale_Payroll_HRSoftware-etcは、企業が給与計算ソフトウェアをホストされたソリューションに移動するときに誤った呼び名になります。
ウルフハート

2
@Wulfhart私はあなたのポイントに同意するが、何のためのCNAMEを持って間違っているpointofsalepayrollなど?そうすれば、システム管理者以外は、給与計算ソフトウェアが実行されている正確な場所を気にする必要はありません。他のすべての人にとっては、それだけで動作します。何かを別のデータセンターに移動したいですか?全く問題なし。POSシステムデータベースを専用のサーバーに移動したいですか?pointofsale-databaseCNAMEを更新して、新しい場所を指すようにします。等々。
CVn

1
マシンを交換する必要があるとします:CYPRCHSQL002を構築してテストしたら、CYPRCHSQL001という名前を廃止するだけで(置き換えられることはありません)、または古い001を削除した後に002を001に名前変更しますか他に?
ニックグリム

@MichaelKjörlingそれは私にとって素晴らしいアイデアのようです。「仕様は名前に属さない」とは、マシンのホスト名ではないことを意味します。
ウルフハート

2

ホスト名の唯一の要件は、ネットワーク上で一意であることです。

意味は、サーバー機能だけである必要はありません。物理デバイスを扱う必要がある場合、ロケーションは非常に役立ちます。デバイスが仮想か物理かを知ることも役立ちます。ネットワークデバイス、Linuxサーバー、またはWindowsボックスの違いを認識できると、ログインに使用するツールを判断する際に非常に便利です。

これを処理する方法は、次のようにこの情報をデバイス名に入れてみることです。

LまたはT -ライブやテストのPまたはV -物理または仮想SまたはN -サーバーまたはネットワーク(私たちはすべてのLinuxサーバを持っていない)のシーケンシャル番号は一意性を保証するためにISO 3166-1の3文字の国コードは、デバイスを示します位置しています。

次に、DNSのCNAMESを使用して、さまざまなサービス名をホスト名にマッピングします。

私はこれについて複雑な気持ちを持っています。確かに、特定のデバイスがどこにあるかを調べる必要がある時間を節約できます。一方、ジェムストーンを使用していた以前のシステムと比較すると、特定のサーバーがホスト名を提示されたときの動作を覚えるのははるかに困難です。宝石は何の意味も意味しませんでしたが、それぞれの人が独自のつながりを作ることができるため、覚えやすいものでした。

唯一のアドバイスは、あるシステムから別のシステムに移行したときに最大の混乱が生じたため、1つのスキーマで解決することだと思います。


私はこれに反対します:「デバイスが仮想であるか物理であるかを知ることもまた、ネーミングの議論の文脈で有用です」。もちろん有用な情報ですが、名前を読んでサーバーについて知る必要がある最初のものではありません。さらに、P2VまたはV2Pはスキームを壊すか、サーバーの名前を変更する必要があり、他のことを壊す可能性があります。
mfinni

1
私の経験では、P2VまたはV2Pは多くのことを壊しており、可能な場合は避けるべきです-私たちはそうしているので、命名規則の問題ではありません。命名規則は、それを設計した人の要件を満たす必要があります。私が所属する組織では、すべてのサーバーとネットワーク機器を管理するチームによって設計され、上記のことを伝えたいと考えています。それはあなたに合っていないかもしれませんが、それから議論にすべて開いています。唯一の技術要件は一意性です。
dunxd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.