Лучшие магистерские диссертации выпускников «Программного обеспечения высоконагруженных систем»
В этом году корпоративную онлайн-магистратуру «Яндекса» «Программное обеспечение высоконагруженных систем» успешно завершили 26 специалистов. Они уже трудятся в разных сервисах «Яндекса», «Авито», «Т-банке» и других ведущих ИТ-компаниях, многие из них защищали дипломы на основе реальных проектов для своих работодателей. Мы попросили выпускников, чьи магистерские диссертации были признаны лучшими, коротко о них рассказать.
  • Артем Фадеев
Разработка MVP-механизма автоматизированной миграции бакетов между S3 кластерами на платформе STaaS
Работа автоматизирует перенос бакетов между S3-кластерами прозрачно для клиента и без простоя. На время миграции перед бакетом встает самописный S3-прокси: он разводит запросы по типу операции (запись — в новый, чтение — с фоллбеком на старый), пока фоновый мигратор копирует объекты, а распределенные блокировки на объект исключают гонки записи и копирования.

В отличие от утилит вроде rclone, решение не требует остановки записи, не теряет данные и работает поверх любого S3-совместимого хранилища. Оно применимо везде, где эксплуатируют несколько S3-кластеров: при их разбиении, смене провайдера и выводе старого железа. В проде Авито (где я работаю) им уже мигрированы ~1000 бакетов и петабайты данных.
  • Эдуард Зарипов
Оркестратор рекомендательных систем
Я разработал оркестратор рекомендательных систем реального времени для Т-Банка. В моем решении новый домен запускается декларативным описанием DAG-пайплайна из переиспользуемых этапов — сбора кандидатов, получения признаков и инференса модели со встроенным A/B-тестированием. Признаки задаются формулами с горячей перезагрузкой без рестарта сервиса. Инференс поддерживает как внешний model server, так и локальный in-process режим через ONNX Runtime, CatBoost и LightGBM.

Решение не привязано к конкретному ML-стеку и избавляет продуктовые команды от повторной разработки одной и той же инфраструктуры под каждый домен, существенно снижая трудоемкость запуска. На оркестраторе уже работает 15 доменов рекомендаций. Нагрузка на самом высоконагруженном пайплайне достигает 30 000 запросов в секунду при задержке ответа 60 мс.
  • Алексей Лимонов
Реализация оптимального Attention-механизма
Я адаптировал алгоритм из статьи FlashAttention-2 (Tri Dao, 2023) для кроссплатформенных GPU API, в частности Vulkan и OpenCL, и реализовал его в фреймворке для инференса MNN от Alibaba. Чтобы решить проблему частых и неэффективных обращений к HBM на GPU, этот механизм вместо последовательного исполнения реализует фьюзинг кернелов, переводя рассчеты в SRAM.

Мое решение позволяет получить прирост в скорости рассчета трансформерных моделей и потреблять меньше памяти на видеокартах не от NVIDIA (например, при использовании софта на OpenCL или Vulkan: ПО для фотограмметри, инференс на мобильных устройствах и т. д.)
  • Артур Берсенев
Библиотека для прайсинга опционов (backprop/diffprog)
Библиотека позволяет оценивать справедливую стоимость опционов и параметры ее чувствительности. Подобная функциональность очень нужна при хэджировании, реализации стратегий риск-менеджмента. Разработанное решение дает калибруемые примитивы для работы с рыночными котировками (кривая доходности, поверхность волатильности SABR+Flat Forward), API для работы с датами (арифметика, учет праздников в разных юрисдикциях), вычисления NPV и греков с помощью Forward Mode Differential Programming. Библиотека обходит по скорости решения, основанные на разностных схемах и back-propagation, сохраняя точность вычислений. Код выложен в открытый доступ.
  • Эдгар Оганисян
Архитектурные оптимизации высоконагруженной low-code платформы для обработки событий в реальном времени
В работе я исследовал, как повысить пропускную способность high-load платформы для триггерных коммуникаций. Для части коротких идемпотентных сценариев Temporal оказался избыточен, поэтому я спроектировал MVP версию FlowLite. Это облегченный workflow-движок, который вместо детерминированного replay использует модель at-least-once и идемпотентность, хранит состояние запуска в одной строке PostgreSQL и строит очередь задач поверх FOR UPDATE SKIP LOCKED.

Главное преимущество моего решения — экономия ресурсов: меньше записей в хранилище, ниже compute и storage нагрузка, проще эксплуатация без отдельной инфраструктуры. Такой подход применим в системах массовых уведомлений, маркетинговых триггеров и других real-time платформах с короткими и безопасно повторяемыми сценариями.
  • Даниил Федоров
Реализация универсального сборщика данных для наблюдений в режиме реального времени
Я оптимизировал сборщик данных для сервиса Anomaly Analyzer — он регулярно выполняет запросы к разнородным источникам. Асинхронный цикл на файберах cats-effect, гибкие ограничитения по параллелизму и RPS на уровне источника и приоритизация запросов позволили добиться повышения RB-SLI с 97.12% до 99.96%, что критично для мониторинга инфраструктуры в реальном времени. Механизм дробления запроса позволил работать с тяжелыми запросами бизнес-аналитики.

Результаты уже внедрены на платформе Sage Observability в Т-Банке и в других ее клиентах, а также могут быть использованы в любых системах наблюдаемости, где требуется надежный постоянный мониторинг и простота подключения новых источников данных.
  • Мурашко Артем
Проектирование и реализация S3 Inventory для сбора и выгрузки метаданных объектов распределенного хранилища
Я спроектировал и реализовал S3 Inventory в Yandex Object Storage — функциональность, позволяющую формировать CSV-отчеты с метаданными объектов бакета по расписанию. Настройка выгрузки позволяет выбрать префикс, набор полей и указать, какие версии включить — актуальные или все. Обработка построена на конечном автомате: метаданные читаются из шардированной PostgreSQL группами чанков в транзакциях и передаются потоком в S3.

Преимущество моего решения в том, что клиентам не требуется собственная инфраструктура, это дешевле, чем обход бакета через ListObjects. Обработка идет в фоне: сервис контролирует нагрузку на хранилище, она остается предсказуемой. На больших бакетах результат в 14−50 раз быстрее синхронного листинга, до 17 полей метаданных. Функциональность доступна клиентам Yandex Cloud.