Персонализация за 10 миллисекунд, или Как tinkoff.ru подстраивается под вас Архитектуры, масштабируемость

Доклад принят в программу конференции
Владимир Посвянский
Tinkoff

Руководитель группы развития продуктовых платформ в Tinkoff.
Занимается развитием продуктовых платформ:
- Истории
- Персональная лента
- Поиск

Иван Вовк
Tinkoff.ru

Бэкенд-разработчик, системный программист, занимается разработкой железа в свободное время.
Последние 2 года занимается разработками различных высоконагруженных систем в команде привлечения в Tinkoff.ru.

Тезисы

Tinkoff.ru - самый большой в России online-банк.
Интернет является для нас основным каналом привлечения. Для повышения эффективности этого канала мы постоянно оптимизируем наши страницы. Раньше мы это делали с помощью классических A/B-тестов. В какой-то момент мы осознали, что, используя классический подход, мы уперлись в потолок и для дальнейшего роста нам нужно делать ставку на персонализацию страниц под отдельных пользователей с использованием алгоритмов машинного обучения.

Наш доклад будет разделен на 2 части.
В первой части зритель познакомится с продуктовой составляющей и узнает, почему мы решили делать свою собственную систему персонализации, а не воспользовались готовыми решениями. Мы расскажем про то, какие требования выдвигали к системе, как делали первый прототип и как в конечном счете сделали продукт, которым можно пользоваться. В частности, расскажем историю про то, почему UI должен отталкиваться от бизнес-требований, а не повторять технические детали реализации движка.

Далее мы перейдем к техническому описанию движка нашего решения в общем и его эволюции в частности.
Затронем все те проблемы с которыми сталкивался каждый разработчик энтерпрайз-продуктов - бесконечное легаси и спагетти-код. Расскажем, как от нас ушел программист, просто устав "ковыряться в этом". Здесь мы осознали необходимость перемен. Для этого мы описали архитектуру текущего решения. Дальше, пользуясь простыми принципами поддерживаемости и модульности, мы составили план ее эволюции так, чтобы получить в итоге "конфетку", которая будет радовать не только разработчиков, но и менеджеров.

Из рассказа вы узнаете:
- что такое суперскалярная архитектура и чему стоит поучиться у производителей CPU;
- как у нас работает автоматическое реалтайм-профилирование внутренностей системы, и какие проблемы оно помогает выявлять еще до их возникновения;
- как у нас работает конвейерный таргетинг, и как мы можем добавлять или выкидывать из него стадии буквально за пару дней;
- как мы обеспечиваем производительность на уровне ~10мс на запрос-ответ.

C/C++
,
Бэкенд / другое
,
Архитектурные паттерны
,
Оптимизация производительности
,
Профилирование
,
Рефакторинг
,
Масштабирование с нуля
,
Архитектуры / другое
,
Продуктовая разработка
,
A/B-тестирование
,
Machine Learning
,
Enterprise-системы

Другие доклады секции Архитектуры, масштабируемость