От ноутбука до майнкрафт-хостинга или история длиной в 7 лет

в 16:23, , рубрики: minecraft, minecraft server, администрирование, сервера, хостинг, хостинг дома

Привет. Эта история не ставит перед собой цель похвастаться тем, что я (а впоследствии «мы») сделали за этот долгий промежуток времени, не стремится прорекламировать наш проект. В первой статье я бы хотел дать вводные физические и верхнеуровневые мазки того, как можно построить свою инфраструктуру из ~~фигни и палок~~ подручных средств, а потом масштабировать ее и развивать. Поехали?

Моя цель — поделиться историей создания своего личного проекта‑хобби, который вырос с одного еще тогда маминого ноутбука на ubuntu 16 до пет‑проекта с посещаемостью в сотни уникальных посетителей в день. Разделю это на три статьи, каждая из которых расскажет про свои особенности и аспекты:

  1. L1 — physical layer

  2. L3 — уровень инфраструктуры — от ubuntu до k8s

  3. L7 — про хостинг и микросервисы

Далекий 2017 — и мне 17

Что может делать 17-летний школьник в свободное от учебы время, если не играть в игрушки? Читать, заниматься программированием, шататься по улице? Я нашел свое хобби в администрировании и получил в свои руки первый ноутбук.

Тогда я еще не знал, что такое терминал и как с ним работать, но у меня зародилась первая идея: зачем платить за хостинг, если свой сервер можно запустить самому на своем же компьютере? Так и появился первый недопроект по ванильному майнкрафт-серверу на ноутбуке. С группой энтузиастов мы сделали его, наверное, уникальным в своем роде: не использовали какие‑либо плагины, а напрямую залезали в ядро ванильной версии и правили его, приравнивая это к нашему «супер‑пупер» решению.

В те года были популярны чистые майнкрафт‑сервера по вайт‑листу (ограниченный список игроков) без каких‑либо плагинов, меняющих механику игры. В моем распоряжении было два моих старых ноутбука: один — на ubuntu 16, где крутился сайт на WordPress и другой на ESXi, на котором были две виртуалки с сервером. Как помню, первый «сервер» не дотягивал до продакшена из‑за максимального количества оперативки — нельзя было использовать больше 8 гигабайт, а второй уже был, по‑моему мнению, вау каким классным — целых две плашки по 8 — и вот уже продакшн-решение для небольшого школьного сервера. Первый микротик hap AC lite на 100Mb, первые статьи «как настроить роутер» и что такое NAT и белые адреса и «а как подключиться по SSH если вписал DROP в iptables» — тогда было всё, с чем сейчас, казалось бы, столкнуться уже невозможно.

Первый ноутбук в "кластере"
Первый ноутбук в "кластере"

Мы размещались на балконе, потому что мне казалось это удобным. Тогда я не думал ни о летящей с улицы пыли, ни о солнце. Но в какой‑то момент на смену зиме и весне пришло лето, и надо было оперативно что‑то решать. В ход шли любые подручные средства, и на смену фольге подоспела идея холодного и горячего коридора. Но не как в датацентрах, а по‑простому — в коробке.

Если вдруг кому будет интересно, то могу показать, как это выглядело изнутри

Если вдруг кому будет интересно, то могу показать, как это выглядело изнутри

Мы засасывали теплый воздух в «холодный» коридор на вдуве из коробки, внутри вентиляторы охлаждали задние крышки ноутбуков, а их кулеры выдували горячий воздух с другой стороны. На удивление, мы действительно так жили — это спасало нас в ужасно горячие летние дни и экономило нам порядка 10–20 градусов на процессорах.

Летние теплые деньки

Летние теплые деньки

Масштабируемся — 2019, универ и оптика

В какой‑то момент мне начали отдавать старые компьютеры на i3 и i5. И тут вместо неуспешного опыта с ESXi пришел Proxmox 5 версии. Первые tower-сервера (так их назвать, конечно, язык не повернется, но звучит же красиво) встали на «балкон». Новое лето уже исторически они переживали с горем пополам — под вентилятором и прикрывшись любыми подручными средствами.

Майнкрафт стал отходить на второй план, я начал разбираться в докере и завел первый swarm-кластер. В этот момент в ВУЗе мы решили сделать сайт, а я — опять подучиться чему‑то новому. Сворм жил, ежедневно на сайт заходило большое количество перво- и второкурсников, потому что мы публиковали там самописные лекции и семинары, а «поддержать автора» в совокупности со стипендией сработало: мы купили 19U стойку, которая должна была заменить эту ~~совсем не~~ пожароопасную деревянную.

От ноутбука до майнкрафт-хостинга или история длиной в 7 лет - 4
От ноутбука до майнкрафт-хостинга или история длиной в 7 лет - 5

В какой‑то момент МГТС начал менять всё оборудование на оптику, мы жили на их F660 роутере, а наш микротик — в его DMZ зоне. Но так как весь трафик проходил через него, это все равно являлось bottleneck'ом для нас. И на смену пришел преобразователь оптики на ethernet от ubiqiti.

Старый 100Mb микротик справа, слева - гигабит, сверху - ubiqiti. Оптика бывало рвалась, и приходилось вызывать инженеров МГТС для её починки. Вследствие в 2023 году мы полностью отказались от этого решения

Старый 100Mb микротик справа, слева - гигабит, сверху - ubiqiti. Оптика бывало рвалась, и приходилось вызывать инженеров МГТС для её починки. Вследствие в 2023 году мы полностью отказались от этого решения

Как помню, тогда было примерно 3 или 4 статьи на тему использования нештатного оборудования МГТС для нормальной работы через медь, но мои ночные поиски спустя 4 дня увенчались успехом: мы завели нормальный линк, и на микротике вместо серой сети появился белый статичный адрес от МГТСа.

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

Целых два будущих инженера следят за доступностью серверов!

Целых два будущих инженера следят за доступностью серверов!

Пандемия и хостинг — 2020

1 июня 2020 года мы запустили наш хостинг серверов майнкрафта. Тогда уже мы умели немного в k8s, а идея с docker swarm давно ушла в ящик «попробовали и забыли и слава богу»

Первая итерация сайта. Тут уже недоступен фон и красивая картинка сверху, увы.

Первая итерация сайта. Тут уже недоступен фон и красивая картинка сверху, увы.

Первый прототип сайта был запущен на php на нескольких подах. Это был серьезный монолит сайта и большой монолит панели, которая полностью отвечала за управление пользовательскими игровыми серверами в docker-контейнерах.

Сам хостинг (его ноды — сервера, на которых располагаются игровые майнкрафт-сервера) мы держали в mail.ru cloud solutions (cloud.vk.com), а весь продакшн — сайты и бэкенд — на «балконе». Это историческое название, кстати, мы до сих пор активно используем.

Сервера в MCS периодически ддосили школьники, а мы таким образом клали им гипервизоры, переполняя contrack-таблицу. Наши айпишники отправляли в blackhole, и мы приходили к школьникам с грустными историями о том, что на их сервера по старым адресам больше не получится зайти.

Настал переломный момент, когда количество клиентов перевалило определенную отметку, и мы начали выходить в ноль по прибыли — и поехали в hetzner и selectel. Историю переездов и технической части я расскажу в следующей статье L3 — уровень инфраструктуры, а сейчас мы продолжим разговор про стойку.

Стойка разрасталась, сервера обновлялись, и в какой‑то момент комната, в которой я раньше ютился со стойкой 19U, освободилась. В этот момент пришла гениальная идея: почему бы не потратить несколько сотен тысяч рублей и обновить всё вокруг? Так мы и получили домашний дата‑центр в Москве.

От ноутбука до 32U стойки

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

Балкон стал выглядеть иначе, а вместо коробки с горячим и холодным коридором получился кондиционер и изолированное помещение

Балкон стал выглядеть иначе, а вместо коробки с горячим и холодным коридором получился кондиционер и изолированное помещение

С 2017 года мы проделали огромный путь, и в 2023, спустя 6 лет, пришли к стойке стоимостью порядка миллиона рублей (понимаю, для enterprise-компаний это плевок, но это хобби...) и выделенному месту для нее. Наш Балкон превратился в имя с большой буквы, теперь это специальная комната с кондиционером, бесперебойниками, выделенной линией питания, выдерживающими 6 киловатт напряжения, которая не зависит от розеток и питания самой квартиры, и тремя независимыми интернет‑провайдерами.

Конечно, мы до сих пор не защищены от перебоев в электропитании на уровне дома и отключении сети на >1 час, но таких случаев за всё время существования Балкона можно было пересчитать по трем пальцам. Во всех остальных случаях мы могли только выйти из строя по одному из каналов. И в основном — на уровне провайдеров.

Максимальная мощность стойки на данный момент ограничена 6КВт, мы потребляем около 2.5 в пике по мощности. На 32 юнита у нас занято 10 серверов, 6 из которых — 4U сервера с серверными процессорами (разновидности эпиков и xeon'ов) и 4 одноюнитовых supermicro на ксеонах.

Еще не до конца заполненная стойка со старыми бесперебойниками и серверами

Еще не до конца заполненная стойка со старыми бесперебойниками и серверами

Мы смогли создать ceph‑кластер в этой стойке для бесшовной миграции виртуалок между машинами на случай отказа одного из гипервизоров, объединив их в 10Ge сеть, выделили отдельную подсеть под ipmi‑управление: если нужно что‑то оперативно поправить с любой точки мира, и настроили камеры видеонаблюдения на какие‑либо экстренные случаи. На балконе стали крутиться пользовательские ноды с майнкрафт-серверами, два куб‑кластера под продакшн и инфраструктурные сервисы и виртуалки под различные системы, которые мы не завозим в куб. Но об этом в следующий раз.

Все еще старая вариация стойки, но уже с supermicro серверами вместо i5

Все еще старая вариация стойки, но уже с supermicro серверами вместо i5

Смотря на всё это ретроспективно, сейчас я понимаю, что хобби из одного ноутбука выросло в настоящий проект. С одного человека — превратилось в команду, состоящую из 9 сотрудников, но мы, два основателя хостинга superhub, по‑прежнему называем всё это хобби. Мы также совершаем ошибки, падаем, теряем девятки по SLA, и работаем в свободное от основной работы время над тем, что так долго выращивали.

Наша идеология с 1 июня 2020 года заключалась и до сих пор остается неизменной — мы решили делать хостинг не для заработка, а для того опыта, который не сможем получить по каким‑либо причинам в другом месте. И к счастью или к сожалению, до сих пор ей и придерживаемся.

После осознания, какое месиво из проводов тут осталось, я всё переделал, и это стало выглядеть намного лучше. Наверное...

После осознания, какое месиво из проводов тут осталось, я всё переделал, и это стало выглядеть намного лучше. Наверное...

Заходите на наш сайт, оцените его, пожалуйста, и посоветуйте нам что‑нибудь интересное, если найдете. Нам будет очень приятно. https://superhub.host

1/3

Автор: Илья

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js