Блог инженера

History is written by its contributors

Go Runtime: как GC влияет на P99 latency в высоконагруженных API

2025-12-27 время чтения 10 мин Go Performance

У вас отличный API с медианной задержкой 5ms, но P99 внезапно подскакивает до 500ms? Клиенты жалуются на периодические зависания? Добро пожаловать в мир Go Garbage Collector и его влияния на tail latency.

В этой статье разберем реальную проблему: как 10ms GC пауза превращается в 500ms задержку для пользователей, и что делать, чтобы держать P99 latency под контролем.

Читать далее

Graceful Shutdown в Go: корректная остановка сервиса под нагрузкой

2025-12-23 время чтения 14 мин Go Production

В production окружении, особенно в Kubernetes, сервисы постоянно останавливаются и запускаются: деплой новых версий, масштабирование, переключение нод. Некорректная остановка приводит к потерянным запросам, неотправленным данным и рассинхронизированному состоянию.

Graceful shutdown - это не просто обработка SIGTERM. Это комплексная стратегия завершения работы, которая гарантирует:

  • Завершение обработки активных запросов
  • Корректное закрытие соединений с БД и кэшами
  • Сохранение промежуточных результатов
  • Отправку всех метрик и логов

Давайте разберем, как реализовать это правильно.

Читать далее

Quantum Computing Basics: кубиты и суперпозиция на Go

2025-10-20 время чтения 7 мин Quantum-Computing Golang Math Ilya Brin

Привет, бро! 👋

Пока все говорят про AI, настоящие гики уже изучают квантовые вычисления. Это не фантастика - это математика будущего, которая сломает всю современную криптографию.

Google заявил о квантовом превосходстве, IBM запустил облачные квантовые компьютеры, а Microsoft инвестирует миллиарды в квантовые технологии.

Но как это работает? И можно ли симулировать квантовые вычисления на Go?

Разбираем кубиты, суперпозицию и квантовые гейты с практическими примерами на Go 🚀

Читать далее

GitHub Actions: продвинутые workflows для Go проектов

2025-10-11 время чтения 5 мин Devops Golang Ci-Cd Ilya Brin

Привет, бро! 👋

Ты всё ещё вручную запускаешь тесты перед каждым коммитом? Деплоишь в продакшн через SSH и молишься, чтобы ничего не сломалось?

GitHub Actions превращает репозиторий в автоматизированную машину: тесты, линтеры, сборка, деплой - всё без твоего участия.

Но большинство используют только базовые возможности. А ведь можно настроить матричные тесты, кеширование зависимостей, условные деплои и даже автоматические релизы.

Разбираем продвинутые паттерны GitHub Actions для Go проектов 🚀

Читать далее

mTLS в микросервисах: взаимная аутентификация

2025-10-03 время чтения 6 мин Security Ilya Brin

В обычном HTTPS только сервер доказывает свою подлинность сертификатом. Клиент остаётся анонимным. Но в микросервисах, где сервисы общаются друг с другом, нужно взаимное доверие. Для этого используется mTLS (mutual TLS).

Читать далее

Command Pattern в Go: инкапсуляция запросов в объекты

2025-09-29 время чтения 8 мин Patterns Ilya Brin

Command Pattern превращает запросы в объекты. Вместо прямого вызова метода вы создаёте объект-команду, который инкапсулирует всю информацию о действии: что делать, с какими параметрами, на каком объекте.

Это как заказ в ресторане: официант не готовит еду сам, он записывает заказ на бумажке и передаёт на кухню. Бумажка - это команда. Её можно отложить, отменить, повторить или передать другому повару.

Читать далее

Управление временем в глобальных сервисах: PostgreSQL + Go

2025-09-24 время чтения 10 мин Разработка Ilya Brin

Ваш сервис работает глобально. Пользователи в Токио видят одну дату, в Лондоне - другую. Запланированные задачи срабатывают не вовремя. Отчёты показывают несогласованные данные.

Вот как правильно обрабатывать время в распределённых системах.

Читать далее
Старые записи