Масштабирование означает увеличение (или уменьшение) мощности ресурсов, доступных серверной части, для повышения ее производительности или доступности. Хотя масштабирование является неотъемлемой частью архитектуры, дизайна и реализации вашей серверной части, необходимо учитывать несколько важных аспектов.
Производительность здесь означает, насколько быстро веб-приложение может ответить на запрос; сюда входят задержка, скорость, пропускная способность и использование ресурсов.
Вертикальное масштабирование
Вертикальное масштабирование означает увеличение ресурсов на сервере. Это может означать замену центрального сервера приложений более мощной машиной для серверной архитектуры. Для бессерверных, микросервисных или облачных архитектур это может относиться к обновлению выделенных ресурсов, например увеличению доступной памяти или выбору виртуальной машины более высокого уровня.
Горизонтальное масштабирование
Горизонтальное масштабирование подразумевает добавление большего количества серверов и параллельных ресурсов. Базовая архитектура и приложение должны быть оптимизированы для поддержки такого типа масштабирования. Например, для распределения запросов в серверной архитектуре может потребоваться дополнительная балансировка нагрузки. Для бессерверной архитектуры в облачной среде, такой как Cloud Functions , этот тип масштабирования может выполняться прозрачно без какой-либо дополнительной настройки.
Региональное масштабирование и распространение
Региональное масштабирование означает распределение услуг по нескольким географическим регионам. Распространение ваших сервисов или перемещение ваших сервисов ближе к пользователям может уменьшить задержку и повысить общую производительность вашего приложения.
Рассмотрите региональное распределение и разнообразие как часть вашей архитектуры, особенно если вы не используете облачного провайдера, который делает это прозрачно, например, в облачной бессерверной архитектуре. Подумайте, как региональное распределение может повлиять на хранение данных в вашем приложении, особенно в отношении согласованности данных.
При обработке и хранении данных в глобальном масштабе учитывайте любые нормативные требования или законы, применимые к вашей системе, особенно в отношении обработки и хранения данных .