воскресенье, 4 сентября 2022 г.

Горизонтальное масштабирование

До появления облачных решений масштабирование как правило заключалось в увеличении мощности вычислительных систем. А в связи с облачными приложениями появилось возможность масштабирования путем клонирования экзепляров приложения. То есть, у приложений в облаке - много развернутых экземпляров.

В облаке преобладающей моделью увеличения или уменьшения емкости приложений для обработки изменяющихся объемов запросов является горизонтальное масштабирование. Вместо добавления или уменьшения емкости для одного экземпляра приложения (вертикальное масштабирование) растущие или падающие объемы запросов обрабатываются путем добавления или удаления экземпляров приложения.

Это не означает, что экземпляры приложений нельзя распределить с путем увеличения вычислительных ресурсов. Google Cloud Platform (GCP) предлагает виртуальные машины с 1,5 Тб памяти, а AWS предлагает машину с почти 2 Тб. Но изменение характеристик компьютера, на котором работает приложение, – существенное событие. В облачных средах, таких как AWS, Azure или GCP, нельзя изменить тип машины для работающего хоста. Вместо этого вам придется создать новую машину с 32 Гб памяти (даже если вам нужно всего около 20 Гб, потому что типа машины с 20 Гб памяти не существует), развернуть там свое приложение, а затем выяснить, как перенести пользователей на новые экземпляры с минимальными перебоями.

В модели горизонтального масштабирования вместо того чтобы предоставлять своему приложению 16 Гб памяти, вы делаете четыре экземпляра с 4 Гб памяти. Когда нужно больше емкости, запрашивается пятый экземпляр приложения и он делается доступным пользователям, например регистрируя его с помощью динамического маршрутизатора. Теперь общий объем памяти составляет 20 Гб. Вам предоставляется точный контроль над потреблением ресурсов и порядок достижения большего масштаба становится проще.

Гибкое масштабирование – не единственная мотивация для использования нескольких экземпляров приложения. Это также и высокая доступность, надежность и эффективность работы.

Наличие нескольких экземпляров также приносит выгоду, когда дело доходит до эксплуатации программного обеспечения в рабочем окружении. Например, команды приложений (dev и ops) больше не должны предоставлять свою собственную операционную систему. Вместо этого они могут просто отправить свой код на платформу, а она создаст среду выполнения и развернет приложение. Если платформе (которая с точки зрения приложения является частью инфраструктуры) необходимо обновить ОС, в идеале приложение должно оставаться работающим на протяжении всего процесса обновления. Пока хост обновляется на ОС, выполняемые на нем рабочие нагрузки должны быть остановлены, но если у вас есть другие экземпляры приложений, работающие на других хостах, вы можете просматривать свои хосты по одному. Пока один экземпляр приложения переводится в автономный режим, другие экземпляры приложения по-прежнему обслуживают трафик. Наконец, когда вы объединяете воедино горизонтальное масштабирование приложений и разложенную на части архитектуру программного обеспечения на базе микросервисов, то получаете большую гибкость при общем потреблении ресурсов системы.

Таковы дополнительные преимущества горизонтального масштабирования.

Комментариев нет:

Отправить комментарий