# Понедельник 33 твита
Всем привет! На этой неделе с вами @mfilippovich – CTO at hyperadx.com
11:31hyperadx.com – это мобильная рекламная сеть, в основном мы позиционируемся на native advertising и видео (скоро!)
11:33Планирую рассказать как мы боремся маленькой командой из 3х человек на бэкенде с жёсткими требованиями рекламной отрасли:
11:43@backendsecret нельзя быть медленным и сервис всегда должен работать
11:46Что используем: ruby, docker, terraform и AWS, всё что связано с отдачей рекламы крутится на jruby в регионах: США/Европа
11:53Из волнующих тем про docker и сборку логов – кто как решает эту проблему?
12:23Мы пришли к тому, что пишем из контейнера в unix socket в fluentd.org который каждую секунду флашит всё в ноды агрегаторы
12:25@backendsecret на хосте сислог, который прокидывает все в логстеш, на основн мета информации либо парсится в json, либо как текст.12:37
@dcromster в секунду на 2х 8 ядерных виртуальных амазоновских инстансах
попугаи в виде ставок на рекламу twitter.com/backendsecret/…
13:45@backendsecret Как дела с DMP? где берете, если не секрет?
Мы не пользуемся, по настоящему ценными данными никто не будет делиться так twitter.com/dm_halai/statu…
13:56@backendsecret А как быстро отрабатывает весь flow (от клика до показа) c RTB?
Если мы не хотим делать ставку (ненужный формат, гео) – отклоняем за < 1мсек, если решаем подбирать кампанию – 4мсе… twitter.com/i/web/status/7…
14:12Если мы не хотим делать ставку (ненужный формат, гео) – отклоняем за < 1мсек, если решаем подбирать кампанию – 4мсе… twitter.com/i/web/status/7…
К этому нужно добавить ещё время сети twitter.com/backendsecret/…
14:17К этому нужно добавить ещё время сети twitter.com/backendsecret/…
Если запрос идёт с устройства, на всё может уйти и 200-500мсек включая сеть, если она плохая twitter.com/backendsecret/…
14:20@backendsecret А что используйте для OLAP-а? Делаете ли какую-то оптимизацию на основе прошлых компаний, рекуррентности?
Раньше был mysql, но ушли на колоночную БД от яндекса – ClickHouse, на бэкенде да, оптимизируем кампании, строим ве… twitter.com/i/web/status/7…
14:35@backendsecret и кто скажет что ruby медленный )
Главное чтобы большая часть библиотек была на java :) twitter.com/ajieks/status/…
14:36@backendsecret ruby? Ну опять неделя мимо.
Да руби говно, но оно работает, плавает вроде twitter.com/mr_apt/status/…
14:39@backendsecret а у вас запросы по http идут?
да, обычный http, netty очень хорошо справляется twitter.com/alexgorkunov/s…
15:20@backendsecret c чем больше воюете: aws, docker .. whatever?
Больше всего воюем с ECS он как-то первое время плохо собирал старые контейнеры, а мы часто деплоимся и в результат… twitter.com/i/web/status/7…
15:22@backendsecret воу воу, кликхаус, рассказывай!
Большой респект яндексу за такую БД, кому надо что-то для OLAP – очень хороший выбор twitter.com/OhTheAnguish/s…
15:28@backendsecret если не руби, то что?;) кто выбрал его как основной язык?)
Если бы у нас был конкурс на самый оригинальный стэк, мы бы тогда clojure выбрали? :) twitter.com/lisovskyvlad/s…
15:29@backendsecret у вас сколько на биддере активных кампаний в среднем? Вы используете статический предикт или у вас есть ML-модели?
Активных кампаний несколько сотен, объявлений – больше тысячи. cqengine очень быстро ищет по индексам в памяти на д… twitter.com/i/web/status/7…
15:33@backendsecret у вас сколько на биддере активных кампаний в среднем? Вы используете статический предикт или у вас есть ML-модели?
ML мы пока не используем, мы вообще с весны запустились :) twitter.com/qwwdfsad/statu…
15:33@backendsecret ну без ML и профилей пользователя из базы 4 мс это относительно много.
Поздравляю с запуском :)
А тут уже виноват jruby – надо профилировать, но нас это пока устраивает twitter.com/qwwdfsad/statu…
15:42@backendsecret ну без ML и профилей пользователя из базы 4 мс это относительно много.
Поздравляю с запуском :)
Профили будем хранить обязательно и поэтому динамично таргетироваться на cqengine очень удобно – ищем мы быстрее 4м… twitter.com/i/web/status/7…
15:43@backendsecret ну без ML и профилей пользователя из базы 4 мс это относительно много.
Поздравляю с запуском :)
> Поздравляю с запуском :)
Спасибо :) А вы тоже с рекламой связаны? twitter.com/qwwdfsad/statu…
@backendsecret ага, работаю в rutarget/segmento
У вас, наверное, scala/spark? twitter.com/qwwdfsad/statu…
15:49@backendsecret а как поможет cqengine с профилями? Про 4 мс: возможно это просто gc: ...
Он упростит сложные таргетинги, например, профиль наполняется данными от приложения, которые мы хотим использовать… twitter.com/i/web/status/7…
16:00@backendsecret а как поможет cqengine с профилями? Про 4 мс: возможно это просто gc: ...
и мы сможем сматчить кампании, которые, например, идут на пользователя в конкретном приложении с конкретным уровнем… twitter.com/i/web/status/7…
16:01@backendsecret имхо throughput >latency в RTB, потому что таймаута в 100/50/75 мс хватает за глаза, а вот железо само себя не купит...
Да, главное чтобы эти 100/50/75 мсек были ожидания сети, а не цпу, а то на 1 ядро выйдет мало RPS, а у вас своё жел… twitter.com/i/web/status/7…
16:03@backendsecret ну без ML и профилей пользователя из базы 4 мс это относительно много.
Поздравляю с запуском :)
А какого рода у вас ML? Это какую-то реальную пользу приносит? twitter.com/qwwdfsad/statu…
16:04@backendsecret боюсь это NDA, но его много разного (больше четырех разных моделей). Экономит много денег, дает много business-value
насчёт look a like – согласен, полезно 100% twitter.com/qwwdfsad/statu…
16:14Из волнующих тем про docker и сборку логов – кто как решает эту проблему?
Ни у кого нет никакой экзотики? :) twitter.com/backendsecret/…
20:42Всем спасибо и хорошей недели!
0:51# Вторник 20 твитов
Всем доброго утра! Многие из вас уже используют docker – предлагаю обменяться опытом о нём
10:26Всем доброго утра! Многие из вас уже используют docker – предлагаю обменяться опытом о нём
Что используете для запуска контейнеров? AWS ECS, kubernetes, cloud66, deis, flynn, mesos? Или что-то ещё? twitter.com/backendsecret/…
10:28@backendsecret запоздалый вопрос по JRuby - какую используете, 9000? Как она в проде, достаточно стабильна? Не пробовали Truffle + Graal?
Мы используем 9.1.2.0 twitter.com/flex0id/status…
10:30@backendsecret не вызвало неудобств отсутствие update'ов?
У нас только immutable данные – мы статистику не изменяем, только добавляем новые данные twitter.com/artsabirov/sta…
10:32Чаще оркестрация контейнеров не нужна. Ну то есть это полезная штука, но это не главное в контейнерах и надо понима… twitter.com/i/web/status/7…
А почему не нужна? twitter.com/ctrlok/status/…
10:52@backendsecret неужели в каждом приложении необходим мгновенный перезапуск на любой ноде кластера?
Не то чтобы перезапуск: удобно иметь нормальный рестарт, с выводом из балансировщика, поддержка N% живых контейнеро… twitter.com/i/web/status/7…
11:46Не то чтобы перезапуск: удобно иметь нормальный рестарт, с выводом из балансировщика, поддержка N% живых контейнеро… twitter.com/i/web/status/7…
Всё это можно сделать руками, но это время и поддержка twitter.com/backendsecret/…
11:47да есть же куча утилит которые это умеют :) не бином же ньютона и делалось ещё до контейнеров. twitter.com/backendsecret/…
ну так никто не спорит, что делалось :) а зачем делать что-то если можно не делать? twitter.com/ctrlok/status/…
11:54@backendsecret ECS, но не очень им доволен
Да, мы тоже его используем, надеюсь его доведут до ума :) twitter.com/Dgtl_philosoph…
12:01@backendsecret расскажите, как вы его в прод возите
Мы используем AWS ECS, удобно когда у нас к вечеру в 2 раза вырастает нагрузка и мы подключаем новые ноды и запуска… twitter.com/i/web/status/7…
12:03ну то есть я понимаю месос что б менеджить консьюмеры кафки или какие-то другие штуки. Но чаще всего это лишний сло… twitter.com/i/web/status/7…
Тут вопрос компромисов – для нас лучше заплатить за лишний слой, но не делать какую-то лишнюю работу, для кого это… twitter.com/i/web/status/7…
12:05заплатить это не только деньги. Это время и сложность поддержки и дебага. twitter.com/backendsecret/…
Вот мы и сэкономили время :) Компромис на то и компромис, что это удобное решение в конкретной ситуации, нас больше… twitter.com/i/web/status/7…
12:08заплатить это не только деньги. Это время и сложность поддержки и дебага. twitter.com/backendsecret/…
Вы не наталкивались на залипания докера – github.com/docker/docker/… twitter.com/ctrlok/status/…
12:10@dmitry_kalachov @backendsecret 1/2 Нет нормальной дистриьюции между AZ -- она работает только когда деплоишь, но не при изменении стэка.14:52
@dmitry_kalachov @backendsecret Когда выключаешь агент, ecs это видит, но не делает ребалансинг. Нет API для проверки exit-codов контейнеров14:52
@backendsecret Docker Cloud (бывший Tutum). Очень limited, но более или менее все есть и очень lightweight.
Насколько я помню он работал поверх какого-то хостинга? по сравнению с ECS как оцениваете? twitter.com/mkuleshov/stat…
15:39@backendsecret у нас свое решение stups.io
У вас, наверное, большая команда инфраструктурой занимается? А как всё происходило до stups, если не секрет? twitter.com/meln1k/status/…
16:13@backendsecret mesos, сильных глюков на небольшом деплойменте не замечали22:26
@artsabirov @backendsecret призываю всех контрибьютить в #clickhouse, особенно кто использует. документация, репорты22:27
@artsabirov @backendsecret ага, тоже внедрили #clickhouse. Updates можно сделать, если не часто
А где используете? Тоже для аналитики? twitter.com/f1yegor/status…
22:29# Среда 11 твитов
Всем хорошего дня! Я тут заметил, что многих заинтересовало использование ClickHouse, предлагаю поговорить о нём ну и о других колоночных БД
11:47Всем хорошего дня! Я тут заметил, что многих заинтересовало использование ClickHouse, предлагаю поговорить о нём ну и о других колоночных БД
Мы его использовали из-за скорости, хорошего сжатия и стабильности. Также из-за различных Engine, например… twitter.com/i/web/status/7…
11:54Мы его использовали из-за скорости, хорошего сжатия и стабильности. Также из-за различных Engine, например… twitter.com/i/web/status/7…
Но есть минусы – для работы кластера нужен zookeeper twitter.com/backendsecret/…
12:06@backendsecret а для тех, кто слушает подкасты, есть 45-й выпуск bit.ly/2a4SSwT про ClickHouse12:06
@backendsecret зукипер настолько удобная штука, что
а) Используется в куче продуктов, поэтому обычно все равно есть
...
Да, штука полезная, но мы её просто до этого не использовали нигде, если бы была kafka, то zookepeer уже бы стоял :) twitter.com/qwwdfsad/statu…
12:12Если кто не следит: MariaDB взялись на разработку своего Column Store, на базе InfiniDB – mariadb.com/kb/en/mariadb/…
12:14Если кто не следит: MariaDB взялись на разработку своего Column Store, на базе InfiniDB – mariadb.com/kb/en/mariadb/…
Сначала года делают (насколько я помню) в рассылке регулярно предлагают тестировать Alpha, релиза пока не было twitter.com/backendsecret/…
12:19@backendsecret а хадупа для аналитики у вас нет? :)
Пока не возникало нужды, у нас всё достаточно просто – а чем проще, тем лучше :) twitter.com/qwwdfsad/statu…
12:23@backendsecret а хадупа для аналитики у вас нет? :)
А вы используете? twitter.com/qwwdfsad/statu…
12:23Если кто не следит: MariaDB взялись на разработку своего Column Store, на базе InfiniDB – mariadb.com/kb/en/mariadb/…
Показательно, что на базе MySQL нет успешных продуктов для аналитики: infinidb, Infobright twitter.com/backendsecret/…
12:57Показательно, что на базе MySQL нет успешных продуктов для аналитики: infinidb, Infobright twitter.com/backendsecret/…
Когда на базе PostgreSQL: citusdb, paraccel, greenplum... twitter.com/backendsecret/…
12:58# Пятница 2 твита
Всем пятницы! Это время для хороших холиваров – можно устроить срач на тему какой стэк надо было выбрать для рекламной сети – кто за?
11:59@backendsecret в чем холивар? И так понятно что elixir
Вот и порешили :) twitter.com/Shiroginne/sta…
17:15# Суббота 4 твита
@backendsecret упомянул бы кто на чем клепать всякие дашборды, чарты для пользователей (фронт для стека).
Мы шли неинтересным путём – использовали что идёт в бутстрап теме и дорабатывали под свои нужды twitter.com/nick_jastix/st…
13:02@backendsecret упомянул бы кто на чем клепать всякие дашборды, чарты для пользователей (фронт для стека).
Но если говорить о фронтенде мне больше всего импонирует подход clojurescript – немного пробовал и только положител… twitter.com/i/web/status/7…
13:03@backendsecret Особенно если использовать figwheel – youtube.com/watch?v=j-kj2q…
13:04@backendsecret И лидер у clojure очень интересный youtube.com/results?search…
13:09# Воскресенье 5 твитов
@backendsecret вы рекламная сеть, как вы боритесь с фродом (накрутки показов, кликов и т.д.)?
Самые основные методы – это определение аномальной активности в приложении: распределение запросов по пользователям… twitter.com/i/web/status/7…
11:49Самые основные методы – это определение аномальной активности в приложении: распределение запросов по пользователям… twitter.com/i/web/status/7…
Распределения по городам/ос/версиям, похожие юзерагенты, инструменты типа forensiq.com twitter.com/backendsecret/…
11:50Распределения по городам/ос/версиям, похожие юзерагенты, инструменты типа forensiq.com twitter.com/backendsecret/…
Но лучше всего помогает оценка от рекламодателя – реклама покупается чаще всего для установок моб. приложений и ест… twitter.com/i/web/status/7…
11:53Но лучше всего помогает оценка от рекламодателя – реклама покупается чаще всего для установок моб. приложений и ест… twitter.com/i/web/status/7…
Некоторые системы аналитики тоже стараются помогать в этом вопросе – appsflyer.com/devicerank/ twitter.com/backendsecret/…
11:55@backendsecret ну без ML и профилей пользователя из базы 4 мс это относительно много.
Поздравляю с запуском :)
Ради интереса, а какое у вас железо? Большая часть времени у нас уходит на github.com/google/openrtb twitter.com/qwwdfsad/statu…
12:26# Ссылки
other
- http://hyperadx.com/
- https://github.com/npgall/cqengine
- https://github.com/docker/docker/issues/24446
- https://github.com/google/openrtb
- http://www.fluentd.org/
- http://bit.ly/2a4SSwT
- https://mariadb.com/kb/en/mariadb/mariadb-columnstore/
- https://www.youtube.com/watch?v=j-kj2qwJa_E
- https://www.youtube.com/results?search_query=rich+hickey
- http://forensiq.com/
- https://www.appsflyer.com/devicerank/