Что мы расскажем на Highload++ 2017 +34

- такой же как Forbes, только лучше.


2 700 участников из разных регионов России и мира, 150 докладчиков, более десяти залов, 2 дня на крупнейшей площадке «Сколково» — это всё о конференции Highload++, на которой мы с вами, возможно, встретимся. У нас большой десант в разных секциях, будут не только традиционные выступления, но и мастер-классы.


Составили для вас расписание выступлений от Mail.Ru Group — без малого 18 спикеров! Расскажем о технологиях детектирования и распознавания, создании базы данных и миграции без даунтайма, написании платформы потокового видео, защите от DDoS, новом о Tarantool и о многом другом.


Некоторые лекции и мастер-классы пересекаются друг с другом, но записи докладов традиционно выкладываются после конференции. Или подключайтесь к трансляции, она тоже будет.


7 ноября


Эдуард Тянтов, руководитель группы антиспама и группы машинного зрения Mail.Ru Group
«Face Recognition: From Scratch To Hatch», 15:00, зал «Найроби+Касабланка»


В мобильном Облаке Mail.Ru для кластеризации фотографий уже используется технология детектирования и распознавания лиц. Также мы используем технологии распознавания во внутренних сервисах компании. На основе реального опыта в наших продуктах Эдуард расскажет:


  • как научить нейросеть находить лица на фотографии и различать их;
  • какие существуют интересные аспекты обучения и трюки;
  • что нужно знать про оптимизацию вычислений для работы с десятками миллионов запросов в сутки;
  • замеченные проблемы модели и наши решения.

Василий Сошников, Senior Developer в Tarantool team
«Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2», 15:00, зал «Дели+Калькутта»


Год назад Василий выступал с докладом «Как и зачем создавать NginX-модуль — теория, практика, профит». В тот раз не удалось рассказать обо всех возможностях NginX… и в этот раз не получится — тема слишком большая! Вместо всех возможностей сфокусируемся на вопросах, о которых не успели поговорить в прошлом году:


  • как и зачем создавать upstream-модули;
  • как правильно преобразовывать контент, проходящий через модули;
  • NginX shared memory — зачем она, и что с ней можно делать.

Речь также пойдет о проблемах и решениях в проекте трекинга пользовательской активности, сессий и учета трафика в Live Stream видео и VOD (в масштабах CDN и трех ЦОД), где не обошлось без нескольких NginX-модулей.


Антон Резников, руководитель группы разработки Облака Mail.Ru
Игорь Мунькин, разработчик проекта Облако Mail.Ru
«Как писать сервис, поддержка которого не превращается в ад», 17:00, «Конгресс-холл»


Совместное выступление, посвященное разработке сервиса в контексте эксплуатации, решения инцидентов и их расследования. В проекте Облако Mail.Ru, где у нас полторы тысячи машин, многомиллионная аудитория и сложная бизнес-логика, нашлись ответы на следующие вопросы:


  1. Как писать логи, чтобы расследование инцидентов не превращалось в поиск иголки в стоге сена?
  2. Как собирать метрики, что случилось с проектом?
  3. Как метрики добавлять в мониторинг, чтобы не узнавать о проблемах с вашим проектом от пользователей?

Знания в этой области могут помочь любому высоконагруженному сервису.


Дмитрий Соловьев, ведущий разработчик отдела рекомендаций Mail.Ru Group
«Определение атрибутов и визуальный поиск в UGC-фотографиях одежды», 17:00, зал «Найроби+Касабланка»


Одной из самых высокотехнологичных областей в e-commerce являются рекомендации. Хорошо себя показали алгоритмы, основанные на поведении пользователей или информации, извлеченной из текстов, но в области визуального поиска и визуальных рекомендаций нужно искать другие решения.


Дмитрий Соловьев расскажет, с чем мы столкнулись в процессе создания рекомендательной системы одежды по фотографиям от пользователей:


  • как использовать сверточные нейронные сети в решении задачи поиска по изображениям;
  • как можно быстро построить свой поиск по изображениям, используя предобученные нейросети;
  • как дообучение сети для выделения атрибутов одежды помогает улучшить качество рекомендаций.

Лекция рассматривает следующие вопросы практического применения нейросетей:


  • классификации атрибутов одежды; 
  • object detection;
  • поиск похожей одежды;
  • рекомендации одежды по фотографиям.

Дмитрий Егоров, руководитель отдела баз данных ВКонтакте
«Как переписать с нуля базу данных личных сообщений ВКонтакте и мигрировать на нее без даунтайма», 18:00, «Конгресс-холл»


Долгие годы раздел личных сообщений во ВКонтакте (насчитывает триллионы сообщений и около петабайта данных) работал на одной и той же самописной базе данных, которая постепенно морально устаревала и требовала огромного количества серверов.


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


В начале 2017 года для раздела личных сообщений пользователей в два раза уменьшилось количество используемого железа (старый движок требовал двукратного увеличения). Также значительная часть логики была перенесена из php-backend в движок. В главном зале HighLoad++ Дмитрий Егоров расскажет об архитектуре обоих движков личных сообщений, оптимизациях, сделанных небольшой командой в сжатые сроки, а также подробно осветит наиболее сложную часть — миграцию без даунтайма.


8 ноября


Юрий Невиницин, команда платформы в Одноклассниках
«Как мы заставили Druid работать в Одноклассниках», 10:00, зал «Мумбай»


Однажды MSSQL-based система статистики на 50 терабайт в Одноклассниках стала такой:


  • медленной (средняя скорость ответа была в разы меньше требуемой);
  • нестабильной (в час пик статистика отставала до получаса);
  • дорогой (изменилась политика лицензирования Microsoft, расходы на лицензии могли составить миллионы долларов).

Все эти проблемы удалось решить, внедрив Druid: средняя скорость ответа увеличилась в 20 раз, статистика перестала отставать, вместо дорогой лицензии появился open-source. В Одноклассниках Druid используется для хранения и обработки оперативных показателей за последние два года. На данный момент база данных обрабатывает десятки миллиардов записей в сутки (сотни гигабайт по объему).


Юрий Невиницин расскажет, почему среди всех решений выбор пал именно на Druid. Спойлер: высокая производительность, горизонтальная масштабируемость, отказоустойчивость.


Александр Тоболь, разработчик видеоплатформы и платформы новостной ленты Одноклассников
«Пишем свой протокол поверх UDP или платформа потокового видео с нуля на миллион онлайнов», 11:00, зал «Дели+Калькутта»


Сервис Видео в Одноклассниках занимает второе место в Рунете по просмотрам: свыше 400 миллионов просмотров видео ежедневно. Пользователи не только смотрят ролики, но и сами генерируют контент — в том числе с помощью стримингового приложения OK Live.


В Одноклассниках решили следующие технические проблемы стримов:


  • гарантия задержки между стримером и зрителями на динамично меняющемся мобильном канале;
  • непрерывный стриминг даже при потере части оборудования;
  • нагрузка на раздающие сервера во время популярных трансляций.

Александр Тоболь поделится опытом построения масштабируемого отказоустойчивого сервиса видеостриминга, расскажет про архитектуру, которая выдерживает тысячи стримов online и миллионы зрителей. С практический стороны доклад ответит на следующие вопросы:


  • как оптимизировать задержку трансляции до времени, сравнимого с p2p-видеоконференцией;
  • как использовать протоколы hls, dash, rtmp, webrtc;
  • как настроить кодеки на клиенте и транскодере для минимизации задержки;
  • проблемы гарантии задержки на TCP;
  • свой UDP-протокол: измерение MTU, pacer, шифрование с потерей пакетов, fast retransmite.

Результатом работы над стримингом в Одноклассниках стал запуск первого в мире приложения на Android, способного стримить в FullHD (1080p) в мобильных сетях.


Денис Линник, backend-разработчик в Медиапроектах Mail.Ru Group
«Хранимые процедуры в NoSQL СУБД на примере Tarantool», 11:00, зал «Найроби+Касабланка»


Денис Линник на примере Tarantool рассмотрит преимущества и недостатки подхода написания хранимых процедур для увеличения скорости обработки и получения данных. Если рассматривать Tarantool как полноценный application server, то запущенные в нем приложения можно рассматривать как микросервисы. Хранимые процедуры на Lua (а также на C) в Tarantool позволяют реализовать сложную логику от агрегации большого объема данных до OAuth2-авторизации. В докладе подробно рассматриваются особенности и подводные камни написания хранимых процедур, а также вопрос профилирования и оптимизации кода.


Александр Христофоров, ведущий разработчик Одноклассников (команда платформы)
«Дешевле, надёжнее, проще. Хранение петабайтов видео и фото в ОК», 12:00, зал «Дели+Калькутта»


В Одноклассниках хранят десятки петабайт видеоданных и обеспечивают к ним доступ со скоростью сотни Гб/с — процессы требуют инфраструктуры, состоящей из многих тысяч дисков и сотен серверов. Ранее для обеспечения надежности данных и отказоустойчивости хранилось три реплики данных — по одной в каждом дата-центре. Взрывной рост объемов загружаемого видеоконтента привел к решению разработать новую дешевую и надежную систему хранения данных. 


Александр Христофоров расскажет, как удалось уменьшить избыточность хранения данных с 3 до 2.1, и при этом добиться более высокой надежности и доступности системы. В докладе рассматривается простой и безопасный способ замены тысячи дисков.


Олег Анастасьев, ведущий разработчик Одноклассников (команда платформы)
«One-cloud – система управления дата-центром в Одноклассниках», 15:00, зал «Калининград»


Одноклассники — это более 8 000 железных серверов в нескольких дата-центрах. Каждая из машин была специализирована под конкретную задачу — для обеспечения изоляции отказов и автоматизированного управления инфраструктурой. Однако стало понятно, что внедрение новой системы управления позволит эффективнее загрузить технику, облегчить управление доступами, автоматизировать (пере)распределение вычислительных ресурсов, ускорить запуск новых сервисов, ускорить реакции на масштабные аварии. 


Тезисы выступления Олега Анастасьева, посвященного облачной системе управления ДЦ:


  • основные принципы, процессы и детали реализации облака Одноклассников;
  • обеспечение отказоустойчивости самого облака и выполняемых им задач;
  • подход к изоляции задач и повышению плотности использования техники;
  • реальная эксплуатация облака и задач в нем.

Андрей Домась, ведущий системный администратор Одноклассников
«Балансировка "на скорости проводов". Без ASIC, без ограничений. Решения NFWare для Одноклассников», 16:00, зал «Мумбай»


Качественный и количественный рост DDoS-атак за последние годы превращает их в одну из первоочередных проблем. В зависимости от вектора атаки «узким» местом становится та или иная часть инфраструктуры. В частности, при SYN-flood первый удар приходится на систему балансировки трафика. От ее производительности зависит успех в противостоянии атаке.


Андрей поделится опытом, как Одноклассники и NFWare внедряли программный высокопроизводительный балансировщик нагрузки. Расскажет о том, как решение обеспечило пропускную способность до десятков миллионов CPS, выше максимальных способностей даже многих hardware-аналогов. И о том, как оно работает в сети одного из самых высоконагруженных проектов Рунета.


Кроме того, будут затронуты следующие темы:


  • увеличение скорости за счет многоядерной архитектуры;
  • выбор «с нуля» разработанного стека вместо привычного стека Linux;
  • обеспечение отказоустойчивости решения с сохранением высочайшей производительности;
  • повышение защиты от DDoS с помощью специально разработанных алгоритмов.

В докладе принимает участие технический директор NFWare Вячеслав Морозов.


Артур Удалов, maintainer библиотеки React-компонентов в Почте Mail.Ru
«Как развивать библиотеку компонентов, не ломая её», 17:00, зал «Пекин+Шанхай»


В команде Почты Mail.Ru выделяли UI-компоненты в отдельную библиотеку и использовали её в нескольких проектах, но столкнулись с проблемой: каждый разработчик, меняя библиотеку под свои нужды, обязательно ломал то, что работало у других. С проблемой удалось справиться — в этом докладе вы узнаете, как именно.


Артур Удалов расскажет о способах эффективной разработки и поддержки библиотеки компонентов при командной работе в реальном проекте с использованием различных инструментов: Storybook, BackstopJS, Jest, Webdriver.io, TypeScript.


Мастер-классы


7 ноября


Роман Цисык, разработчик в Tarantool team
«Tarantool. Как, зачем и почему?», 11:00, зал A1.3


Роман Цисык расскажет, в чем секрет производительности Tarantool как решения, и когда стоит, а когда не стоит его использовать. Тезисы выступления:


  • горячие и холодные данные;
  • СУБД и cache;
  • SQL и NoSQL;
  • монолит и микросервисы;
  • CRUD и CQRS;
  • Tarantool и Redis.

Константин Осипов, разработчик и основатель проекта Tarantool
«Внутреннее устройство Vinyl storage engine в Tarantool», 13:00, зал A1.3


Vinyl — реализация diskstore в Tarantool — вышел в production в Tarantool 1.7.5. Константин Осипов расскажет о настройке и тюнинге Vinyl:


  • как работает Level0 в LSM;
  • какие используются структуры данных из in-memory технологии;
  • эффективность поддержки вторичных ключей в LSM Vinyl;
  • управление слоями LSM дерева на диске для минимизации объемов используемого дискового пространства и снижения количество мусора.

В 15:00 Константин продолжит говорить о базе данных с темой «Синхронизация данных из PgSQL в Tarantool».


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


Никита Петтик, разработчик в Tarantool team
«SQL в Tarantool: принципы работы оптимизатора запросов», 17:00, зал A1.3


Встроенный в Tarantool транслятор запросов SQL позволяет для данного запроса автоматически создавать квазиоптимальный план исполнения запроса (query plan), по производительности сопоставимый с оптимальным. Делается это с помощью набора оптимизирующих преобразований.


Никита Петтик расскажет, какие именно оптимизации присутствуют в трансляторе SQL, какая информация поможет оптимизатору принять правильное решение при построении плана запроса и как эти данные хранить и собирать.


8 ноября


Кирилл Юхин, разработчик в Tarantool team
«SQL в Tarantool: статус и планы», 14:00, зал A1.3


Кирилл Юхин расскажет, что мы взяли за основу и с какими проблемами столкнулись при добавлении поддержки языка SQL в Tarantool. Также будет показано, чего удалось достигнуть с SQL на данный момент.


Алексей Хацкевич, разработчик в Tarantool team
«SQL в Tarantool: учимся читать EXPLAIN», 16:00, зал A1.3


Запросы SQL можно исполнять несколькими разными способами, к примеру:


  • на производительность плана запроса, принятого к исполнению, сильно повлияет порядок произведений операций соединения (если они есть);
  • подходящий покрывающий индекс (covering index) позволяет избежать полного сканирования таблицы.

EXPLAIN — команда SQL, которая позволяет вывести план запроса. Научившись понимать, что означает вывод этой команды, можно сильно повысить навыки написания эффективных запросов на SQL.


Алексей Хацкевич расскажет, что собой представляет вывод EXPLAIN в Tarantool, как его правильно читать, и как пользоваться прочитанным.




На конференции будет организована прямая трансляция (платно), но в нее не попадут мастер-классы. Транслировать в открытом доступе будут главный зал — здесь вы сможете бесплатно посмотреть два наших выступления: «Как писать сервис, поддержка которого не превращается в ад» от проекта Облако Mail.Ru и «Как переписать с нуля базу данных личных сообщений ВКонтакте и мигрировать на нее без даунтайма».

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (8):

  1. dMetrius
    /#10507008

    Планирую посетить ваши доклады на Highload 2017, спасибо!

  2. tgz
    /#10507126

    Трансляции будут?

    • martovskiy
      /#10507178

      Должна быть бесплатная трансляция главного зала. Остальные доклады, по традиции месяцев через 9.
      Остальные доклады и записи быстрее за денежку.

  3. ReklatsMasters
    /#10507786

    Интересно, зачем майлру понадобилось переписывать базу сообщений вк. И что за велосипед с UDP они там в видеосервисе одноклассников изобрели, в то время как есть dtls и dccp.

    • reversecode
      /#10512394

      Ни тот ни другой не подходит для видео стриминга
      Впрочем если хотите, можете декомпильнуть OK Live для андроида и увидеть протокол

      • ReklatsMasters
        /#10513084

        Ни тот ни другой не подходит для видео стриминга

        под капотом webrtc как раз dtls, а dccp был разработан для ситуаций, когда устаревшие данные не нужны. Почему вы считаете, что не подходит?

        • reversecode
          /#10513186

          — Избыточны и в реализации и в скоросте старта
          — Оверхед на данные
          — Не уменьшают фрагментации на промежуточных узлах в случае разных MTU
          — Не учитывают особенность передаваемых данных
          итд

          Дождемся публикации доклада, надеюсь не через 9 месяцев
          Хотя мне имея опыт в этой области и заглянув внутрь протокола и реализации и так многое понятно

          • ReklatsMasters
            /#10513220

            • Оверхед на данные
              Разрабатывая протокол более высокого уровня, по сравнению с UDP без оверхеда не обойтись, те же заголовки нужно же как то передавать.


            • Не уменьшают фрагментации на промежуточных узлах в случае разных MTU
              Как насчёт определения PMTU во время старта?


            • Не учитывают особенность передаваемых данных
              Для этого есть протоколы более высокого уровня, тот же rtp over dtls. dtls, dccp, udp это только транспорт, вся логика и прочий контроль должен быть в протоколах более высокого уровня.

            Хотя я немного(или много) ковырялся в webrtc, и dtls действительно странный достаточно. Сильнее всего огорчает отсутствие логики one2many.