X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Яндекс подробно раскрыл детали устройства Турбо-страниц
jack
jack
Topic Starter сообщение 3.4.2020, 13:35; Ответить: jack
Сообщение #1


По данным TelecomDaily, почти 30% пользователей мобильного интернета в России ежедневно сталкиваются с проблемами при загрузке сайтов. Однако причина может быть не только в неравномерном покрытии, но и в слишком большом «весе» страницы.

Повлиять на качество соединения мы не можем, а вот помочь вебмастерам упростить наполнение сайта, сделать его легче — почему бы и нет? Так в Яндексе появилась технология Турбо-страниц: нашей контент-системе передают всё необходимое к размещению, а она преобразует эти данные в лёгкие и быстрые материалы.

Как работает эта магия? Какой путь проходят данные, прежде чем стать полноценной Турбо-страницей? Меня зовут Стас Макеев, я руковожу разработкой технологии Турбо-страниц. Сейчас попробую всё объяснить.

Но сначала — что-то вроде краткого содержания, чтобы вы не потерялись, когда начну углубляться в детали.

Ключевое преимущество системы Турбо-страниц — быстрое преобразование данных из исходной формы в окончательную: материалы новостных сайтов наиболее востребованы в первые минуты после публикации, а карточки товаров интернет-магазинов должны оперативно обновляться и всегда соответствовать актуальному статусу наличия. Второй важный параметр — надёжность: контент-система должна быть максимально стабильна, уметь переживать поломку отдельных серверов или даже целых дата-центров. И, конечно же, было важно не допустить чрезмерной нагрузки на хосты наших партнёров, подключившихся к Турбо-страницам. То есть при проектировании сервиса нужно было каким-то образом нащупать баланс между скоростью обработки данных и увеличением количества запросов.

У владельцев сайтов есть несколько способов подключиться к системе:
  • зарегистрировать в Яндекс.Вебмастере фиды: YML — для интернет-магазинов, RSS – для контентных сайтов;
  • передавать материалы через API: хозяин ресурса сам загружает на сервера Яндекса необходимые данные (пока только для контентных сайтов);
  • включить автопарсер: Турбо-страницы строятся на основании исходных материалов контентного сайта.


Контент-система складывает результаты своей работы в специальное хранилище типа «ключ-значение» (key-value-хранилище или KV-хранилище), где ключом является URL оригинального сайта, а в значении хранится контент Турбо-страницы. Как только данные попадают в это KV-хранилище, очередная Турбо-страница сразу же становится доступна пользователям поиска, а в сервисах Яндекса у соответствующего документа появляется специальный значок с ракетой. Также для ускорения работы мы кешируем картинки и видео в наших CDN.

Очень упрощенно общая схема работы выглядит так:


С чего все начиналось
Самая первая версия контент-системы была устроена совсем просто: каждые несколько минут, по расписанию, на сервере внутреннего облака Яндекса запускалась одна и та же программа. Она состояла из нескольких шагов, каждый следующий запускался после того, как были готовы данные предыдущего для всех известных нам фидов:
  • скачивался список RSS-фидов, запускался парсер документов;
  • из результатов парсера извлекался список изображений;
  • в CDN загружались ещё не закешированные картинки;
  • обработанные документы заливались в KV-хранилище.


Такая схема отлично работала, когда система имело дело с несколькими тысячами довольно лёгких RSS-фидов новостных агентств (суммарно — информация о чуть менее 100 000 документов). Но с увеличением количества фидов быстро обнаружилась проблема: каждый шаг занимал всё больше времени, росла задержка между появлением нового документа в исходном источнике и его отображением в Турбо-режиме.

Ситуацию удавалось держать под контролем с помощью различных ухищрений: первым делом мы выделили первый шаг (скачивание RSS-фидов + парсер документов) в отдельный процесс. То есть, пока один обрабатывал картинки для предыдущей итерации, другой процесс уже скачивал фиды для следующей. Через некоторое время стало понятно: в таком виде систему очень сложно масштабировать. Нам нужно что-то принципиально новое.

Обработка RSS, API и YML в новой контент-системе

Главная проблема старой контент-системы — все данные обрабатывались одним куском: перехода к следующему шагу не происходило, пока каждый документ не прошёл предыдущий. Чтобы избавиться от этого, было решено построить некий конвейер: пусть фиды и отдельные документы обрабатываются максимально независимо друг от друга. Все шаги выделили в отдельные кубики-сервисы — на верхнем уровне схема получилась такая:


  • первый кубик качает RSS-фиды и передает дальше;
  • второй — забирает фиды по одному, парсит содержимое. На выходе — отдельные документы;
  • третий — забирает документы по одному, обрабатывает картинки и видео, записывает всё в KV-хранилище.

Одни и те же фиды могут быть зарегистрированы не только в Турбо, но и на других наших сервисах — в Новостях или в Маркете, например. Если каждый из них будет скачивать данные самостоятельно, нагрузка на сервера вебмастеров в несколько раз превысит допустимую. Как правильно? Скачать фид один раз, а затем содержимое раздать всем сервисам-потребителям — этим занимается Яндекс.Робот. Его же услугами мы пользуемся для выгрузки контента: забираем из Яндекс.Вебмастера список зарегистрированных в Турбо RSS- и YML-фидов, передаем его в Робота и подписываемся на результаты скачивания.

На полученных данных запускаем парсер. На всякий случай напомню: RSS-фид — просто файл в формате «.XML», доступный по статическому URL на хосте партнера. В этом файле расположена информация обо всех обновлениях на сайте — какие документы новые, какие измененные. В идеальных фидах находилась бы только самая актуальная информация за последние несколько часов: не более 100 документов на несколько сотен килобайт.

Реальность кусается: иногда файлы находятся внутри фида очень долго и никогда не меняются. Как избежать повторной обработки в таких случаях? Вычисляем хеш каждого документа, запоминаем его в базу данных, и ничего не предпринимаем, пока хеш не изменится.

Обработка YML-фидов и API с точки зрения контент-системы практически ничем не отличается от взаимодействия с RSS: для YML запускаем другой парсер, а данные, переданные через API, получаем напрямую из Яндекс.Вебмастера.



Обработка изображений и видео

Документ, который получается на выходе из парсера, практически готов для записи в KV-хранилище. Единственное, что осталось сделать перед отправкой — обработать изображения и видео: закешировать в CDN и заменить ссылки в документе. Тут снова обращаемся за помощью к Роботу.

Первым делом проверяем каждую картинку и видео: есть ли они в CDN? Если все уже закешировано, заменяем ссылки и обновленный документ отправляем в KV-хранилище. В противном случае:
  • список недостающих URL отправляем в Робот, для планирования и скачивания;
  • сам документ — во временное хранилище, чтобы через некоторое время попробовать проверить его ещё раз.

Другой кубик в это время получает результаты скачивания, заливает данные в CDN и обновляет базу данных.

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



Типичный путь, который проходит новый документ:
  • документ появляется в фиде;
  • Робот скачивает фид;
  • парсер обнаруживает новый документ и отправляет его дальше;
  • проверяем, что картинки из документа не упоминаются в базе данных, заказываем скачивание, документ отправляем во временное хранилище (Delay). Пока документ находится там, Робот скачивает картинки, они кешируются в CDN, а ссылки появляются в базе данных;
  • во второй раз проверяем картинки в базе данных, находим ссылки на CDN, обновляем документ и отправляем в KV-хранилище.
  • Обратите внимание: если картинки скачиваются долго, документ может несколько раз побывать в Delay.

Автопарсер

Есть ещё один способ подключения к Турбо-страницам, для которого вебмастеру практически ничего не нужно делать — Автопарсер. Он строит Турбо-страницы на основании исходных данных контентного сайта. Подключиться, посмотреть примеры готовых страниц, настроить рекламу и аналитику можно в Яндекс.Вебмастере.
  • Основная сложность, с которой сталкивается Автопарсер — распознать по HTML-разметке, какая информация основная и должна быть использована при построении Турбо-страницы. Для этого у нас есть несколько оффлайн-процессов, которые пытаются понять, как именно нужно парсить конкретный хост. Остановлюсь на двух основных:
  • Первый скрипт анализирует документы из RSS-фидов и соответствующие им HTML-страницы оригинального сайта. Итог — разбиение страниц на фрагменты, содержимое которых либо целиком вошло в RSS-аналог (то есть является основной информацией), либо полностью отсутствует. Так формируется огромная, достаточно качественная обучающая выборка. На ней при помощи технологии машинного обучения CatBoost тренируются модели, предсказывающие какие тексты, фото и видео исходной страницы ключевые. На больших материалах работает отлично, но для маленьких модель может легко перепутать основной текст и, например, меню. К счастью, почти всегда статьи в рамках одного сайта устроены очень похоже. То есть, применяя модель для множества страниц, можно заметить, что элементы находящиеся на определенных путях в HTML разметке часто попадают в результат. Совпадение? Едва ли: такое содержимое всегда оказывается основным. Итог – некоторый набор обобщённых правил, как корректно парсить хост.
  • Другой процесс контролирует качество: результат применения этих правил к страницам выборочно валидируется специальным заданием в Яндекс.Толоке. Список хостов, для которых получилось хорошо, передаётся в Робота, чтобы по привычной уже схеме подписаться на результаты скачивания документов, окончательные правила — в парсер. Документ после обработки парсером отправляется дальше — для кеширования картинок.

Кстати, ещё одно частое препятствие — многие сайты закрывают в robots.txt возможность скачивания картинок роботами. Обойти эту проблему, к сожалению, невозможно, и для таких страниц Автопарсер недоступен.

В итоге полная схема контент-системы выглядит вот так:


Система получилась хорошо масштабируемой: уже сейчас для обслуживания базы данных, автопарсера и других компонентов системы используется значительное количество ресурсов (только в кубике, отвечающем за парсинг RSS, YML и API, задействовано более 300 процессорных ядер), а в случае роста нагрузки подключить дополнительные мощности будет не слишком сложно.

Источник


--------------------
Stimul-Cash и RX-Partners - лидеры фарма бизнеса!


Поблагодарили: (1)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Trumper
Trumper
сообщение 3.4.2020, 17:52; Ответить: Trumper
Сообщение #2


вот только человеческих, полных и супер подробных материалов на тему как сделать турбо страницы и что от этого лучше стало - я так и не видел.
хотелось бы кейсы прям
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Shentom
Shentom
сообщение 3.4.2020, 23:08; Ответить: Shentom
Сообщение #3


Дистанционка в самом лучшем проявлении)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Haker24
Haker24
сообщение 10.4.2020, 14:11; Ответить: Haker24
Сообщение #4


Хотели как лучше ... Все равно ради скорости приходится жертвовать контентом, полезностью, функционалом сайта. Если у турбо будут расширяться возможности, то и недовольных будет меньше.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
RIperNP
RIperNP
сообщение 14.5.2020, 20:24; Ответить: RIperNP
Сообщение #5


Надоел этот Яндекс со своими турбо страницами. Весть вебмастер засрал агитациями к подключению их.


--------------------
клоновод Had, Velli, LevM, LeZ


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Telnor
Telnor
сообщение 21.5.2020, 19:22; Ответить: Telnor
Сообщение #6


Цитата(RIperNP @ 14.5.2020, 19:24) *
Весть вебмастер засрал агитациями к подключению их.

подключал кто, есть смысл?


--------------------
Продаются сайты с доходом, недорого
Сдам место в подписи, или обменяю на хостинг
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MihalychAIP
MihalychAIP
сообщение 21.5.2020, 20:25; Ответить: MihalychAIP
Сообщение #7


Telnor,
Подключал ранее, но особо разницу не увидел
Зарегистрировал новый домен неделю назад, а через 6 дней подключил турбо
Сразу в ТОПе и Яндекс турбо выдает
Не факт, но для новых доменов может польза есть, т.к фид сайта свежий, инфа новая, есть привилегия
Это пока только мысли, проведу еще тест с новым доменом сразу с турбо


--------------------
Действительно мудр лишь Бог - а человеку дано, быть любителем мудрости - Вебмастерства
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fobos
fobos
сообщение 21.5.2020, 20:56; Ответить: fobos
Сообщение #8


Цитата(Telnor @ 21.5.2020, 18:22) *
подключал кто, есть смысл?


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


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
VinogradOFF
VinogradOFF
сообщение 21.5.2020, 22:55; Ответить: VinogradOFF
Сообщение #9


Цитата(fobos @ 21.5.2020, 20:56) *
для бизнеса нет смысла, функционала почти нет, а для новостников есть смысл получить доп.траф.


так если бизнесу и нужен этот траф?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fobos
fobos
сообщение 22.5.2020, 12:25; Ответить: fobos
Сообщение #10


Цитата(VinogradOFF @ 21.5.2020, 21:55) *
так если бизнесу и нужен этот траф?


Я же написал функционала почти нет.
Если от полноценного сайта конверсия 7-10%, то турбо-страницы будут выдавать 1-4%.
Смысл для бизнеса турбо-страницы, если продажи упадут в разы.

з.ы. бизнесу нужен не траф, а продажи ;)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Аналоги Яндекс Директ
3 kuz999 1675 26.3.2024, 14:12
автор: knezevolk
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрая индексация страниц сайта и обратных ссылок - 2Index
32 2Index 5846 18.3.2024, 16:33
автор: 2Index
Открытая тема (нет новых ответов) Atlantic 2.0 - для безлимитного решения кликами Recaptcha и кликовой капчи Яндекс
3 waterworld 1544 14.3.2024, 12:29
автор: waterworld
Открытая тема (нет новых ответов) Где дешевле клики в Яндекс.Директ или Таргет ВК?
2 rownong27 969 18.2.2024, 9:49
автор: rownong27
Открытая тема (нет новых ответов) Как в Яндекс.Директ задать для компании дневное ограничение бюджета?
0 rownong27 977 16.2.2024, 16:18
автор: rownong27


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:27
Дизайн