Почему я отказался от Windows на сервере и перешёл на Linux
Как я дошёл до жизни такой
На заре моего админства у меня на сервере стоял Windows Server 2019. Я думал: «Ну GUI, всё понятно, RDP захожу, кнопочки тыкаю». Но чем больше я работал, тем сильнее меня бесил Windows на сервере.
Всё началось с обновлений. Выходит патч от Microsoft — сервер просит перезагрузку. Я работаю, люди на сайте, а мне говорят «перезагрузись». Ладно, перезагружаюсь — 20 минут ребут, потому что «Configuring updates, do not turn off your computer». В это время сайт лежит.
Потом лицензии. Windows Server стоит денег. А если нужно больше 2 ВМ — ещё CAL-лицензии докупать. Я посчитал, сколько я отдал Microsoft за три года — и мне поплохело.
Решил попробовать Ubuntu Server. Поставил на тестовую ВМ, поковырялся неделю. Первые два дня было непривычно — нет GUI, всё через консоль. Но потом я понял прелесть: ни одного ребута за полгода.
Что мне дал переезд
Никаких перезагрузок. Пакеты обновляются без ребута, ядро обновляется с livepatch. Сервер работает месяцами без перезагрузки. У меня сейчас uptime 47 дней, и это я сам перезагружал, когда розетку чинил.
Производительность. На тех же ресурсах Linux тащит больше. Windows Server жрёт около 2-3 GB RAM на себя, Ubuntu — 300-500 MB. Эти 2 GB я отдал базам данных и контейнерам.
Docker из коробки. На Windows Server Docker работает через Hyper-V прослойку — тормозит. На Linux — нативный, летает.
Автоматизация. Всё через скрипты: bash, ansible, docker-compose. Не надо тыкать в GUI. Написал один раз — забыл.
Конкретный пример — PowerShell vs Bash
На Windows Server я писал PowerShell скрипты для автоматизации. Кривой синтаксис, командлеты с огромными названиями, и всё тормозит при запуске. Когда перешёл на Linux, Bash показался раем. Просто `apt update && apt upgrade -y` — и система обновлена. Никаких Install-WindowsFeature, Get-Service, Restart-Computer.
Помню, как настраивал IIS вместо nginx. Веб-сервер от Microsoft — это боль. GUI медленный, настройка через GUI негибкая, а через CLI — PowerShell с километровыми командами. nginx на Linux настраивается одним конфигом в 20 строк. И работает быстрее.
Как я переезжал
Я не делал cut-over в один день. Поставил Ubuntu на Hyper-V (ещё на Windows хосте), перенёс по одному сервису: сначала тестовый сайт, потом базу данных, потом основной сайт, потом почту. Переезд занял две недели. Каждый день по паре часов.
Самое сложное было перенести IIS конфиги и базы данных. С IIS скопировал конфиги руками — там xml, который я переписал под nginx. С БД — дамп через mysqldump, залил на новый сервер. Легко.
Неожиданные плюсы
Документация. У Linux она бесплатная и качественная. DigitalOcean tutorials, Arch Wiki, Ubuntu docs — всё работает. Для Windows Server документация есть, но половина ссылок ведёт на платные курсы Microsoft.
Сообщество. На форумах Linux тебе помогут бесплатно. На форумах Windows тебе скажут «купи техподдержку Microsoft». Разница чувствуется.
Безопасность. На Windows Server я регулярно чистил lastpass от попыток взлома. На Linux за два года — ни одного успешного взлома. Fail2ban блокирует брутфорс, SSH отключен по паролю, всё обновляется автоматически.
Итог через два года
Сейчас у меня на Linux работают: nginx, PHP-FPM, MySQL, PostgreSQL, Docker, n8n, Home Assistant, Gitea, Mosquitto, Zigbee2MQTT. Всё на одном сервере с 8 GB RAM. На Windows Server я бы еле 4 сервиса запустил.
Windows — отличная десктопная ОС. Но на сервере ей не место. Если вы до сих пор на Windows Server — попробуйте Ubuntu хотя бы на тестовой ВМ. Через месяц вы удивитесь, как жили раньше.
Что я потерял
Active Directory. Если у вас сеть на Windows и AD, переезжать на Linux больно. Пришлось поднимать Samba DC и OpenLDAP — работает, но настройка не для слабонервных.
Exchange. Для почты я перешёл на iRedMail на Ubuntu — работает отлично, но интерфейс Roundcube уныл по сравнению с Outlook Web App.
Remote Desktop. Вместо RDP я использую SSH + Mosh. Для файлов — rsync и scp. Если очень нужен GUI — X2Go.
Совет
Если ваш сервер только для сайтов, баз и контейнеров — Linux будет в разы легче, дешевле и стабильнее. Windows оставьте для десктопа и специфического софта, который без него не работает.
Я переехал 2 года назад и ни разу не пожалел. Если боитесь — поставьте Ubuntu на тестовую ВМ и поиграйтесь месяц. Через месяц вы не захотите возвращаться.