我是一個(gè)中度的公有云服務(wù)器用戶,平時(shí)使用的服務(wù)器,少則兩到三臺(tái),多則十幾臺(tái)。這些機(jī)器分布在不同的城市,屬于不同的供應(yīng)商,并且可能屬于不同分發(fā)版本。我該如何標(biāo)記它們,并且將它們和域名關(guān)聯(lián)起來?
1. Hostname
Hostname 可能是我們標(biāo)記網(wǎng)絡(luò)上設(shè)備的最好選擇了。但是 Hostname 的規(guī)范化也是一個(gè)需要考慮的問題。有些人喜歡以用途來命名(db1,nginx1等等)。但由于我在使用云主機(jī)時(shí)要突出的內(nèi)容并不是用途,所以從最一開始便沒有這樣做,而是標(biāo)記了地區(qū)或者供應(yīng)商,有時(shí)還有系統(tǒng)版本等。可是,這些信息依舊不能統(tǒng)一。
最后,考慮到使用服務(wù)器標(biāo)示的直觀性和唯一性等,我確定了一個(gè)服務(wù)器的 Hostname 標(biāo)準(zhǔn),分別由“云服務(wù)商縮寫”、“IATA城市代碼”、“系統(tǒng)和版本”、“隨機(jī)字符”和“域名”五個(gè)部分構(gòu)成。
整個(gè)名稱中,像城市代碼和隨機(jī)字符在生成 Hostname 時(shí)可以完全確定下來的,但其它的并不一定。因此我又為它們制定了額外的規(guī)則,讓他們最終能夠達(dá)成統(tǒng)一。下面就來介紹一下每個(gè)部分的具體規(guī)則。
1.1 云主機(jī)供應(yīng)商縮寫
好像沒有哪個(gè)權(quán)威機(jī)構(gòu)編制了云主機(jī)供應(yīng)商的代號(hào),因此這個(gè)地方是由我自己來制定。挑選國(guó)內(nèi)和國(guó)際上比較常用的幾家供應(yīng)商,已經(jīng)可以滿足需要了。
供應(yīng)商名稱 | 縮寫 |
---|---|
Amazon Web Services | aws |
Microsoft Azure | maz |
Linode | lnd |
DigitalOcean | don |
Vultr | vlt |
Bandwagon | bwg |
阿里云 | ali |
Ucloud | ucd |
騰訊云 | qcd |
1.2 國(guó)際航空運(yùn)輸協(xié)會(huì)城市代碼
“國(guó)際航空運(yùn)輸協(xié)會(huì)(IATA)”是一個(gè)國(guó)際性的民航組織,該組織維護(hù)著民航界通用的機(jī)場(chǎng)代碼和城市代碼,我們平時(shí)坐飛機(jī)打印在登機(jī)牌和行李箱上的機(jī)場(chǎng)縮寫便是該代碼。似乎一個(gè)城市必須有機(jī)場(chǎng),才能擁有自己的城市代碼,但這樣也足夠滿足我們的需要了:公有云的提供商在數(shù)據(jù)中心選址的時(shí)候必須要考慮到交通等基礎(chǔ)設(shè)施的,所以根據(jù)目前的經(jīng)驗(yàn),只要是有公有云數(shù)據(jù)中心的城市,一定有機(jī)場(chǎng),因此暫時(shí)可以不必?fù)?dān)心 IATA 代碼不適用的可能。
要查詢某個(gè)城市的 IATA 代碼,可以訪問如下地址:http://www.iata.org/publications/Pages/code-search.aspx
1.3 系統(tǒng)和版本
系統(tǒng)和版本也是我比較關(guān)心的問題,因?yàn)槲覀兊?Hostname 標(biāo)記依然是偏向基礎(chǔ)設(shè)施的。我們還是比較希望能通過 Hostname 反映出系統(tǒng)版本這一關(guān)鍵內(nèi)容。但各個(gè)系統(tǒng)的名稱有長(zhǎng)有短,版本也各不相同,因此“系統(tǒng)和版本”這一項(xiàng)也經(jīng)過了定制和規(guī)范。
系統(tǒng)名稱 | 縮寫 | 示例 |
---|---|---|
Red Hat Enterprise Linux | rhel | rhel7 |
CentOS | ctos | ctos7 |
Fedora | fdr | fdr7 |
Oracle Linux | orl | orl7 |
Ubuntu | ubt | ubt1604 |
FreeBSD | fbd | fbd10 |
CoreOS | crs | crs1068 |
Windows | win | win2012 |
當(dāng)然,系統(tǒng)版本多得數(shù)不清,誰也無法把所有的版本都標(biāo)記出來,而且云服務(wù)商一般只提供上述幾種系統(tǒng)。所以這樣也足夠滿足需求了。
1.4 隨機(jī)字符
把隨機(jī)字符放在 Hostname 中是為了解決標(biāo)記沖突的問題。比如我在同一家供應(yīng)商、同一城市購買了多個(gè)同樣系統(tǒng)的主機(jī),我可以在后面標(biāo)記數(shù)字;但如果只有一個(gè)時(shí)候,這個(gè)數(shù)字又顯得突兀。因此我選擇了隨機(jī)字符,這樣既解決了唯一性問題,在只有一個(gè)機(jī)器的時(shí)候又不會(huì)很突兀。長(zhǎng)度定為5個(gè),足夠使用,又不至于太長(zhǎng)。
1.5 域名
域名就不用多說了,如果購買了域名可以設(shè)置在這里,這樣便形成了一個(gè)完整的 Hostname。有人覺得不需要在 Hostname 中填寫域名。仁者見仁。
2. 域名指向
如果你平時(shí)使用 IP 地址訪問和登錄,不添加域名,這樣一套 Hostname 已經(jīng)足夠讓你賞心悅目了;如果你購買了域名,可以將域名用 A 記錄指向到這里來,平時(shí)使用的時(shí)候則免去了記憶 IP 地址的麻煩。但使用的時(shí)候你會(huì)發(fā)現(xiàn)新的問題:這個(gè)地址太長(zhǎng)了。每次連接 SSH 或通過瀏覽器訪問時(shí),我都需要敲這么長(zhǎng)的域名。
為了解決這個(gè)問題,我又申請(qǐng)了一個(gè)短地址:colinlee.fish。所有和服務(wù)有關(guān)的二級(jí)域名都通過 CNAME 指向剛剛的 A 記錄,還可以通過 DNS 做一個(gè)簡(jiǎn)單的負(fù)載均衡。很是實(shí)用。
以上便是我標(biāo)記自己使用的云主機(jī)的方法,感謝閱讀。您是否有更好的方法和實(shí)踐?歡迎在下面留言。