Задать вопрос
AlekseyArh
@AlekseyArh
Кибер существо

Технический нейминг серверов. По какому принципу называть сервера?

Хочу поразмышлять и послушать ваш опыт.

Предыстория.
Часто приходилось выдумывать технические названия для проектов и серверов.
Использовали названия спутников планет, химических элементов. Слышал так же варианты японских блюд и линейки сигарет, название городов. Кто на что горазд.

Но мне кажется такие слова не очень подходят. Например города можно неосознанно ассоциировать с географическими координатами, а сервер "Москва" это просто название, он не стоит физически тут, может быть путаница. Например если это часть CDN. И так можно к любому слову прикопаться. Например ты против курения, а твои проекты лежат на сервере winston.

Ещё хуже когда название сервера ассоциируется с каким то проектом, который будет на нём крутиться.
Потому что проект растёт, появляются новые сервера и все назвать именем проекта будет сложно.
А ещё это просто вычислительная машина. Туда могут подселить виртуалки или докеры от других проектов.
Так что имя должно быть без ассоциаций, желательно короткое и ещё лучше что бы количество символов в имени было на всех серверах одинаково.

Идея
Самый короткий вариант нейминга у меня получился 2х символьный.
Например (a0.example.com, b9.example.com, xz.example.com)
Суть в том, что надо нарисовать таблицу по типу шахмат или морского боя или в экселе.
В таблице будут стобцы от A до Z и поля 0 - 9 - A - Z
620294ee92e7f713667891.png

В такой таблице видно какие сервера заняты, какие свободны. Если заполнять их по порядку, то можно понять какие новые, какие старые (a0, a1, a2, ...)

Если человек работает с сотней серверов, то он не запомнит их даже если будет называть их именами родственников.
Ему в любом случае понадобится какой то wiki.
Если работает с парочкой, то C1 и B6 запомнятся не хуже имён своих родителей.

А если написать простенькую программу, которая отображает эту таблицу, в которой можно создавать проекты и привязывать туда сервера и раздавать права пользователям на доступ к проектам, то это вообще красота мне кажется.

Суть вопроса
Какую методику используете вы?
Может я изобретаю колесо?
Может есть уже даже софт специальный?
Или в этом подходе какая то принципиальная ошибка, подводные камни которой уже набили вам шишек?
Поделитесь опытом. Думаю многим будет полезно почитать холивар на эту тему.
  • Вопрос задан
  • 1835 просмотров
Подписаться 1 Простой 20 комментариев
Решения вопроса 3
flapflapjack
@flapflapjack
на треть я прав
Ну у нас сервера зовутся:

CR-MOW-DC (центр реабилитации - москва - домен контроллер)
MS-SYK-HV (Медцентр Суперский - сыктывкар - гипервизор)

Ну имена вымышленные, но суть передал.

И я по названию понимаю, к какой организации относится сервер, в каком он городе, и чем занимается.
Ответ написан
Vamp
@Vamp
Я использую нейминг по физическому расположению сервера.

{имя дц}-{номер стойки}-{номер юнита в стойке}

Получается что-то типа:

miran-8-40
itsoft-1-1

Если хотите покороче и фикс длину, можно брать первую букву ДЦ (или две буквы, если есть совпадения) и выравнивать цифры ведущим нулём:

m-08-40
i-01-01

Если серверов не так много чтобы арендовать стойки целиком, то просто порядковый номер сервера:

m-01
i-15

Ну или два/три ведущих нуля, если количество серверов 1000/10000:

m-001
i-015

Самый короткий вариант нейминга у меня получился 2х символьный.

Почему не 1 символ?
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Сетевое администрирование
software engineer
Зависит от твоего проекта и от количества машин.
Если у тебя пара десятков машин - да как хочешь называй.
Если пара сотен - какой-то конвеншн подойдет.
Если тысячи - конкретный конвешн, скорее всего учитывающий инвентаризационные требования или локацию.

У тебя говоришь сервер может то докер, то в другую стойку перехать то еще что-то. Это слишком нишевая ситуация. Обычно сервер покупают под задачу и он ей служит. Если он не нужен под эту задачу - его убирают, переустанавливают и возможно под новым именем, которое соответствует новому назначению.

Если у сервера нет конкретного назначения, используетс просто геолокация и бренд.

ibm-ny-0519-01 - IBM, New York DC, 2019/Mar, 01
hp-sf2-0619-01 - HP San-Francisco DC2, 2019/Jun, 01

P.S.
Но я понял главную твою проблему. Ты почему-то привязываешься к имени хоста, и забываешь что на хост можно добавить DNS алиас, и не один.

Поэтому хостнейм машины - должен нести на себе инвентаризационные данные.
А если на машине постоянно крутится какое-то конкретное приложение, добавляешь DNS алиас типа myapp.mycompany.intranet.com
Если появляется еще одна "идея", то добавляется еще один DNS алиас myanotherapp.mycompany.intranet.com
Если приложение выросло или требует других ресурсов - оно уезжает на другой хост вместе со своим алиасом, и все довольны.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Обычно соглашение по именам (формализованное и утвержденное) использует в качестве кодирования размещение + структурные подразделения в организации + физический\виртуальный + роли серверов + двухсимвольную нумерацию.
Так как непонятно - что у вас за организация - конкретное посоветовать сложно.
Вот вам пример для транснациональной компании:
2 символа номера зоны\части света + 2 символа iso кода страны + 2 символа кода города + V\P (виртуальный физический) + 1 символ роли + двухзначный порядковый номер.
Получим Z1USNYVD01 - виртуальный контроллер домена 01, размещенный в Зоне Америки, стране США, городе Нью-Йорк.
Если есть деление по Tier - добавляются еще 1,2,3 тиры.

Вот вам пример для организации в рамках страны - город, офис, tier, тип, роль, порядковый номер.
Ответ написан
profesor08
@profesor08
domain-subdomain-subsubdomain-subsubsubdomain-sub(n)domain

Если не знаешь что выбрать главнее, то бросай монетку.

P.S. Имя сервера особого значения не имеет. В любой момент может измениться его назначение, характеристики или просто сдохнуть, закрыться. По этому неплохо бы иметь некий каталог, где будет расписано все в мельчайших подробностях по которым можно будет осуществлять поиск и сортировку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы