SlideShare a Scribd company logo
1 of 18
Download to read offline
Autoscaling for fun and profit
Alexander Demidko,
Software Engineer @ Metamarkets
API
Kafka Druid
0.5PB сырых входящих/день => $$$$
API
Kafka Druid
Batch – EC2 Spot :)
Real-time – EC2 On-Demand $-(
• Быстро реагировать
• Выбирать стратегию:

A) +10 контейнеров (30 мин)=> –10 контейнеров

B) +40 контейнеров (20 мин)=> –40 контейнеров

• Учитывать прогнозы:

объем входящих данных = f(время)

пропускная способность = g(контейнеров)
Monte Carlo Tree Search
стоимость = железо + пенальти за задержку
число контейнеров
penalty(s, l)(x) = (atan(x*s – l*s) + atan(l*s)) / (0.5*π + atan(l*s))
• Selection - выбираем, где строить новый узел (exploration VS exploitation tradeoff)
• Expansion - строим его :)
• Simulation - эвристически оцениваем, во сколько он обойдется
• Backpropagation - обновляем стоимости решений в дереве
Simulation
Уменьшение размерности дерева
• Дискретизация числа контейнеров
• Дискретизация времени
Guardian
job_A - 5 => 10 контейнеров
job_B - 8 => 6 контейнеров
job_C - 15 => 20 контейнеров
job_A - 5 => 15 контейнеров
job_D - 2 => 4 контейнеров
Health monitoring
t_curr t_last
Kafka
Колебания: не можем точно выставить идеальное число контейнеров
Число Kafka партиций % Число контейнеров must be(0)
avg = 35100 / (24*60) ~ 24
Уменьшили объем железа почти в 2 раза
Математика/реализация: 20/80
Спасибо!

More Related Content

What's hot

Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Ontico
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationNikolay Samokhvalov
 
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графах
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графахПавел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графах
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графахYandex
 
СХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзорСХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзорVsevolod Shabad
 
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...Badoo Development
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)Vsevolod Shabad
 
Инфраструктура хранения для KADME Whereoil
Инфраструктура хранения для KADME WhereoilИнфраструктура хранения для KADME Whereoil
Инфраструктура хранения для KADME WhereoilVsevolod Shabad
 
Komarov borba za-miesto-urfu_2013
Komarov borba za-miesto-urfu_2013Komarov borba za-miesto-urfu_2013
Komarov borba za-miesto-urfu_2013Yandex
 
Ya c talk_02_10
Ya c talk_02_10Ya c talk_02_10
Ya c talk_02_10Yandex
 
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPCОблачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPCYury Novozhilov
 
Работа решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте АнгараРабота решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте АнгараYury Novozhilov
 
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...Mail.ru Group
 

What's hot (15)

Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentation
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графах
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графахПавел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графах
Павел Артёмкин — Разработка C++ API для реализации алгоритмов на больших графах
 
СХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзорСХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзор
 
HPCSolutions (c)2018
HPCSolutions  (c)2018HPCSolutions  (c)2018
HPCSolutions (c)2018
 
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)
 
Инфраструктура хранения для KADME Whereoil
Инфраструктура хранения для KADME WhereoilИнфраструктура хранения для KADME Whereoil
Инфраструктура хранения для KADME Whereoil
 
Komarov borba za-miesto-urfu_2013
Komarov borba za-miesto-urfu_2013Komarov borba za-miesto-urfu_2013
Komarov borba za-miesto-urfu_2013
 
Ya c talk_02_10
Ya c talk_02_10Ya c talk_02_10
Ya c talk_02_10
 
Chronicle Map
Chronicle MapChronicle Map
Chronicle Map
 
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPCОблачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
 
Работа решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте АнгараРабота решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте Ангара
 
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...
Евгений Некрасов (Mail.Ru Group): «Решение задачи Dstl Satellite Imagery Feat...
 

Similar to Autoscaling for fun and profit

Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Ontico
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015rusbase
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBSergey Petrunya
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...Ontico
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
Сверхоптимизация кода на Python
Сверхоптимизация кода на PythonСверхоптимизация кода на Python
Сверхоптимизация кода на Pythonru_Parallels
 
Сверхоптимизация кода на Python
Сверхоптимизация кода на PythonСверхоптимизация кода на Python
Сверхоптимизация кода на PythonCodeFest
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN searchNikolay Samokhvalov
 
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2rit2011
 
Ускорение сайта на стороне клиента
Ускорение сайта на стороне клиентаУскорение сайта на стороне клиента
Ускорение сайта на стороне клиентаrusonyx
 
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)Ontico
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
 
Ускорение сайта на стороне клиента
Ускорение сайта на стороне клиентаУскорение сайта на стороне клиента
Ускорение сайта на стороне клиентаyulia_k
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
 

Similar to Autoscaling for fun and profit (16)

Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDB
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Сверхоптимизация кода на Python
Сверхоптимизация кода на PythonСверхоптимизация кода на Python
Сверхоптимизация кода на Python
 
Сверхоптимизация кода на Python
Сверхоптимизация кода на PythonСверхоптимизация кода на Python
Сверхоптимизация кода на Python
 
High Load
High LoadHigh Load
High Load
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search
 
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
 
Ускорение сайта на стороне клиента
Ускорение сайта на стороне клиентаУскорение сайта на стороне клиента
Ускорение сайта на стороне клиента
 
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
 
Ускорение сайта на стороне клиента
Ускорение сайта на стороне клиентаУскорение сайта на стороне клиента
Ускорение сайта на стороне клиента
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
 

Autoscaling for fun and profit