Внедрение rate limiting на уровне сети с использованием eBPF и Go

Внедрение rate limiting на уровне сети с использованием eBPF и Go

Почему ваш ограничитель скорости в пользовательском пространстве, вероятно, плачет Если вы когда-либо пытались реализовать ограничение скорости в пользовательском пространстве, то знаете это чувство. Пакеты поступают на сетевой интерфейс, проходят через несколько уровней ядра, обрабатываются системными вызовами, и к тому времени, когда ваша тщательно продуманная логика ограничения скорости получает возможность их проверить, вы уже проиграли битву за производительность. Это как пытаться остановить цунами садовым шлангом, катаясь на роликах. eBPF (расширенный Berkeley Packet Filter) меняет всё уравнение....

12 января 2026 14:01 · 5 минут · 986 слов · Maxim Zhirnov
Построение системы A/B тестирования в Go: от нуля до готовых к производству экспериментов

Построение системы A/B тестирования в Go: от нуля до готовых к производству экспериментов

Создание системы A/B-тестирования в Go: практическое руководство по разумному экспериментированию Итак, вы хотите запустить A/B-тесты в Go. Хорошая новость: это не ракетостроение. Плохая новость: это также не так просто, как перевернуть выключатель. Но вот в чём дело — как только вы настроите систему, у вас появятся сверхспособности проверять свои идеи реальными данными, а не интуицией. И вот тогда всё становится интересно. В этой статье мы построим полную систему A/B-тестирования с нуля....

7 января 2026 14:00 · 4 минуты · 820 слов · Maxim Zhirnov
Построение распределенной системы блокировки в Go с ZooKeeper: от теории к производству

Построение распределенной системы блокировки в Go с ZooKeeper: от теории к производству

Дилемма блокировки: когда sync.Mutex уже недостаточно Вы знаете это чувство, когда осознаёте, что ваш драгоценный мьютекс в процессе уже не справляется? Да, мы все бывали в такой ситуации. Ваши предположения об однопотоковом выполнении работали нормально, пока ваша система не решила вырасти и стать распределённой. Вдруг у вас появляется несколько сервисов, работающих на разных машинах, все пытаются получить доступ к одному и тому же ресурсу, а ваш sync.Mutex сидит и выглядит растерянным — потому что он блокирует только внутри одного процесса....

5 января 2026 14:00 · 5 минут · 988 слов · Maxim Zhirnov
Кэширование Redis в Go: от нуля до готовой к производству реализации

Кэширование Redis в Go: от нуля до готовой к производству реализации

Если ваше приложение на Go тормозит под нагрузкой, постоянно атакуя базу данных, как разработчик в 3 часа ночи, отлаживающий производственную версию, то вы попали по адресу. Кэширование Redis — это не просто оптимизация производительности, это разница между сервисом, который масштабируется изящно, и тем, который рушится под собственной тяжестью. В этом подробном руководстве я расскажу вам всё, что нужно знать об интеграции Redis в ваши приложения на Go, от базовой настройки до готовых к использованию в производственной среде паттернов....

30 декабря 2025 14:00 · 5 минут · 993 слова · Maxim Zhirnov
Почему ваш любимый язык программирования отстой (И почему это нормально)

Почему ваш любимый язык программирования отстой (И почему это нормально)

Позвольте мне быть откровенным с вами: ваш любимый язык программирования ужасен. Как и мой. Как и у всех остальных. И знаете что? Это совершенно нормально. Мы живём в эпоху, когда разработчики относятся к языкам программирования так же, как спортивные фанаты относятся к своим командам. «Python — для учёных данных», — заявляет кто-то. «JavaScript портит мозг», — бурчит программист на C++. «Go — будущее», — настаивает инженер DevOps. Тем временем все эти языки просто выполняют свою работу, не подозревая, что у каждого из них есть преданные сторонники и критики....

20 декабря 2025 06:00 · 6 минут · 1147 слов · Maxim Zhirnov