![Page 1: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/1.jpg)
Экономичное масштабирование в облаках
![Page 2: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/2.jpg)
![Page 3: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/3.jpg)
![Page 4: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/4.jpg)
![Page 5: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/5.jpg)
![Page 6: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/6.jpg)
- Бизнес маленький - Неопределенные требования - Крым не наш -
Дано
![Page 7: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/7.jpg)
![Page 8: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/8.jpg)
-Легкость роста - Простота обслуживания -Образы - Snapshots - …
Возможности
![Page 9: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/9.jpg)
![Page 10: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/10.jpg)
![Page 11: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/11.jpg)
![Page 12: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/12.jpg)
1. Масштабирование приложения
![Page 13: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/13.jpg)
Amazon Auto Scaling
![Page 14: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/14.jpg)
- Load balancer - Launch configuration - Auto scaling group - Scale Up и Scale Down policies
План действий
![Page 15: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/15.jpg)
- Метрика: CPU - Не паниковать - Не тормозить - Таймаут на действие - Выбор порога
Scaling policy
![Page 16: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/16.jpg)
* Thinking Clearly about Performance by Cary Millsap http://queue.acm.org/detail.cfm?id=1854041
![Page 17: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/17.jpg)
* Thinking Clearly about Performance by Cary Millsap http://queue.acm.org/detail.cfm?id=1854041
![Page 18: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/18.jpg)
![Page 19: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/19.jpg)
- Приложение использует не только CPU - Низкий порог срабатывания для
большого числа машин
Проблема
![Page 20: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/20.jpg)
- Приложение использует не только CPU - Низкий порог срабатывания для
большого числа машин
- Привязка к числу свободных workers
Проблема
Решение
![Page 21: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/21.jpg)
![Page 22: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/22.jpg)
- Число машин варьируется от 2 до 15 - Мы не паримся за нагрузку - Ценник снизился в 4 раза - …
Итог
![Page 23: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/23.jpg)
![Page 24: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/24.jpg)
- Система аукциона - Без гарантий - Дешевле на 50-93%
Spot instances
![Page 25: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/25.jpg)
![Page 26: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/26.jpg)
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
Для сравнения
![Page 27: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/27.jpg)
SpotOn demand
![Page 28: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/28.jpg)
Scale Up: 1) Spot, если возможно 2) On demand, если нет Spot
Scale Down: 1) On demand, если есть лишние 2) Spot, если нельзя выключить On
demand
Правила запуска/выключения
![Page 29: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/29.jpg)
- Ценник упал еще в 4 раза - Жаба довольна
Итог
![Page 30: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/30.jpg)
или нет…
![Page 31: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/31.jpg)
2. Ресайз картинок
![Page 32: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/32.jpg)
![Page 33: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/33.jpg)
- Неравномерная нагрузка по времени
- Свадьба
Две проблемы
![Page 34: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/34.jpg)
![Page 35: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/35.jpg)
![Page 36: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/36.jpg)
- Scale up, если текущее число машин меньше
(q_size + q_avg * MAX_PROCESS_TIME) // (RESIZER_SPEED * MAX_PROCEED_TIME) + 1
- Scale down, если за последнее время не требовалось столько машин
- Используем машины по полной, если последний запуск был менее 55 минут назад
Правила запуска/выключения
![Page 37: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/37.jpg)
![Page 38: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/38.jpg)
- Образ не меняется - Нужно обновлять код при запуске
машины - Долгая установка requirements.txt - Усугубляется со временем
Проблема
![Page 39: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/39.jpg)
- Образ не меняется - Нужно обновлять код при запуске
машины - Долгая установка requirements.txt - Усугубляется со временем
Проблема
- docker pull вместо git pull
Решение
![Page 40: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/40.jpg)
- Оперативно ресайзим картинки - Ценник снова упал в 4 раза
Итог
![Page 41: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/41.jpg)
3. Задачи на подумать
![Page 42: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/42.jpg)
![Page 43: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/43.jpg)
Масштабируем
![Page 44: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/44.jpg)
![Page 45: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/45.jpg)
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
![Page 46: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/46.jpg)
- 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"
![Page 47: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/47.jpg)
Здесь должна быть мораль, но ее нет
![Page 48: Экономное масштабирование в облаке, Иван Кокорин, Vostok Projects](https://reader034.vdocuments.mx/reader034/viewer/2022052606/58f067ad1a28ab002b8b4685/html5/thumbnails/48.jpg)