Ответ вслух Junior Масштабирование спрашивают часто обновлено

Вертикальное и горизонтальное масштабирование

Вопрос

Объясните разницу между вертикальным и горизонтальным масштабированием и когда что выбирать.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Вертикальное масштабирование: даём машине больше ядер, памяти, быстрые диски. Код не меняется, но есть потолок самой большой машины и одна точка отказа.

Что должно прозвучать в ответе

  • Вертикальное: мощнее машина, код не меняется, есть предел и единая точка отказа

  • Горизонтальное: больше узлов, нужен stateless или распределённое состояние

  • Stateless-сервисы приложения масштабируют горизонтально в первую очередь

  • БД часто сначала масштабируют вертикально и репликами, шардирование позже

  • Горизонтальное даёт отказоустойчивость, но добавляет сложность

Что могут спросить следом

  • Как сделать сервис stateless?
  • Когда вертикального уже не хватит для БД?

Разбор

Вертикальное масштабирование: даём машине больше ядер, памяти, быстрые диски. Код не меняется, но есть потолок самой большой машины и одна точка отказа. Горизонтальное: ставим больше одинаковых узлов за балансировщиком. Оно почти безлимитно и даёт отказоустойчивость, но требует stateless: сессии, файлы, кеш выносим наружу. Поэтому сервисы приложения масштабируют горизонтально сразу. С базой иначе: сначала вертикально и реплики для чтения, это дёшево и просто. Шардирование только когда запись или объём не помещаются в один лидер, потому что оно усложняет транзакции и запросы между шардами.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.