Upload
eatdog
View
48
Download
2
Embed Size (px)
Citation preview
API в SAAS, с облаком и без
ресурсы, SLA, балансировка, расширяемость и всякая чепуха
Обо мне
• Егор Назаркин
• So;ware Engineer
• Киев, Украина
Easy-to-use Machine Learning service that helps people build models and predict on them.
внутри платформы
intake transform build
serve
client
внутри платформы
примеры использованияприложение на входе на выходе
рекомендации товаров клик по позиции список “похожих”
исследование и предсказание
цены
недвижимость, авиабилеты
динамика и склонность
(вероятность) изменения
поиск мошенничества
атрибуты транзакции
принять/отклонить транзакцию
вовлеченность в игру
игровая активность
изменение сложности
типичное (wsgi) приложение
Web Appclient reverse proxy
конфигурация
round robin
Web Appclient reverse proxy balancer
конфигурация
Проблемы
• предсказания делаются на обученых моделях
• модель может занимать гигабайты памяти
• обработка запроса длится от 20 до 600 миллисекунд
• загрузка в память занимает в 10-30 раз больше времени
Каждому узлу по собственной модели
1
2
3
4
5
6node
client reverse proxy balancer
Hash ключ
Конфигурация
Пропадание узла• умирает один сервер — нужно перебалансировать всю систему
4 / 12 3 / 12
1 2 3
4 5 6
7 8 9
10 11 12
1 2 3 4
5 6 7 8
9 10 11 12
Consistent hash10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
1
23
4
Consistent hash10.0.0.1
10.0.0.210.0.0.4
1
23
4
С nginx
160 * weight
hGps://www.nginx.com/resources/wiki/modules/consistent_hash/
И что?
Почему не подходит?• пассивная проверка хоста
• необходимость обновления конфигурации на всех узлах (вспомнить про consul)
• нужен “прогрев” моделей в кеше узла
• масштабирование?
Структура кластераload balancer
workermodel
node
router
Architecture
worker1
worker2
worker3
uWSGI emperor modesentinelcontroller +
algorithmAPI
nginx
uWSGI
fill_vassals.py
Controller.lua
Controller.py
Controller.py
Controller.py
Controller.py
Controller.py
Mappers
• Random
• Hash
• Hash Ring
• Model weight
Random
Hash
Model weight
m1 m2
h1 h2 h3 h4
Model weight
Hash ring
Hash ring
Итоги
• Know your instrument!
• Сопротивляйся
• Минимизируй зоопарк решений
• Старайся уменьшить объем работы
• Конфигурация
• Расширяемость
• Тестирование
Ссылки• So You Wanna Go On-prem Do Ya — hGp://bit.ly/1THE0CS
• HAProxy zero-downtime, zero-delay reloads with multibinder — hGp://bit.ly/2gp4dwC
• Autoscaled Internal Load Balancing using HAProxy and Consul on Compute Engine — h!ps://goo.gl/ZZPDCr
• load balancing и оптимальная загрузка кластера — hGps://goo.gl/kbDTP8
• Prediction API as a service on premise solution — hGp://bit.ly/2hkzna1
Вопросы?