devnotes заметки о разработке

Заметки о разработке

Пишу о том, что проверено на практике: сборка, деплой, наблюдаемость, базы данных и немного о ревью кода.

Связаться

Направления

Сборка и зависимости

Кэш, воспроизводимость, версии. Что реально экономит время.

Деплой

Атомарные выкладки, откаты, health-чеки и миграции без простоя.

Наблюдаемость

Логи, метрики, алерты: как не утонуть в шуме.

Базы данных

Индексы, миграции, бэкапы и проверка восстановления.

Про этот сайт

Статический сайт без трекеров и внешних шрифтов: одна таблица стилей, никаких CDN. Так страница открывается быстро и предсказуемо, а в логах не остаётся лишнего шума.

Записи

Ускорили сборку в 3 раза без магии

Разобрали профиль сборки: 70 % времени уходило на повторную установку зависимостей и лишний линт на каждом коммите. Вынесли кэш пакетов, распараллелили линт и тесты по пакетам, убрали полный прогон на каждый пуш. Итог: 11 минут → 3 минуты 40 секунд.

  • кэш зависимостей по lock-файлу
  • линт только по изменённым файлам
  • тесты: 4 шарда по модулям

Базовая защита веб-сервера: 8 строк, которые дают больше всего

Не про «магические заголовки», а про лимиты и логи: ограничение частоты по IP, отключение сканерских путей, отдельный формат лога для fail2ban и запрет листинга каталогов. Разобрали, почему 444 лучше 403 для ботов и почему лог должен быть JSON.

  • limit_req по IP
  • JSON-лог и джейлы
  • отключение листинга

Проверка восстановления из бэкапа как регулярная практика

Бэкап без проверки — это надежда, а не резерв. Раз в месяц поднимаем архив в отдельный контейнер, прогоняем контрольные запросы и сверяем количество строк. Занимает 20 минут и пару раз спасало от неприятного разговора.

  • sqlite3 .backup вместо копирования файла
  • контрольные суммы
  • журнал восстановлений