HighLoad 2016

Nikita Vaniasin | Nov 10, 2016 min read

Был на многих докладах, но в этот раз опишу только то, что реально может пригодится или просто показалось интересным.

 

1 Инфраструктура распределенных node js приложений, Rambler

  • Можно использовать pm2 deploy для деплоинга
  • Нормально описал, как Docker использовать с node js, выглядит очень просто.
  • Используют консул для service discovery, можно быстро распростронять конфиги при помощи key-value хранилища

 

 

2 Митап по текущему состоянию WebRTC стека

Flussonic – очень мощные чуваки, постоянно сидели в комнате для митапов, я был на двух (третий был про Erlang). Тоже из России. Основная специализация – кастомные разработки по трансляции и записи видео для разных клиентов (в основном IP-камеры для систем слежения). Разработали свой медиа-сервер, аналог Curento. Всё на Erlang. Очень его хвалили за скорость и параллельность

Назвали Curento одним из лучших опен-сурс решений из коробки в этой области, но все равно советовали сделать свою систему.

В основном обсуждали очень низко уровневые детали протокола установки P2P соединения в браузерах и реализацию секурности.

 

 

3 Введение в архитектуры нейронных сетей

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

Основной вывод — если хочешь поизучать deep learning, используй английские источники.

 

 

4 Использование GPU для нейронных сетей, VK — Vinci

Крутой доклад об истории разработки Vinci. Основные выводы:

  • Просто склонировать код Гугла по сверточным/рекурентным сетям оказалось недостаточно
  • Нормально работает только на stable версиях Debian/Ubuntu
  • Все GPU неизбежно могут роняют систему, постоянно. Нужен супервайзер.
  • GPU — для широких сеток, CPU — для узких
  • Первая версия Vinci была сделана за 24 часа хакатона. Хакатона, Карл!
  • Первый релиз в Google Play — через 2 недели, второе место по популярности после Prisma
  • Стек: Torch, Lua, Turbo, NodeJS, Go
  • Для того, чтобы фильтры весили меньше (фильтры это по сути обученные сетки — множество весов и переходов), применили бинаризацию весов.

 

 

5 Битрикс

Чуваки собирают логи и показывают активность пользователей на карте мира.

Оч. чётко. (подобное реализовано в Гугл Аналитике на самом деле)

 

 

6 HTTP/2 и JPEG, Akamai

Чувак из германии четко пояснил, почему HTTP/2 это круто и почему  нужно использовать JPEG с прогрессивной разверткой.

Пользователь видит контент быстрее, очевидно.

Мы используем HTTP/2 ?

 

 

7 Секурность приложений на Node.JS

  • Редиректы из URL-параметра
  • Можно проверять секурность сторонних либ:
    • nsp
    • snyk
    • VeraCode — платный
  • Используй CSRF-токены! У нас пока нет таких кейсов на node js

 

**8 Митап проблемы доставки стримингово видео **

Опять ребята из Flussoning.

В основном говорили о GPU, и как оно круто помогает ускорить транскодинг.

Реально помогает. Только нужен супервизор, чтобы поднимать систему когда она падает (а с GPU она падает постоянно).

 

 

9 Новые фичи MySQL, Percona

  • Document Store http://dev.mysql.com/doc/refman/5.7/en/document-store.html
  • JSON
  • Persistent не нужен. MySQL 5.7 может поддерживать до 70000 переподключений в секунду. Если не может — увеличьте backlog хотя бы до 200 http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_back_log

 

 

 

Ещё: с какого-то большого доклада, куда я попал только под конец, вынес

  1. Нужен TraceId в запросах (впрочем, ничего нового).