Сегодня, в эпоху облачных провайдеров и SaaS, управлять сервером самостоятельно — крайне нишевое занятие. Для этого нужно очень хорошо разбираться в Linux и его многочисленных системных компонентах, которые, к тому же, постоянно обновляются и меняются, из-за чего знания и опыт быстро устаревают. Я много лет пользуюсь Linux, но и то не знаю всех тонкостей, постоянно учусь. Сама система принципиально несложная и понятная, но в ней постоянно появляется что-то новое, какие-то дополнительные слои абстракции. Linux многолик, его можно использовать в самых разных контекстах — отсюда и сложность. Ну и, конечно, знать систему на уровне десктопа — это одно, а админить по SSH — слегка другое.

Не хочу никого пугать надуманными страшилками: в сервере нет ничего мистического, чаще всего это обычный Ubuntu, где все точно такое же, как и в десктопных версиях (только нет собственно десктопа). Умеешь пользоваться терминалом, можешь научиться и сервером управлять. Но сервер — это более специфическая среда, тут у вас не просто рут и «хомяк». Надо серьезно заботиться о правах доступа и постоянно думать о том, не под угрозой ли безопасность. На десктопе угрозы чаще всего условные — ваш комп никто извне не станет ломать, никому вы не нужны. А вот сервер попытаются запросто. Любой мало-мальски посещаемый сайт постоянно осаждают боты в попытках взломать или заспамить. Поэтому головным мозгом думать надо постоянно, взвешивая каждый свой шаг. chmod тут не для галочки.

Хорошая новость — Linux стабилен. Ядро падает крайне редко, я за всю жизнь ни разу не видел, чтобы система падала из-за проблемы именно в ядре. На десктопе все крахи из-за неправильно настроенных приложений. Чаще всего падает графическая подсистема (раньше это были «иксы» — X11, сейчас еще и Wayland), либо чудят драйверы. На сервере графики нет, и внешние устройства не подключаются, так что единожды запущенная система будет работать, пока какая-нибудь авария не случится. А сломать Linux нечаянно в процессе каких-то настроек — это надо иметь особую степень криворукости. Зато вот ломающиеся серверные приложения — это суровые будни админа! Софт под Linux встречается самого разного качества — Open Source же. Все всегда запускается на свой страх и риск. Можно очень легко попортить любые данные, если они не защищены от записи. Поэтому бэкапы надо делать регулярно. Никогда нельзя запускать никакие команды или скрипты, если не понимаешь, что они делают. На сервере все проблемы от бездумных действий. Если на десктопе обычно работаешь под непривилегированным пользователем, а sudo для административных действий — это исключение, то на сервере все наоборот: root — норма, работа под другими пользователями — исключение. Но постоянно приходится помнить: настраиваешь что-то из-под рута — готовься к ошибкам типа «permission denied». Создал из-под рута какой-нибудь файлик, забыл выставить нужные права — все, будешь полдня искать причину полома.

Скажу честно: я не большой фанат Docker, я предпочитаю все ставить самостоятельно прямо в систему. Докером пользуюсь только в тех случаях, когда надо что-то совсем уж экстраординарное и навороченное, в чем лень разбираться. Например, у меня в контейнере запущен Nextcloud. Да, лень — это вообще-то не самая уважительная причина в данном контексте, но и я не профессиональный админ, а просто юзер, которого жизнь заставила админить. Поэтому я и не адепт всей этой контейнерной религии — да и вообще не сторонник каких-либо определенных DevOps-практик. Мне кажется, чем проще, тем лучше. Если Docker упрощает жизнь — то хорошо, берем на вооружение, а если с ним все становится сложнее, то ну его.

Проще всего поставить классический комплект из веб-сервера, PHP и MySQL (или MariaDB). Справится абсолютный новичок. Даже сертификаты сегодня уже не обязательно самому ставить — Caddy делает это за вас. Нужно только немного понимать, как работает стек TCP/IP (впрочем, если вам только обычные сайты писать, то и полноценный сервер не нужен, достаточно shared-хостинга).

Наверное, у всех, кто что-то разрабатывал под веб, был период, когда хочется написать свою серверную программу. Так вот, это ровно до того момента, когда вы действительно сможете запустить ее на реальном сервере. Только тогда начинаешь понимать, что к чему в плане безопасности. Энтузиазм велосипедить отпадает, вырабатывается склонность ставить чужое, но надежное. Взять тот же WordPress — да, система неидеальная. Да, то и дело что-то там отваливается после обновлений. Да, плагины быстро устаревают. Но WP все равно лучше, чем самописный движок. Свое писать стоит, только если совсем уж нет никакого выхода, если у вас задача какая-то узкоспециализированная. Например, сложный CI/CD или игровой сервер.

Админство — совсем не творческое занятие, а жутко рутинное. Это постоянная правка всевозможных конфигов и написание скриптов, установка пакетов, управление Systemd, копание в логах, мониторинг портов и, конечно, лихорадочные поиски документации в Интернете. Запустили сервис, потестили, увидели проблему, остановили, фиксим. Потом еще раз, и еще, и еще… Главное, что я понял — лучше вообще не вкатываться во все это без особой насущной необходимости. Обычному человеку должно хватать бесплатных сервисов, предоставляемых корпорациями. Вот когда уже не хватает, и «хочется странного» — другое дело.

Например, мой путь в администрирование начался, когда понадобился личный/семейный VPN. Думал этим и ограничиться, но затем понеслось. Сервер — это мир больших соблазнов. Поставил одно, тут же хочется попробовать другое, ведь почти всем популярным сервисам есть self-hosted аналоги: можно поднять личные аналоги GitHub, Google Workspace, Spotify и бог знает чего еще. Настраивать и дорабатывать напильником все это можно бесконечно — есть маньяки, которые именно этим большую часть свободного времени и занимаются) Для меня идеал — один раз настроил и забыл, но, к сожалению, так получается далеко не всегда.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *