Lựa chọn giữa tên máy chủ có ý nghĩa và vô nghĩa [đóng]


79

Giả sử một môi trường với một cụm máy chủ khác nhau được quản lý rối - phần cứng, phần mềm, hệ điều hành, ảo / chuyên dụng, v.v.

Bạn sẽ chọn tên máy chủ có ý nghĩa (mysqlmaster01..99, mysqlslave001..999, vpnprimary, vpnbackup, v.v.) hoặc bạn thích tên máy chủ vô nghĩa như nhân vật trong sách hoặc phim?

Vấn đề tôi thấy với tên máy chủ có ý nghĩa là tên thường đại diện cho một dịch vụ và nếu một máy chủ có nhiều mục đích thì nó sẽ thực sự lộn xộn (đặc biệt là nếu vai trò máy chủ thay đổi thường xuyên).

Không ánh xạ tên dịch vụ thành địa chỉ IP và duy trì ánh xạ đó DNS phải làm gì?

Những ưu điểm và nhược điểm của cả hai phương pháp là gì và bạn đã phải giải quyết những vấn đề thực tế nào với phương pháp bạn đã chọn?


10
Nếu bạn kiểm soát DNS, bạn luôn có thể thực hiện cả hai.
jscott

16
Tôi sẽ chỉ để nó ở đây: RFC 1178
gelraen

Mặc dù bề ngoài là một câu hỏi dựa trên ý kiến, các câu trả lời thực tế dựa trên thực tế với việc bỏ phiếu theo kinh nghiệm và dựa trên chức năng nhận thức của con người (cách bộ não con người ghi nhớ mọi thứ). Theo tôi câu hỏi này nên được mở lại.
dotancohen

Câu trả lời:


98

Ngày xửa ngày xưa, tôi có cơ hội quyết định kế hoạch đặt tên. Vì vậy, tôi đã đi vòng quanh và hỏi các nhà phát triển của mình, những người cuối cùng là những người phải làm việc với các tên này hàng ngày, liệu họ có thích các tên chức năng không (nghĩa là tên đại diện, ở dạng được mã hóa nào đó, mục đích của máy) hoặc tên ghi nhớ (nghĩa là tên được rút ra từ một số sơ đồ đặt tên con người đã tồn tại trước đó, không chứa nội dung ngầm về mục đích của máy).

Trong số 38 nhà phát triển, 37 tên ghi nhớ ưa thích; chỉ có một tên chức năng ưa thích. Vì vậy, tôi đặt tên cho tất cả chúng theo các dòng sông (có một nhóm rất lớn các tên có thể, và nhiều trong số chúng ngắn, dễ nhớ và nhanh chóng gõ).

Bộ não con người được thiết kế khá tốt để gắn ý nghĩa với tên. Nếu bạn cung cấp những cái tên dễ nhớ, mọi người sẽ nhanh chóng nhớ những cái tên đó được sử dụng để làm gì và sử dụng chúng. Nếu bạn sử dụng tên được rút ra từ một số nền tảng phổ biến (ví dụ như sông, yếu tố, ngôi sao, hạt, đồ uống, bạn sẽ hiểu) nó sẽ giúp mọi người nhận ra ngay tên máy chủ của công ty khi họ đi qua nó; mặt khác, các câu như "tất cả các email đã kết thúc betelgeuse" có thể hơi khó hiểu).

Ngược lại, các nhà phát triển của tôi cảm thấy rằng họ có trong các công việc trước đây đã rất khó nhớ chính xác những gì pr1ms001.

Nhưng tôi nên nói thêm rằng chúng tôi đã sử dụng CNAME trong DNS nội bộ để cung cấp tên chức năng cho ánh xạ tên ghi nhớ, vì vậy nếu bạn thực sự thấy rằng máy chủ thư chính ở cụm đầu tiên tại trang PR là dễ dàng hơn pr1ms001thì DNS sẽ cho bạn biết rằng đó là hiện tại orwell. Ngoài ra, điều đó cho phép chúng tôi có nhiều tên chức năng trên mỗi máy, miễn là bạn luôn sử dụng tên chức năng có liên quan đến chức năng bạn đang làm việc, bạn có thể chắc chắn rằng pr1imap001sẽ luôn trỏ đến máy chủ IMAP, ngay cả khi chúng tôi đã chuyển chức năng đó từ orwellđến rhine. Và khi hudsonchết, chúng ta có thể thay đổi tên của sự thay thế mà không ảnh hưởng đến các chức năng hoạt động, do đó chúng ta không bao giờ có "ý bạn là mới hudsonhay cũ hudson?" sự hoang mang.


7
Bạn có thể nghĩ như vậy, nhưng các nhà phát triển của tôi nói rằng sơ đồ ghi nhớ tốt hơn dù có truyền đạt thông tin gì hay không, bởi vì tất cả họ đều xây dựng các bảng trạng thái nội bộ của riêng mình về nơi đó và loại bộ nhớ đó dễ xây dựng hơn theo tên bộ não con người thích ghi nhớ.
MadHatter

11
Bạn nên đặt tên cho chúng theo tên núi lửa ở Iceland.
Chloe

1
+1 cho "hồ sông";)
Konerak

2
Đây là một ý tưởng tuyệt vời và tôi đang đánh cắp nó.
SpacemanSpiff

1
Tôi đồng ý rằng việc đặt tên máy chủ theo cách này hoạt động nhiều hơn với hệ thống tự động, nhưng tôi lưu ý rằng quan điểm xây dựng chúng là để người khác sử dụng chúng - và dữ liệu ở trên là từ những người phải sử dụng chúng. Có thể là những gì họ muốn đã thay đổi, nhưng tôi nghĩ rằng quyết định của chúng tôi về quản trị viên máy chủ nên được dựa trên nhiều hơn những gì làm cho công việc của chúng tôi dễ dàng.
MadHatter

93

Điều này phần lớn phụ thuộc vào việc máy chủ của bạn là petshay livestock.

Thú cưng có được tên cá nhân. Chúng khác biệt với nhau và chúng tôi quan tâm đến những khác biệt đó. Khi một người bị bệnh, chúng ta thường cố gắng chăm sóc nó trở lại khỏe mạnh. Theo truyền thống, các máy chủ đã được vật nuôi.

Chăn nuôi lấy số. Chúng hầu như giống hệt nhau và có những điểm khác biệt, chúng tôi không quan tâm và thường cố gắng giảm thiểu. Khi một người bị bệnh, chúng tôi đặt nó xuống và lấy một cái khác. Các máy chủ được ảo hóa hoàn toàn, đặc biệt là các máy chủ IaaS như AWS, là vật nuôi.

Trong hầu hết các môi trường phức tạp, bạn có một hỗn hợp. Ví dụ, trang web phụ trợ của bạn gần như chắc chắn là vật nuôi. Nếu bạn cần nhiều hơn, bạn quay thêm một vài cấu hình tiêu chuẩn; nếu bạn không cần nhiều như bạn tắt một số. Máy chủ cơ sở dữ liệu của bạn, trong một số cấu hình, là vật nuôi. Có thể có rất nhiều thiết lập đặc biệt trên mỗi; bạn thậm chí có thể chạy chúng trên kim loại trần thay vì ảo hóa.

Tất nhiên, trong cả hai môi trường, bạn có thể đặt tên DỊCH VỤ và giải quyết trực tiếp. Đây là một thực hành tốt nhất trong mọi trường hợp; nhà phát triển của bạn không cần biết hoặc quan tâm tên máy chủ thực sự của dịch vụ là gì. Tên máy chủ phải là một chi tiết hoạt động thuần túy. Sau đó, hãy suy nghĩ về thông tin mã hóa hữu ích cho nhân viên op của bạn trong tên máy chủ - ví dụ, thường hữu ích khi biểu thị trung tâm dữ liệu mà máy chủ đang ở.


22
Thú cưng hoặc gia súc - đó là một cách hay để đặt nó.
Michael Hampton

5
Gần đây tôi đã tìm lại bài viết mà lần đầu tiên tôi thấy khái niệm này trong: gregarnette.com/blog/2012/05/cloud-servers-are-not-our-pets
Thaeli

Cảm ơn @Ian Tôi đã săn lùng ngày cuối cùng cho bài viết đó, SEO thất bại
Rudolf Olah

18

Điều này đã được đề cập ở đây trước khi ...

Đề nghị của tôi là sự kết hợp giữa tên chức năng và tên ghi nhớ ...

Nếu bạn đang viết một ứng dụng và nó cần giải quyết ccts-logserver1, hãy sử dụng tên đó xuyên suốt, nhưng hãy đặt nó thành CNAME hoặc bí danh. Tên máy chủ thực sự có thể là bất cứ thứ gì bạn muốn: một loại trái cây hoặc rau, thần thoại Hy Lạp hoặc nhân vật Seinfeld ... nhưng nó mang lại cho bạn sự linh hoạt khi bạn cần liên kết các tên chức năng thực, nhưng giữ một cái gì đó mà mọi người có thể nhớ.

Hãy nghĩ về ví dụ trong đó mango, máy chủ DB không thành công ... nhưng được thay thế bằng thứ khác peach. Có lẽ các quy trình và ứng dụng hiện tại cần phải xem cmt-prod-db1. Bạn có thể trao đổi các hệ thống, xây dựng chúng mà không đặt tên xung đột và giữ cho các ứng dụng (và nhà phát triển) hài lòng.


4

Nơi tôi làm việc, chúng tôi quản lý nhiều trang web, nhiều công ty, ở nhiều thành phố. Đối với chúng tôi tên mnemonic không thể làm việc. Thay vào đó, chúng tôi sử dụng một hình thức tốc ký mô tả các máy chủ của chúng tôi. Điều này hoạt động tốt trong trường hợp của chúng tôi vì chúng tôi có một số khách hàng có thể có nhiều văn phòng trên các tên miền khác nhau (hoặc một văn phòng trên nhiều tên miền hoặc nhiều văn phòng trên cùng một tên miền hoặc tất cả các bên trên!)

Đối với chúng tôi, thông tin chứa Công ty / Miền, thành phố, chức năng, số. Vì vậy, đối với một bộ điều khiển miền cho công ty, hãy nói Cypress ở Chicago, đó sẽ là:

CYPRCHDOM001 (Chúng tôi gọi đây là DOM chính của Cypress trong cuộc trò chuyện)

CYPRCHQuery001 sẽ là máy chủ SQL, CYPRCHMGM001 sẽ là quản lý của nó (tức là chống vi-rút, sao lưu, v.v.) và CYPRCHAPP001 sẽ là máy chủ ứng dụng hỗn hợp. Dễ nhớ, dễ sắp xếp, dễ dạy.


1
Vậy làm thế nào để bạn nhớ những ứng dụng nào chạy trên CYPRCHAPP001 trái ngược với CYPRCHAPP003? Tôi cũng sẽ thừa nhận đây là một vấn đề với tên mnenomic, nhưng nếu bạn đang tìm một loại tên chức năng nào đó, thì cũng có thể cụ thể.
một CVn

2
@ MichaelKjorling Các chi tiết cụ thể về hạt mịn trên máy chủ không thuộc về tên, chúng thuộc về một số loại tài liệu. Nếu ai đó cần biết những gì đang chạy trên CYPRCHAPP001, họ đọc tài liệu. Bên cạnh các ứng dụng di chuyển, CYPRCHAPP001_PointofSale_Payroll_HRSoftware-etc sẽ là một cách gọi sai khi công ty chuyển phần mềm tính lương của họ sang một giải pháp lưu trữ.
Wulfhart

2
@Wulfhart Tôi đồng ý với quan điểm của bạn, nhưng những gì xảy ra với có CNAME cho pointofsale, payrollvv? Theo cách đó, không ai ngoài các sysadins cần quan tâm đến chính xác nơi phần mềm tính lương đang chạy; đối với những người khác, nó chỉ hoạt động. Bạn muốn di chuyển một cái gì đó đến trung tâm dữ liệu khác? Không có vấn đề gì cả. Bạn muốn chuyển cơ sở dữ liệu hệ thống điểm bán sang máy chủ chuyên dụng của riêng mình? Chỉ cần cập nhật pointofsale-databaseCNAME để trỏ đến vị trí mới. Và như vậy.
một CVn

1
Giả sử bạn cần thay thế một máy: khi bạn đã xây dựng CYPRCHSQL002 và đã thử nghiệm nó, bạn chỉ cần bỏ tên CYPRCHQuery001 (không bao giờ được thay thế) hoặc đổi tên 002 thành 001 sau khi bạn đã xóa 001 cũ hoặc một cái gì đó khác không
nickgrim

@ MichaelKjorling Đó dường như là một ý tưởng tuyệt vời đối với tôi. Bởi "chi tiết cụ thể không thuộc về một tên" Ý tôi là không có trong tên máy chủ của máy.
Wulfhart

2

Yêu cầu duy nhất cho tên máy chủ là chúng phải là duy nhất trên mạng.

Ý nghĩa không phải chỉ liên quan đến chức năng máy chủ. Vị trí có thể rất hữu ích nếu bạn phải đối phó với các thiết bị vật lý. Biết nếu một thiết bị là ảo hoặc vật lý cũng có thể hữu ích. Có thể cho biết sự khác biệt giữa một thiết bị mạng, máy chủ linux hoặc hộp windows có thể rất tiện lợi khi tìm ra công cụ nào sẽ sử dụng để đăng nhập.

Cách chúng tôi xử lý là thử và đưa thông tin này vào tên thiết bị như sau:

L hoặc T - Live hoặc Test P hoặc V - Vật lý hoặc ảo S hoặc N - Máy chủ hoặc Mạng (chúng tôi không có bất kỳ máy chủ Linux nào) một số liên tiếp để đảm bảo tính duy nhất Mã quốc gia gồm ba chữ cái ISO 3166-1 cho biết thiết bị ở đâu được đặt

Sau đó, chúng tôi sử dụng CNnam trong DNS để ánh xạ các tên dịch vụ khác nhau thông qua tên máy chủ.

Tôi có cảm xúc lẫn lộn về việc này. Nó chắc chắn tiết kiệm thời gian trong việc tìm kiếm nơi đặt một thiết bị nhất định. Mặt khác, việc nhớ một máy chủ nhất định sẽ làm gì khi được trình bày với tên máy chủ của nó, khi so sánh với hệ thống trước đây của chúng tôi sử dụng đá quý. Đá quý hoàn toàn không ngụ ý bất kỳ ý nghĩa nào, nhưng chúng rất dễ nhớ vì mỗi người có thể tạo ra các kết nối của riêng mình.

Tôi đoán lời khuyên duy nhất là giải quyết trên một lược đồ khi sự nhầm lẫn lớn nhất xuất hiện khi chúng ta chuyển từ hệ thống này sang hệ thống khác.


Tôi không đồng ý với điều này: "Biết một thiết bị là ảo hay vật lý cũng có thể hữu ích" trong bối cảnh thảo luận về việc đặt tên . Tất nhiên đó là thông tin hữu ích, nhưng đó không phải là điều đầu tiên bạn cần biết về một máy chủ đọc tên của nó. Hơn nữa, P2V hoặc V2P hoặc phá vỡ sơ đồ của bạn hoặc yêu cầu đổi tên máy chủ, điều này có thể phá vỡ những thứ khác.
mfinni

1
Theo kinh nghiệm của tôi, P2V hoặc V2P phá vỡ cả đống thứ và nên tránh nếu có thể - chúng tôi làm, do đó không phải là vấn đề với quy ước đặt tên của chúng tôi. Quy ước đặt tên cần phải đáp ứng các yêu cầu của bất kỳ ai thiết kế nó - trong tổ chức tôi làm việc trong đó được thiết kế bởi đội ngũ quản lý tất cả các máy chủ và thiết bị mạng và họ muốn có thể nói những điều trên. Nó có thể không phù hợp với bạn, nhưng sau đó tất cả là mở để tranh luận. Yêu cầu kỹ thuật duy nhất là tính độc đáo.
dunxd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.