Операционные системы
Debian и Ubuntu LTS — предсказуемые релизы, понятный systemd, нормальные бэкапы пакетов. CentOS-наследников не плодим без нужды.
Стек
Не собираем Kubernetes на три контейнера. Берём то, что умеем чинить ночью и что не развалится после ухода «того единственного, кто это поднимал».
Debian и Ubuntu LTS — предсказуемые релизы, понятный systemd, нормальные бэкапы пакетов. CentOS-наследников не плодим без нужды.
nginx как фасад: TLS, gzip, лимиты, раздача статики, FastCGI. PHP-FPM, когда это PHP. Reverse proxy к внутренним панелям — только на loopback.
WireGuard вместо зоопарка проприетарных VPN. DNS и TLS на своих именах. SSH — ключи, без пароля на root из интернета.
От Uptime Kuma на старте до Prometheus + Grafana, когда метрик больше, чем «пинг жив». Журналы — journald с лимитом, не диск на 100% из-за брутфорса.
restic и Borg: дедупликация, шифрование, политики хранения. Копия обязана жить на другом узле. Restore-тест — часть договора, не «как-нибудь потом».
Fail2ban, ключи, минимальный набор открытых портов, автоматические патчи безопасности. Не подменяем этим полноценный pentest — честно говорим, где заканчивается наш контур.
Ansible для повторяемых узлов, git для манифестов, никаких «поправил руками на проде и забыл». Для одного сервера не тащим платформу оркестрации.
Работаем с тем ЦОД, который уже выбран: Selectel, Timeweb, Hetzner, Yandex Cloud, частный OpenStack. Не привязываем заказчика к «нашему облаку».
Технология должна переживать отпуск одного инженера. Если её нельзя объяснить на одной странице runbook — она слишком дорогая для контура из пяти машин.
Service mesh «на вырост», пять кластеров k8s, уникальные панели без бэкапа конфига. Если стек уже есть и он живой — не переписываем ради вкуса.