Как стать автором
Обновить
149
-3
Александр Тоболь @alatobol

Технический директор ВКонтакте

Отправить сообщение

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

провели а/б эксперимент по всем правилам

Гуглеж приводит на https://developers.google.com/search/blog/2021/04/more-details-page-experience, но страница со свежим апдейтом. Чтобы уточнить возраст данных, надо еще покопать.

WebP мы пережимаем "на лету" из JPEG, то есть у нас есть и фолбек, и возможность адаптировать картинку под разные сценарии, в т.ч. выбирать, когда надо пережать, а когда нет (например, если клиент не поддерживает WebP). 

По поводу brotli: так и есть — на малых запросах может быть неэффективен, поэтому используем для статики и бОльших запросов. 

В браузерах на самом деле неплохая поддержка, chromium поддерживает, firefox тоже недавно поддержал, safari в "экспериментальном режиме" — что уже что-то. Для нас этого достаточно, тем более, что у нас, конечно, есть фолбэк. 

Спасибо за наблюдательность. Вы правы, случайно преувеличил масштаб бедствия, но всего на порядок. Я начинал программировать на БК-001, Википедия говорит, что это 3 или 4 МГц и килобайты памяти. А dial-up появился уже позже.

Спасибо за наблюдательность. Вы правы, случайно преувеличил масштаб бедствия, но на самом деле всего на порядок. Я начинал программировать на БК-001, Википедия говорит, что это 3 или 4 МГц и килобайты памяти. 

В этой статье хотели разобрать конкретно доставку контента, т.е. сжатие и сетевой слой. Фреймворки, языки и т. д., кажется, не сильно влияют на выбор сетевого стека. Наш опыт можно перенести на модификацию самых разных систем. А о том, что можно оптимизировать на уровне архитектуры, возможно, стоит написать отдельную статью, подумаю об этом. 

Чтобы использовать QUIC в качестве транспорта, нужно, чтобы клиент поддерживал QUIC. На вебе ещё остались некоторые места без поддержки, потому что в первую очередь делали акцент на мобильные клиенты — там больше всего профита. С WebP такая же история.

Сравнивали с HTTP/2 с BBR. 

У нас также установлены кеш-серверы у провайдеров и в регионах, CDN распределен по всей стране и включает больше 50 точек. vk.com – это только статика и ответы API. На картинке вижу Piter-IX, видеотрафик ВКонтакте отдается по большей части из Москвы.

Бинарный формат выигрывает в скорости парсинга на клиентах.

Данное решение позволяет нам "на лету" из фотографии в оригинальном размере, хранящейся на бэкенде, выдавать картинку адаптированную под layout приложения и экран мобильного устройства, а также с учетом поддерживаемого формата (сейчас это jpeg и webp, в будущем будем расширять). 

У нас есть такая статистика, и мы на нее опираемся в алгоритмах адаптации видео под сеть, как в сервисе VK Видео так и в Звонках.

Вывод: смотри, что делает Google, но всё перепроверяй. Никому не верь на слово, даже нам :)

WebP мы пережимаем на лету из JPEG, при помощи решения на FPGA, что позволяет нам продолжать хранить JPEG. С одной стороны это даёт обратную совместимость (если клиент не поддерживает WebP), с другой — у вас есть доступ к JPEG через "скачать".

формат поддерживается только последними версиями браузеров, да и то не по дефолту

Это точно не вариант для нас. Как я и написал, мы смотрим на adoption и, например, поэтому пока не спешим использовать AVIF, хотя он сжимает эффективнее и вообще выглядит перспективным.

Хорошее уточнение про мобильные приложения. Мобильный трафик в целом превысил десктопный пару лет назад. ВКонтакте 92% нашей аудитории каждый день заходят через мобильный клиент. Да, там есть доля Wi-Fi, но не меньше половины трафика ходит через GSM-сети. Поэтому для мобильных приложений история с QUIC наиболее интересна, особенно для геораспределённых сервисов (например, заказ такси, как у Uber), мессенджеров, приложений с лентой новостей, видео- или аудиостримингом. 

Эта статья в основном о транспорте, который больше всего актуален для мобильных. Работы по оптимизации фронта на вебе тоже в процессе, скоро поделимся результатми )

Cпасибо за статистику, работы по оптимизации фронта тоже в процессе, скоро поделимся результатми )

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность