📖 Ванечка платит за 100 серверов впустую
ПиццаЕдинорог запустил доставку в новом городе, и Ванечка подошёл к делу основательно.
Он посчитал: один инстанс спокойно обслуживает 1000 пользователей, в пиковые дни на сайт приходит 100 000 человек, значит нужно 100 инстансов. Ванечка поднял 100 инстансов. Навсегда. Чтобы уж наверняка.
Сайт не падал ни разу. Ванечка гордился собой ровно до первого числа следующего месяца, когда пришёл счёт от облачного провайдера🤪
Он открыл статистику. В обычные дни на сайте было 10 000 человек, десять инстансов работали, девяносто грелись впустую и выставляли счёт.
🙄 ПиццаЕдинорог заглянул в счёт и присвистнул.
- Ванечка, ты нанял сто пиццайоло в круглосуточную смену. В пятницу вечером они все при деле, спору нет. А во вторник в одиннадцать утра у нас один дед с кофе и девяносто девять человек смотрят, как он его пьёт.
- Так а как иначе? Мне же надо выдержать пятницу!
- Надо, но не постоянно. У тебя два варианта. Первый твой: всегда держать максимум, 100 инстансов. Пик выдержишь всегда, тут не поспоришь, зато в спокойные дни платишь за 90 машин, которые никому не нужны. Второй: держать ровно столько, сколько нужно прямо сейчас. Для этого нужен механизм, который делает две вещи.
а) Мониторит нагрузку, например загрузку процессора на инстансах.
б) Когда она доходит до порога, скажем 90%, сам поднимает ещё один инстанс и раскидывает на него трафик. Без тебя, ночью, в отпуске, когда угодно.
- А когда нагрузка спала, он так же сам гасит лишние машины. Как подменная смена: очередь выросла, вызвали ещё двоих, схлынула, отпустили домой.
- И это называется...
- Автоматическое масштабирование. Динамическое изменение количества серверов в зависимости от трафика.
- А порог именно 90%? Записываю.
- Не записывай. Все эти цифры гипотетические, я их взял для наглядности, и тысяча пользователей на инстанс тоже. Свой настоящий порог ты не угадаешь и не вычитаешь в статье, его находят нагрузочным тестированием: гоняют инстанс, смотрят, где он начинает захлёбываться, и ставят порог заранее, до этой точки.
Ванечка настроил автомасштабирование, погасил лишние машины и в следующем месяце получил счёт, от которого не хотелось зарыться под землю.
💛💛💛💛💛
Что важно запомнить:
➡️ Держать пиковую мощность постоянно надёжно, но вы платите за простаивающее железо
➡️ Автомасштабирование меняет число инстансов автоматически, по метрике нагрузки
➡️ Механизм простой: мониторим метрику, достигли порога, поднимаем инстанс, нагрузка упала, гасим
➡️ Порог и число пользователей на один инстанс берут из нагрузочного теста, а не из головы
💛💛💛💛💛
🔸🔸🔸🔸🔸🔸
Арифметика из примера:
⚫️️1 инстанс = 1000 пользователей
⚫️️10 000 пользователей = 10 инстансов
⚫️️100 000 пользователей = 100 инстансов
Все числа условные, важна логика, а не цифры.
По каким метрикам обычно масштабируют:
💛Загрузка CPU - самая частая
💛Потребление памяти
💛Количество запросов в секунду на инстанс
💛Длина очереди необработанных задач
💛Время ответа
Два направления:
🔸Scale out - добавить инстансы при росте нагрузки
🔸Scale in - убрать лишние при спаде. Про эту половину забывают чаще всего, а именно она экономит деньги
Что должно попасть в требования:
⚪️Ожидаемая нагрузка в будни и в пик, в цифрах
⚪️Минимальное и максимальное число инстансов
⚪️Метрика и порог срабатывания
⚪️Как быстро поднимается новый инстанс: если он стартует 5 минут, всплеск за 30 секунд он не спасёт
Последний пункт заказчики не учитывают чаще всего: автомасштабирование не мгновенное, резкие всплески всё равно надо закрывать запасом.
💛 А вы считали, сколько у вас платится за простаивающие мощности? Или страшно смотреть?
💛💛💛💛💛
Где ещё я пишу:
YouTube
ВКонтакте
Сетка
Instagram*
Boosty
*Instagram принадлежит компании Meta, признанной экстремистской и запрещённой в РФ
#ВанечкаИЕдинорог #СистемныйАнализ #SystemDesign #Автомасштабирование #Обучение
ПиццаЕдинорог запустил доставку в новом городе, и Ванечка подошёл к делу основательно.
Он посчитал: один инстанс спокойно обслуживает 1000 пользователей, в пиковые дни на сайт приходит 100 000 человек, значит нужно 100 инстансов. Ванечка поднял 100 инстансов. Навсегда. Чтобы уж наверняка.
Сайт не падал ни разу. Ванечка гордился собой ровно до первого числа следующего месяца, когда пришёл счёт от облачного провайдера🤪
Он открыл статистику. В обычные дни на сайте было 10 000 человек, десять инстансов работали, девяносто грелись впустую и выставляли счёт.
🙄 ПиццаЕдинорог заглянул в счёт и присвистнул.
- Ванечка, ты нанял сто пиццайоло в круглосуточную смену. В пятницу вечером они все при деле, спору нет. А во вторник в одиннадцать утра у нас один дед с кофе и девяносто девять человек смотрят, как он его пьёт.
- Так а как иначе? Мне же надо выдержать пятницу!
- Надо, но не постоянно. У тебя два варианта. Первый твой: всегда держать максимум, 100 инстансов. Пик выдержишь всегда, тут не поспоришь, зато в спокойные дни платишь за 90 машин, которые никому не нужны. Второй: держать ровно столько, сколько нужно прямо сейчас. Для этого нужен механизм, который делает две вещи.
а) Мониторит нагрузку, например загрузку процессора на инстансах.
б) Когда она доходит до порога, скажем 90%, сам поднимает ещё один инстанс и раскидывает на него трафик. Без тебя, ночью, в отпуске, когда угодно.
- А когда нагрузка спала, он так же сам гасит лишние машины. Как подменная смена: очередь выросла, вызвали ещё двоих, схлынула, отпустили домой.
- И это называется...
- Автоматическое масштабирование. Динамическое изменение количества серверов в зависимости от трафика.
- А порог именно 90%? Записываю.
- Не записывай. Все эти цифры гипотетические, я их взял для наглядности, и тысяча пользователей на инстанс тоже. Свой настоящий порог ты не угадаешь и не вычитаешь в статье, его находят нагрузочным тестированием: гоняют инстанс, смотрят, где он начинает захлёбываться, и ставят порог заранее, до этой точки.
Ванечка настроил автомасштабирование, погасил лишние машины и в следующем месяце получил счёт, от которого не хотелось зарыться под землю.
💛💛💛💛💛
Что важно запомнить:
➡️ Держать пиковую мощность постоянно надёжно, но вы платите за простаивающее железо
➡️ Автомасштабирование меняет число инстансов автоматически, по метрике нагрузки
➡️ Механизм простой: мониторим метрику, достигли порога, поднимаем инстанс, нагрузка упала, гасим
➡️ Порог и число пользователей на один инстанс берут из нагрузочного теста, а не из головы
💛💛💛💛💛
🔸🔸🔸🔸🔸🔸
Арифметика из примера:
⚫️️1 инстанс = 1000 пользователей
⚫️️10 000 пользователей = 10 инстансов
⚫️️100 000 пользователей = 100 инстансов
Все числа условные, важна логика, а не цифры.
По каким метрикам обычно масштабируют:
💛Загрузка CPU - самая частая
💛Потребление памяти
💛Количество запросов в секунду на инстанс
💛Длина очереди необработанных задач
💛Время ответа
Два направления:
🔸Scale out - добавить инстансы при росте нагрузки
🔸Scale in - убрать лишние при спаде. Про эту половину забывают чаще всего, а именно она экономит деньги
Что должно попасть в требования:
⚪️Ожидаемая нагрузка в будни и в пик, в цифрах
⚪️Минимальное и максимальное число инстансов
⚪️Метрика и порог срабатывания
⚪️Как быстро поднимается новый инстанс: если он стартует 5 минут, всплеск за 30 секунд он не спасёт
Последний пункт заказчики не учитывают чаще всего: автомасштабирование не мгновенное, резкие всплески всё равно надо закрывать запасом.
💛 А вы считали, сколько у вас платится за простаивающие мощности? Или страшно смотреть?
💛💛💛💛💛
Где ещё я пишу:
YouTube
ВКонтакте
Сетка
Instagram*
Boosty
*Instagram принадлежит компании Meta, признанной экстремистской и запрещённой в РФ
#ВанечкаИЕдинорог #СистемныйАнализ #SystemDesign #Автомасштабирование #Обучение