Дмитрий Хасанов Дмитрий Хасанов,
Back-end Вячеслав Крюков Вячеслав Крюков,
Back-end
Москва

В среду, 5 октября, в московском офисе Технологического Центра Deutsche Bank состоялась встреча CodeFreeze с инженерами Авито, занимающимися вопросами оптимизации решений. Они рассказали об архитектурных решениях и подходах внутри портала Avito и уделяли особое внимание механизмам, обеспечивающим производительность решения.

Часть первая: Успеть за 100 миллисекунд: контекстная реклама на Avito

C недавнего времени на Avito.ru появилась контекстная реклама. Из более, чем 10 миллионов объявлений нужно в режиме реального времени отобрать по десяткам параметров несколько релевантных для каждого отдельного пользователя.

Дмитрий Хасанов рассказал о том, как устроена инфраструктура контекста, как происходит индексация, поиск и ранжирование объявлений и зачем Avito использует миллионы коэффициентов при обработке каждого запроса, как проводится A/B- тестирование, почему Avito выбрали Sphinx и какие хитрости они применили, чтобы уложиться в 100 миллисекунд.

Кроме этого, в вводной части Дмитрий сделал краткий обзор инфраструктуры и стека технологий Avito в целом.

Часть вторая: Бэк-офис в Avito: миллиард объявлений на 10 серверах​

Ежедневно на Avito публикуется около 500 тысяч новых объявлений. За годы работы сервиса накопился почти миллиард объявлений (активных и неактивных), среди которых модераторы и другие работники бэкофиса Avito должны иметь возможность быстро найти нужное.

В докладе речь шла о различных подходах, классических и экзотических, которые Avito использовали для решения этой непростой задачи, их преимуществах и недостатках, о сложностях, с которыми Avito столкнулись в процессе и лайвхаках, которым научились.

Бэкофис Avito реализован на базе технологии SphinxSearch, однако описанные методы могут применяться и независимо от неё.

Доклад ориентирован на Middle / Senior-разработчиков.

Дмитрий Стогов Дмитрий Стогов
Санкт-Петербург

В среду, 7 сентября в 20:00 в офисе компании JetBrains состоялась встреча с Дмитрием Стоговым, разработчиком компилятора PHP, сотрудником Zend Technologies. Тема встречи — внутреннее устройство виртуальной машины PHP и, в частности, последние изменения в PHP 7. После доклада Дмитрия выступила Анна Лебедева из JetBrains, которая дала несколько советов по использованию PhpStorm, включая поддержку PHP 7.

Роман Поборчий Роман Поборчий
Санкт-Петербург

В четверг, 7 июля, в 20:00 в петербургском офисе Oracle состоялась встреча CodeFreeze с Романом Поборчим, экспертом по Java, качеству поиска и A/B тестированию. Тема встречи — грабли A/B тестирования.

Все изменения на вашем сервисе проходят через эксперимент на пользователях. Вы выкатываете только то, что показывает значимое улучшение целевой метрики. Да, у вас есть целевая метрика. Да, вы всё знаете про татистическую значимость, ну, по крайней мере слышали о ней.

Так почему же целевая метрика вашего сервиса сегодня находится точно на том же уровне, что и год назад?

Один из возможных ответов состоит в том, что в систему проведения экспериментов вкрались ошибки. Роман рассказал о некоторых типовых проблемах, с которыми сталкиваются практически все, кто начинает экспериментировать над пользователями. Кроме конкретных проблем говорили об индикаторах, следя за которыми можно заметить, что что-то сломалось. Если в вашем проекте есть A/B тестирование, то по результатам рассказа вам наверняка захочется внести в него какие-то улучшения.

Константин Ушаков Константин Ушаков,
OKTET Labs
CEO
Санкт-Петербург

В четверг, 12 мая, в 20:00 в петербургском офисе Одноклассников состоялась встреча CodeFreeze с Константином Ушаковым, директором OKTET Labs. Тема встречи — Solarflare OpenOnload, сетевой стек, для Linux, уменьшающий задержки, нагрузку на процессор и увеличивающий скорость передачи пакетов.

Solarflare OpenOnload — высокопроизводительный сетевой стек, радикально уменьшающий задержки, нагрузку на процессор и увеличивающий скорость передачи пакетов. Достигается это без изменений в самом вашем приложении, будь то C/C++/Java или что либо, использующее BSD Sockets API). Хотя идея стеков, работающих частично или полностью в userland, не нова, радикальное отличие Onload — в предоставлении BSD Sockets API.

Доклад затронул техническую сторону реализации:

  • разделение ресурсов между ядром и процессом;
  • маршрутизация пакетов;
  • механизмы поллинга (poll, epoll и т.п.);
  • кэширование сокетов.

Константин показал, почему простая идея, лежащая в основе, не так проста в реализации (с примерами «неуспешных» попыток). Были цифры и были детали того, как ядро Linux пытается достичь схожей производительности (включая DPDK).

Владимир Кочетков Владимир Кочетков,
Positive Technologies
Team Lead
Москва

В четверг, 28 апреля, в московском офисе Технологического Центра Deutsche Bank состоялась встреча CodeFreeze с Владимиром Кочетковым, экспертом в области Application Security. Владимир рассказал о том, что такое защищенное приложение, от чего нужно защищаться, и как избежать проблем безопасности в вашем приложении.

Что такое «защищенное приложение»? Как отличить неуязвимый код от уязвимого? Какими принципами нужно руководствоваться в разработке защищенных приложений? От чего и когда нужно защищаться? А от чего и когда НЕ нужно? На какие грабли наступили разработчики, повинные в Heartbleed, Gotofail, GHOST, Shellshock и прочих нашумевших уязвимостях? Как избежать подобных ошибок в своих приложениях?

Ответы на эти и другие вопросы предметной области Application Security мы обсудим в ходе предстоящей встречи.

Доклад ориентирован на Middle / Senior-разработчиков, безотносительно конкретных языков, платформ и технологий. В ходе него участники получат как практические навыки разработки защищенного кода, так и теоретический базис, необходимый для их корректного применения.

Присоединяйтесь!

Ссылки