Информация о моём сервере
До появления своего сервера свой сайт я держал на хостинге reg.ru. Для обучения и экспериментов исопльзовал либо виртуальные машины, либо недорогие ВМ у провайдеров yandex cloud и (sber)cloud.ru.
Но с ростом компетенций, а также переходом на позицию DevOps-инженера стало тяжело экспериментировать с K8s на виртуальных машинах. А арендовать ВМ и другие сервисы у облачных провайдеров - дорого.
Это и стало толчком для сборки домашнего сервера-лаборатории.
Сервер
Собирал свой сервер я из "китайских" компонентов и из того, что было под рукой.
Основную часть заказал на OZON: плата, ОЗУ, CPU, куллер. Что-то в магазине в своем городе, а что-то нашел в пыльных коробках. Вот его основные комплектующие:
- Intel Xeon E5-2697
- Huananjhi X99 QD-4
- 32Gb RAM DDR4
- M2 HP 256Gb (для ОС)
- SSD Kingston 800Gb (для ВМ)
- HDD WD 1Tb (файлопомойка)
- БП: какой-то на 500Вт
Этого достаточно для поддержки своих стендов и сервисов, а также для экспериментов и обучения. Но в планах увеличить объем ОЗУ до 64Гб.
ПО и его выбор
Свой выбор я остановил на ubuntu 22.04 LTS. Это была третья ОС на которой я остановил свой выбор
Конечно, сначала я хотел поставить Proxmox. Но не получилось завести сетевую карту. Почему-то не проходил uplink, да и сам интерфейс отображался криво.
После каждой новой перезагрузки я получал новый интерфейс. Драйверов на эту материнскую плату я не нашел. Ни на странице производителя, ни у продавцов (на aliexpress тоже смотред :) ).
В общем, первый эксперимент не удался и я решил развернуть Windows Server 2016. Выбрал я его намерено, так как хотел из коробки получить и гипервизор, и файловый сервер, и веб-сервер. Еще и
Active Directory в придачу. Пару дней все было замечательно. Я настраивал сервер, поднимал ВМ. В общем радовался приобритению. Но мое счастье было не долгим. В один момент диски начали грузится
под 100%, система перестала отвечать даже после перезагрузки. И было принято решение, которое я эксплуатирую, установить Ubuntu.
С Ubuntu не возникло никаких проблем. Все встало с первого раза. А для своих целей (в первую очередь виртуализации) я установил связку libvirt + cockpit. Эта связка меня полностью устраивает и за все время использования не возникло никаких танцев с бубном.
Сайт
Изначально мой сайт был написан на React и представлял собой просто набор HTML-CSS-JS файлов, которые я закидывл на FTP своего хостинга. Этот вариант работал, там также можно было найти информацию обо мне. Но не было статей. По сути, сайт представлял из себя статику, которая рендерилась на клиенте. И этот вариант был очень плох для SEO.
И как только у меня появился сервер, я принял решение его переписать. В качестве языка программирования я остановился на C#. Выбор основывался на том, что свой путь в IT я начинал именно с этого языка. Да и с его экосистемой я знаком. То что вы сейчас читаете, написано на:
- C# .NET 9
- EF Core
- ASP.NET Core MVC
А в качестве СУБД для хранения статей, изображений и других файлов я использую Postgres15 и Minio.