Александр Бруяко
Руководитель отдела разработки, Wildberries

Как мы раздам рекламные банеры на Go

1. Введение  
    – Роль сервиса баннеров в экосистеме Wildberries (ключевой инструмент для товарооборота и рекламы).  
    – Основные функции: управление, отображение, контроль и аналитика.  
    – Проблемы прежней архитектуры и мотивация к упрощению и повышению надёжности.
2. Текущая нагрузка  
    – Масштабы показов (десятки миллионов пользователей, высокий RPS).  
    – Инфраструктура: три дата-центра, балансировка, отказоустойчивость.  
    – Особенности трафика: скачкообразные пики, подготовка к распродажам.
3. Архитектурная философия  
    – Принцип «макро-просто — микро-сложно»: простая верхнеуровневая структура, сложность внутри.  
    – «Философия Unix»: каждый компонент выполняет одну функцию.  
    – Обработка запросов через фильтры и минимальную «умность» баннера.
4. Эволюция таргетинга  
    – От простого таргетинга по полу и возрасту к оптимизации ресурсов.  
    – Проблемы с ростом памяти и CPU, переход к битовым картам.  
    – Существенное снижение задержек и ресурсов при сохранении точности.
5. Оптимизация Go-приложения
    – Сжатие ответов (gzip), оптимизация map-ключей, работа с указателями.  
    – Использование профилирования (pprof) для поиска «горячих точек».  
    – Результаты: ускорение поиска, снижение памяти и CPU.
6. Выводы и уроки