OddFeeds поддерживает фид спортивных коэффициентов в реальном времени. Сервис собирает котировки из десятков источников и выдает их единым непрерывным потоком.
Этот поток поступает в OddStorm, платформу для спортивного арбитража, которая анализирует коэффициенты для поиска арбитражных ситуаций. Арбитраж не прощает ошибок: котировка, пришедшая с опозданием на секунду или с небольшой неточностью, не просто портит статистику. Она приводит к миллионам ложных вилок. Поэтому к фиду предъявляется одно жесткое требование: оставаться быстрым и точным непрерывно, по каждому источнику.
Оба проекта входят в состав OddStorm.Company, группы компаний в сфере спортивных данных и арбитража. Ниже описано, как устроен пайплайн OddFeeds на базе FourA.
Более 250 миллионов запросов в месяц. Около 50 терабайт трафика. Повторное сканирование каждые 1-2 секунды. Ноль списаний за неудачный запрос.
Сканирование рынка каждые одну-две секунды
Коэффициенты меняются непрерывно, поэтому OddFeeds заново считывает их каждые 1-2 секунды по десяткам источников. С такой частотой объемы растут стремительно: более 250 миллионов запросов в месяц и около 50 терабайт трафика. Многие из этих источников защищены серьезными системами защиты от ботов, на чем большинство конфигураций для скрапинга начинает терять деньги.
Почему стандартный подход здесь не работает
На таком объеме расходы быстро накапливаются, и все зависит от модели тарификации инструмента. Некоторые сервисы берут оплату за каждую попытку, поэтому каждая блокировка означает выброшенные на ветер деньги, а при сотнях миллионов запросов неудачные попытки могут превысить стоимость полезных данных. Другие тарифицируют трафик, что кажется дешевым ровно до тех пор, пока объемы не вырастут: при ставке $0.30 за GB 50 терабайт в месяц обходятся в $15 000 в месяц, или $180 000 в год, еще до учета блокировок. Сверх того, наиболее сложные источники требуют реального браузера и чистого сетевого маршрута для загрузки, а делать это на каждом запросе медленно и дорого. Пайплайн, считывающий рынок каждую секунду, не может позволить себе таких накладных расходов.
Оплата только за успешный результат
В FourA неудачный запрос стоит ноль кредитов. Оплачивается только доставленный, валидный response. Это единое правило полностью меняет структуру счета: блокировки, таймауты и повторные попытки перестают суммироваться в чеке, а затраты соответствуют тем данным, которые OddFeeds реально получает. В таких масштабах нулевая стоимость ошибок определяет разницу между предсказуемым месячным бюджетом и расходами, которые неконтролируемо растут по каждому источнику.
Использование самого легкого из подходящих методов
FourA не отправляет все запросы одинаково. Простые источники считываются напрямую через легковесный движок запросов. Когда источник начинает блокировать доступ, proxy endpoint с профилем браузера успешно забирает подавляющее большинство страниц самостоятельно, без запуска браузера. Для большинства защищенных источников этого достаточно, и затраты остаются низкими.
Только самые сложные источники требуют браузерного движка, да и то лишь один раз. Он загружает сайт как настоящий браузер и создает валидную, готовую к работе сессию. Затем эта сессия передается обратно легковесному движку, который повторно использует ее для получения свежих коэффициентов тысячи раз с минимальными затратами.
В итоге дорогой путь используется редко и оплачивается лишь однажды, распределяясь затем по длинной цепочке дешевых чтений. На графике ниже показана одна из таких сложных сессий: один затратный request для ее создания, а затем длинный хвост недорогих обновлений.
Auto, one-shot endpoint в FourA, принимающий URL и возвращающий контент, используется для обнаружения данных, когда OddFeeds размечает новый источник. Продакшн-пайплайн напрямую обращается к базовым endpoints для request, proxy и browser, оптимизируя стоимость в пересчете на запись.
Стабильная работа при защите источников
Источники ведут себя по-разному. Некоторые отдают коэффициенты только определенным странам. Другие проверяют каждый визит через challenge. FourA маршрутизирует каждый request через подходящую точку выхода и нужный движок, поэтому поток данных не прерывается без ручной перенастройки под каждый источник. Цель заключается не в усложнении ради усложнения. Это надежный пайплайн данных, который сохраняет работоспособность и точность при постоянных изменениях на стороне источников.
Результат
OddFeeds поддерживает live-поток коэффициентов объемом более 250 миллионов requests и 50 терабайт в месяц с обновлением каждые одну-две секунды. Затраты масштабируются пропорционально успешно полученным данным, а не попыткам или блокировкам. Сложные источники настраиваются один раз и затем считываются с минимальными затратами, при этом сбои ничего не стоят. Именно это позволяет фиду такого масштаба оставаться быстрым и экономичным.
Постройте свой пайплайн на этой же инфраструктуре
FourA служит платформой для OddFeeds: платите только за успешные requests, решайте проблемы со сложными источниками один раз и масштабируйтесь без роста расходов из-за ошибок. Начать бесплатно или посмотреть тарифы.