Обычно существует 2 способа масштабирования приложения. Вертикальный и Горизонтальный. Допустим, вам нужно масштабировать ваше приложение таким образом, чтобы оно могло обслуживать больше запросов в секунду, и вам нужно больше места для сохранения данных.
вертикальное масштабирование -> если вы хотите обслуживать больше запросов, вы можете увеличить мощность машины, которая обслуживает ваши запросы. Просто увеличьте мощность машины. То же самое относится и к хранилищу, просто увеличьте емкость машины для хранения большего количества данных.
Горизонтальное масштабирование -> вместо увеличения емкости одной машины у вас есть несколько машин. в случае запросов вы перенаправляете запрос между этими машинами, используя балансировщик нагрузки. в случае хранения вы распределяете данные между этими машинами, используя некоторые методы разбиения.
Большие приложения ничем не отличаются, они используют аналогичный подход. Хотя есть и много других вещей, но в основном идея та же самая.