2 min read

Эшелон 370 для вашего кода: Почему мой стек — это FreeBSD 15 и ARM на Hetzner

Когда ты сидишь в левом кресле Boeing 737, пролетая над ночным Дубаем, ты ценишь две вещи: предсказуемостьи избыточность. В авиации нет места «авось». Каждая система должна работать штатно, а если она отказывает — протокол переключения должен быть мгновенным.

Когда я возвращаюсь домой в Киев или отдыхаю на Пхукете, я переношу эту философию в свой код. Мой выбор для пет-проектов и торговых скриптов может показаться консервативным, но для меня это — «Checklist Complete».

Почему FreeBSD 15?

Многие спросят: «Почему не вездесущий Linux?». Ответ прост — архитектура.

FreeBSD — это не дистрибутив, это цельная операционная система. В авиации мы называем это интегрированной модульностью. Я точно знаю, где лежат конфиги, как работает сетевой стек и почему UFS на NVMe в 2026 году — это лучший выбор для легковесного сервера.

В FreeBSD 15 поддержка ARM64 (Tier-1) доведена до идеала. Устанавливая её на инстанс Hetzner CAX11, я получаю систему, которая потребляет всего 150 МБ оперативной памяти. В мире, где Docker-контейнеры «съедают» гигабайты еще до старта приложения, это кажется магией. Но это просто инженерный расчет.

Стек «Три семерки»: Go, HTMX, Tailwind

Мой инструментарий отражает мой стиль полета — минимум визуального шума, максимум функциональности.

  • Golang: Это мой второй пилот. Он быстрый, строгий и компилируется в один бинарник. Мне не нужны интерпретаторы или зависимости на сервере. Скомпилировал под ARM64, закинул на сервер — и он работает.
  • HTMX: Я устал от тяжелых JS-фреймворков, которые обновляются чаще, чем я прохожу тренажер (SIM). HTMX возвращает нас к истокам: сервер отдает HTML. Это быстро, это надежно, это легко отлаживать.
  • Tailwind CSS: Это как приборная панель Modern Glass Cockpit. Всё на своих местах, никакой лишней стилизации, только чистая функциональность и скорость разработки.

Перелет на ARM: Hetzner CAX11

Переход на процессоры Ampere Altra в облаке — это как переход с классических двигателей на новые LEAP-1B. Тише, холоднее и гораздо эффективнее. За 4 евро в месяц я получаю 4 ГБ оперативной памяти. Для связки Caddy + Go этого объема хватит, чтобы обслуживать трафик небольшого аэропорта.

Использование UFS вместо ZFS на таких маленьких узлах — мой осознанный выбор. Зачем мне тратить драгоценную память на кэш файловой системы, если я могу отдать её под кэш котировок с Interactive Brokers?

Checklist для разработчика

Если вы хотите собрать систему, которая не «свалится в штопор» под нагрузкой, мой совет:

  1. Упрощайте. Чем меньше слоев между железом и кодом, тем лучше.
  2. Оптимизируйте. Включите TCP BBR, настройте noatime на дисках, уберите лишние демоны.
  3. Автоматизируйте. Caddy сам разберется с SSL, пока вы отдыхаете на пляже.

Программирование, как и полет — это управление энергией и информацией. И на FreeBSD 15 я чувствую, что полностью контролирую свой штурвал.