Вертикальное и горизонтальное масштабирование
вертикальное — сделать машину мощнее, горизонтальное — добавить больше машин.
Почему это важно: Выбор стратегии масштабирования влияет на архитектуру, стоимость и отказоустойчивость.
Главная идея
Вертикальное масштабирование проще, но ограничено. Горизонтальное сложнее, но теоретически безгранично.
Как это выглядит на практике
- Приложение упирается в CPU на одной машине.
- Первый ход — увеличить инстанс (vertical): 4 → 16 vCPU.
- Дальше — поставить load balancer и запустить несколько инстансов (horizontal).
- Состояние приложения нужно вынести наружу, чтобы любой инстанс мог обработать любой запрос.
Что происходит под капотом
- Stateless-приложение — обязательное условие для горизонтального масштабирования.
- Session state хранится в Redis/БД, а не в памяти процесса.
- Load balancer распределяет запросы: round-robin, least connections, weighted.
- Автоскейлинг (HPA в K8s, ASG в AWS) добавляет инстансы при росте нагрузки.
Типичные ошибки и заблуждения
- Ошибка: горизонтальное всегда лучше. На малых объёмах оно сложнее и дороже.
- Ошибка: БД легко масштабируется горизонтально. На самом деле это одна из самых сложных задач.
- Ошибка: автоскейлинг решает всё. Холодный старт и cold cache снижают эффект.
- Ошибка: 10 серверов выдерживают в 10 раз больше. Из-за сетевых оверхедов масштабирование не линейно.
Ключевые выводы
- Stateless — ключ к горизонтальному масштабированию.
- Вертикальное упирается в потолок железа.
- Оба подхода часто используются вместе.
- Автоскейлинг экономит деньги, но требует настройки.
Термины урока
Связь с работой backend-разработчика
Начните с вертикального масштабирования, перейдите к горизонтальному, когда станет тесно. Не усложняйте раньше времени.
Мини-разбор реальной ситуации
Стартап переписывал сервис в микросервисы 'ради масштабирования'. Оказалось, что монолит на 16-ядерной машине справлялся бы ещё год. Архитектура усложнилась, и деплой стал медленнее.
Что запомнить
- Stateless — фундамент horizontal scaling.
- Вертикальное проще — начинайте с него.
- Масштабирование — компромисс, не серебряная пуля.
Итог
Правильное масштабирование — это не всегда больше серверов, а часто — правильный выбор момента и стратегии.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.