SlideShare a Scribd company logo
Экономичное
масштабирование
в облаках
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Бизнес маленький
- Неопределенные требования
- Крым не наш
-
Дано
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Легкость роста
- Простота обслуживания
- Образы
- Snapshots
- …
Возможности
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
1. Масштабирование приложения
Amazon Auto Scaling
- Load balancer
- Launch configuration
- Auto scaling group
- Scale Up и Scale Down policies
План действий
- Метрика: CPU
- Не паниковать
- Не тормозить
- Таймаут на действие
- Выбор порога
Scaling policy
* Thinking Clearly about Performance by Cary Millsap
http://queue.acm.org/detail.cfm?id=1854041
* Thinking Clearly about Performance by Cary Millsap
http://queue.acm.org/detail.cfm?id=1854041
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Приложение использует не только CPU
- Низкий порог срабатывания для большого
числа машин
Проблема
- Приложение использует не только CPU
- Низкий порог срабатывания для большого
числа машин
- Привязка к числу свободных workers
Проблема
Решение
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
Здесь должен быть крутой график, но его нет
- Число машин варьируется от
2 до 15
- Мы не паримся за нагрузку
- Ценник снизился в 4 раза
- …
Итог
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Система аукциона
- Без гарантий
- Дешевле на 50-93%
Spot instances
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
M3.large (CPUx2, RAM 7.5 G):
- 0.146$ - on demand instance
- 0.021$ - spot instance
С3.2xlarge (CPUx8, RAM 15 G):
- 0.478$ - on demand instance
- 0.0828$ - spot instance
Для сравнения
SpotOn demand
Scale Up:
1) Spot, если возможно
2) On demand, если нет Spot
Scale Down:
1) On demand, если есть лишние
2) Spot, если нельзя выключить On demand
Правила запуска/выключения
- Ценник упал еще в 4 раза
- Жаба довольна
Итог
или нет…
2. Ресайз картинок
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Неравномерная
нагрузка по времени
- Свадьба
Две проблемы
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Scale up, если текущее число машин меньше
(q_size + q_avg * MAX_PROCESS_TIME) //
(RESIZER_SPEED * MAX_PROCEED_TIME) + 1
- Scale down, если за последнее время не
требовалось столько машин
- Используем машины по полной, если
последний запуск был менее 55 минут назад
Правила запуска/выключения
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Образ не меняется
- Нужно обновлять код при запуске машины
- Долгая установка requirements.txt
- Усугубляется со временем
Проблема
- Образ не меняется
- Нужно обновлять код при запуске машины
- Долгая установка requirements.txt
- Усугубляется со временем
Проблема
- docker pull вместо git pull
Решение
- Оперативно ресайзим картинки
- Ценник снова упал в 4 раза
Итог
3. Задачи на подумать
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
Масштабируем
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
tasks:
- name: Provision a set of instances
ec2:
group: sg-xxxxxxxx
instance_type: m3.large
image: ami-13377331
region: eu-west-1
zone: eu-west-1a
aws_access_key: 'IDONTTELLYOU'
aws_secret_key: 'vErYsecreTAwskEY'
spot_price: 0.10
wait: true
exact_count: 1
count_tag:
Taks: very_cool_tag
instance_tags:
Name: very_cool_name
Task: very_cool_tag
register: ec2
- name: Add new instance to host group
add_host:
hostname={{ item.public_ip }}
groupname=launched
with_items: ec2.instances
when: instance_count > 0
- name: Wait for SSH to come up
wait_for:
host={{ item.public_dns_name }}
port=22 delay=10 timeout=320
state=started
with_items: ec2.instances
when: instance_count > 0
- name: Run task on instances
hosts: launched
sudo: True
gather_facts: False
vars:
- command: /usr/bin/python /foo/bar/do_some_stuff.py
roles:
- { role: deploy }
tasks:
- name: Do some very important things
do: some very important things
- name: Execute command in the screen
shell: /opt/scripts/run_task_in_screen.sh "{{ command }} --number {{
play_hosts.index(inventory_hostname) }} --total {{ play_hosts|count }} --shutdown"
Здесь должна быть
мораль, но ее нет
 Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects
- Email: 4spam@altimit.ru
- Skype: altimit66
- Telegram: @Altimit
Спамить сюда

More Related Content

Viewers also liked (20)

Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
 Moira: Realtime alerting, Алексей Ларьков, СКБ Контур  Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
it-people
 
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
 Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ... Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
it-people
 
Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
 Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново... Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
it-people
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
it-people
 
QAradise, Евгений Сабиров, Хост
 QAradise, Евгений Сабиров, Хост  QAradise, Евгений Сабиров, Хост
QAradise, Евгений Сабиров, Хост
it-people
 
Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
 Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост... Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
it-people
 
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
 Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур  Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
it-people
 
Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
 Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А... Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
it-people
 
Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
 Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур  Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
it-people
 
Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
 Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х... Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
it-people
 
Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
 Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва  Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
it-people
 
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
 Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab... Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
it-people
 
Профилирование распределенных систем, Александр Казаков, СКБ Контур
 Профилирование распределенных систем, Александр Казаков, СКБ Контур  Профилирование распределенных систем, Александр Казаков, СКБ Контур
Профилирование распределенных систем, Александр Казаков, СКБ Контур
it-people
 
Трансформация дизайнера, Александр Бурдин
Трансформация дизайнера, Александр БурдинТрансформация дизайнера, Александр Бурдин
Трансформация дизайнера, Александр Бурдин
it-people
 
Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
 Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур  Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
it-people
 
Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
 Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо... Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
it-people
 
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
 Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва  Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
it-people
 
Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
 Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб... Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
it-people
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
it-people
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
it-people
 
Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
 Moira: Realtime alerting, Алексей Ларьков, СКБ Контур  Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
Moira: Realtime alerting, Алексей Ларьков, СКБ Контур
it-people
 
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
 Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ... Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
it-people
 
Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
 Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново... Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Ново...
it-people
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
it-people
 
QAradise, Евгений Сабиров, Хост
 QAradise, Евгений Сабиров, Хост  QAradise, Евгений Сабиров, Хост
QAradise, Евгений Сабиров, Хост
it-people
 
Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
 Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост... Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
Естественный отбор: как из 100 таксистов получить 2-х программистов и не ост...
it-people
 
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
 Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур  Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
it-people
 
Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
 Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А... Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
Как сделать на Google Docs метрики, которые изменят жизнь компании? Максим А...
it-people
 
Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
 Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур  Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
Cообщество тестировщиков Екатеринбурга, Анастасия Ронжина, СКБ Контур
it-people
 
Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
 Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х... Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
Скрам, водопад и отдел тестирования в условиях перемен, Артём Аксёнов, ITM Х...
it-people
 
Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
 Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва  Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
Эффективная стратегия для роста IT стартапа, Артур Кузяков, DriverPack, Москва
it-people
 
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
 Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab... Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...
it-people
 
Профилирование распределенных систем, Александр Казаков, СКБ Контур
 Профилирование распределенных систем, Александр Казаков, СКБ Контур  Профилирование распределенных систем, Александр Казаков, СКБ Контур
Профилирование распределенных систем, Александр Казаков, СКБ Контур
it-people
 
Трансформация дизайнера, Александр Бурдин
Трансформация дизайнера, Александр БурдинТрансформация дизайнера, Александр Бурдин
Трансформация дизайнера, Александр Бурдин
it-people
 
Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
 Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур  Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
Xamarin: кроссплатформенные грабли, Дмитрий Моисеев, СКБ Контур
it-people
 
Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
 Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо... Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
Взгляд на работу Агентства со стороны Клиента. Как нужно и как не нужно рабо...
it-people
 
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
 Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва  Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
it-people
 
Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
 Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб... Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
Appium+Cucumber+Ruby: мобильная автоматизация малой кровью, Андрей Малых, Аб...
it-people
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
it-people
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
it-people
 

Similar to Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects (20)

Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования
Yandex
 
Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?
Yandex
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
Microsoft
 
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Oleg Poludnenko
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
Michael Karpov
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
kuchinskaya
 
Организация нагрузочного тестирования — Алексей Лавренюк
Организация нагрузочного тестирования — Алексей ЛавренюкОрганизация нагрузочного тестирования — Алексей Лавренюк
Организация нагрузочного тестирования — Алексей Лавренюк
Yandex
 
Вечный вопрос измерения времени
Вечный вопрос измерения времениВечный вопрос измерения времени
Вечный вопрос измерения времени
Tatyanazaxarova
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Fwdays
 
Разработка SPA на мультисайтовом highload-проекте
Разработка SPA на мультисайтовом highload-проектеРазработка SPA на мультисайтовом highload-проекте
Разработка SPA на мультисайтовом highload-проекте
Andrew Gumenniy
 
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
GeeksLab Odessa
 
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
solit
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practices
Alexey Andreev
 
Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)
Alexey Lesovsky
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
Fwdays
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
Ivan Grishaev
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управления
MATLAB
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
Ontico
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantom
yaevents
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
MATLAB
 
Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования
Yandex
 
Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?
Yandex
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
Microsoft
 
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Oleg Poludnenko
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
Michael Karpov
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
kuchinskaya
 
Организация нагрузочного тестирования — Алексей Лавренюк
Организация нагрузочного тестирования — Алексей ЛавренюкОрганизация нагрузочного тестирования — Алексей Лавренюк
Организация нагрузочного тестирования — Алексей Лавренюк
Yandex
 
Вечный вопрос измерения времени
Вечный вопрос измерения времениВечный вопрос измерения времени
Вечный вопрос измерения времени
Tatyanazaxarova
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Fwdays
 
Разработка SPA на мультисайтовом highload-проекте
Разработка SPA на мультисайтовом highload-проектеРазработка SPA на мультисайтовом highload-проекте
Разработка SPA на мультисайтовом highload-проекте
Andrew Gumenniy
 
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
JSLab. Григорий Перетяка "Разработка SPA на мультисайтовом highload-проекте"
GeeksLab Odessa
 
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
Solit 2014, Scrum для большого проекта. Как это работает на практике, Слисенк...
solit
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practices
Alexey Andreev
 
Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)
Alexey Lesovsky
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
Fwdays
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
Ivan Grishaev
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управления
MATLAB
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
Ontico
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantom
yaevents
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
MATLAB
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
it-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
it-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
it-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
it-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
it-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
it-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
it-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
it-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
it-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
it-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
it-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
it-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
 
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
it-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
it-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
it-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
it-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
it-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
it-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
it-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
it-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
it-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
it-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
it-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
it-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
 

Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects

  • 6. - Бизнес маленький - Неопределенные требования - Крым не наш - Дано
  • 8. - Легкость роста - Простота обслуживания - Образы - Snapshots - … Возможности
  • 14. - Load balancer - Launch configuration - Auto scaling group - Scale Up и Scale Down policies План действий
  • 15. - Метрика: CPU - Не паниковать - Не тормозить - Таймаут на действие - Выбор порога Scaling policy
  • 16. * Thinking Clearly about Performance by Cary Millsap http://queue.acm.org/detail.cfm?id=1854041
  • 17. * Thinking Clearly about Performance by Cary Millsap http://queue.acm.org/detail.cfm?id=1854041
  • 19. - Приложение использует не только CPU - Низкий порог срабатывания для большого числа машин Проблема
  • 20. - Приложение использует не только CPU - Низкий порог срабатывания для большого числа машин - Привязка к числу свободных workers Проблема Решение
  • 22. Здесь должен быть крутой график, но его нет - Число машин варьируется от 2 до 15 - Мы не паримся за нагрузку - Ценник снизился в 4 раза - … Итог
  • 24. - Система аукциона - Без гарантий - Дешевле на 50-93% Spot instances
  • 26. M3.large (CPUx2, RAM 7.5 G): - 0.146$ - on demand instance - 0.021$ - spot instance С3.2xlarge (CPUx8, RAM 15 G): - 0.478$ - on demand instance - 0.0828$ - spot instance Для сравнения
  • 28. Scale Up: 1) Spot, если возможно 2) On demand, если нет Spot Scale Down: 1) On demand, если есть лишние 2) Spot, если нельзя выключить On demand Правила запуска/выключения
  • 29. - Ценник упал еще в 4 раза - Жаба довольна Итог
  • 33. - Неравномерная нагрузка по времени - Свадьба Две проблемы
  • 36. - Scale up, если текущее число машин меньше (q_size + q_avg * MAX_PROCESS_TIME) // (RESIZER_SPEED * MAX_PROCEED_TIME) + 1 - Scale down, если за последнее время не требовалось столько машин - Используем машины по полной, если последний запуск был менее 55 минут назад Правила запуска/выключения
  • 38. - Образ не меняется - Нужно обновлять код при запуске машины - Долгая установка requirements.txt - Усугубляется со временем Проблема
  • 39. - Образ не меняется - Нужно обновлять код при запуске машины - Долгая установка requirements.txt - Усугубляется со временем Проблема - docker pull вместо git pull Решение
  • 40. - Оперативно ресайзим картинки - Ценник снова упал в 4 раза Итог
  • 41. 3. Задачи на подумать
  • 45. tasks: - name: Provision a set of instances ec2: group: sg-xxxxxxxx instance_type: m3.large image: ami-13377331 region: eu-west-1 zone: eu-west-1a aws_access_key: 'IDONTTELLYOU' aws_secret_key: 'vErYsecreTAwskEY' spot_price: 0.10 wait: true exact_count: 1 count_tag: Taks: very_cool_tag instance_tags: Name: very_cool_name Task: very_cool_tag register: ec2 - name: Add new instance to host group add_host: hostname={{ item.public_ip }} groupname=launched with_items: ec2.instances when: instance_count > 0 - name: Wait for SSH to come up wait_for: host={{ item.public_dns_name }} port=22 delay=10 timeout=320 state=started with_items: ec2.instances when: instance_count > 0
  • 46. - name: Run task on instances hosts: launched sudo: True gather_facts: False vars: - command: /usr/bin/python /foo/bar/do_some_stuff.py roles: - { role: deploy } tasks: - name: Do some very important things do: some very important things - name: Execute command in the screen shell: /opt/scripts/run_task_in_screen.sh "{{ command }} --number {{ play_hosts.index(inventory_hostname) }} --total {{ play_hosts|count }} --shutdown"
  • 49. - Email: [email protected] - Skype: altimit66 - Telegram: @Altimit Спамить сюда

Editor's Notes

  • #2: Вступление
  • #3: О себе О компании -> Основное приложение, Специфика
  • #4: свадебным порталом… Задачи у нас для веба совершенно типичные обслуживать пользователей, хранить информацию в базе, что-то где-то кэшировать, а еще у нас есть фотографии.
  • #5: О докладе. Для кого, зачем и почему? Подкинуть пару идей, как решить задчи
  • #6: Давным давно ->
  • #7: Бизнес только начинался Требования неопределенные
  • #9: Легкость, простота, образы, снапшоты, а еще…
  • #10: А еще это позволяло быть модными … Приложение росло –> Почасовая оплата
  • #11: Почасовая оплата По ночам все спят Трата денег
  • #12: Жаба Начинаем масштабироваться
  • #13: Масштабируем приложение Большая часть расходов
  • #14: Об Autoscaling
  • #15: Вкратце о настройке
  • #16: Мы хотим: Не реагировать слишком быстро Не тормозить Таймаут на действие Метрика -> CPU Правильный выбор порогов…
  • #17: Зависимость отклика от загрузки ресурса Гипербола Все ресурсы – это очереди Колено (изгиб) -> зависимость от числа потоков
  • #18: Зависимость положения «колена» от числа потоков Ссылка на доклад
  • #19: Итоговая версия policy
  • #20: Не идеальна Проблема -> Решение
  • #21: Решение
  • #22: Внешний скрипт, zabbix, бинарные метрики
  • #23: Итог Число машин Не следим за нагрузкой Ценник снизился Но вот жаба до сих пор осталась
  • #24: Но вот жаба до сих пор осталась
  • #25: О спотах
  • #26: О ценах
  • #27: О ценах
  • #28: Описание схемы с двумя группами Особенности Scale Up/Scale down
  • #29: Как включать/выключать инстансы
  • #30: Жаба довольна…
  • #31: … или нет
  • #32: Постановка задачи
  • #33: Описание архитектуры
  • #34: Две проблемы
  • #35: Много фото Задержки Ручной тюнинг
  • #36: Итоговая архитектура
  • #37: Как включать/выключать инстансы Особенности биллинга в амазоне
  • #38: Бизнес требования
  • #39: Новая проблема
  • #40: Используем docker
  • #41: Итог по ресайзерам Но есть еще третья задача
  • #42: Описание проблемы
  • #43: В один поток выполняем месяц и получаем результат, когда он не актуален
  • #44: А можно запустить на 30 серверах и получить результат за день. В облаке платим за время
  • #45: Используем ansible
  • #46: Плейбук Ставим большой ценник на споты
  • #47: Screen, Shutdown, Номер задач
  • #48: Небольшое заключительное слово. Пара слов о других сервисах
  • #49: Вопросы
  • #50: Контакты