14.1 Подходы к обеспечению масштабируемости ГОСТ Р 70860–2023
В ГОСТ ISO/IEC 17788 одними из ключевых характеристик облачных вычислений являются динамичная адаптивность и масштабируемость. Динамичная адаптивность и масштабируемость описываются как отличительные особенности облачных вычислений, которые позволяют быстро и адаптивно регулировать физические или виртуальные ресурсы, в некоторых случаях автоматически, для оперативного увеличения или уменьшения объема ресурсов.
Адаптивность — это способность облачных сервисов подстраиваться под изменения рабочей нагрузки посредством выделения и удаления ресурсов (обычно в автоматическом режиме) так, чтобы имеющиеся ресурсы максимально точно соответствовали текущей потребности в ресурсах. Масштабируемость — это способность облачных сервисов увеличивать или уменьшать объем ресурсов, выделяемых для обработки определенной рабочей нагрузки.
Масштабируемость разделяется на две большие категории: горизонтальное масштабирование и вертикальное масштабирование.
Горизонтальное масштабирование. В этой категории несколько ресурсов используются параллельно, причем количество параллельно используемых ресурсов меняется для поддержания необходимого объема ресурсов. В качестве вычислительных ресурсов используется несколько компонентов (физические компьютеры, ВМ, контейнеры). В качестве ресурсов хранения данных используется несколько устройств хранения (несколько накопителей). В качестве сетевых ресурсов используется несколько сетей.
Вертикальное масштабирование. В этой категории объем отдельного ресурса меняется для поддержания необходимого объема ресурсов. Для вычислительных ресурсов это означает изменение количества процессоров или объема оперативной памяти данного ресурса. Для ресурсов хранения данных это означает изменение объема устройства (накопитель большей или меньшей емкости) или изменение скорости операций чтения/записи, доступной на ресурсе. Для сетевых ресурсов это означает переход на сеть с большей или меньшей пропускной способностью.
Вертикальное масштабирование, как правило, проще с точки зрения рабочей нагрузки и конструкции решения. Однако вертикальное масштабирование имеет свои ограничения, поскольку отдельные физические вычислительные ресурсы имеют определенный лимит в отношении количества доступных процессоров и максимального объема доступной оперативной памяти. Виртуализация одной вычислительной нагрузки на нескольких физических вычислительных ресурсах не является целесообразной, поэтому лимиты физических вычислительных ресурсов напрямую ограничивают возможность вертикальной масштабируемости компьютерных вычислений, доступной для облачных сервисов. Что касается ресурсов хранения данных, то отдельные устройства хранения имеют ограничения по емкости, однако виртуализированные облачные сервисы хранения данных могут использовать несколько физических ресурсов хранения данных, но воспринимать их как единый ресурс, что обеспечивает широкие возможности для увеличения вертикальной масштабируемости. Для сетевых ресурсов одна физическая сеть имеет ограничения по пропускной способности. Виртуализированный сетевой сервис может использовать несколько параллельных сетевых ресурсов, что обеспечивает широкие возможности для увеличения вертикальной масштабируемости.
Горизонтальное масштабирование, когда несколько экземпляров ресурса используются параллельно, обычно требует, чтобы рабочая нагрузка и решение имели конструкцию, которая специально адаптирована для этого типа масштабирования. Для решения проблем, связанных с горизонтальным масштабированием, используются специальные методы. В случае с ресурсами хранения виртуализация базовых ресурсов хранения данных может скрыть наличие нескольких физических устройств хранения. Тем не менее такой виртуализированный ресурс хранения данных все равно может раскрывать характеристики базовых физических ресурсов, такие как ограничение на размер отдельных файлов или объектов, поскольку может случиться так, что такие объекты хранения данных не могут охватывать несколько физических устройств. При проектировании конструкции решений, предусматривающих использование горизонтального масштабирования, такие ограничения учитываются. Горизонтальное масштабирование сетевых ресурсов подразумевает, что конструкция решения использует несколько отдельных соединений через различные доступные сетевые ресурсы. Однако виртуализированный сетевой сервис может прозрачно использовать несколько базовых сетевых ресурсов, что устраняет необходимость в непосредственном учете этого фактора в конструкции решения.
Горизонтальное масштабирование вычислительных ресурсов широко используется в сфере облачных вычислений по той причине, что виртуализировать границы вычислительных ресурсов невозможно с технической точки зрения. Горизонтальное масштабирование вычислительных ресурсов подразумевает, что несколько экземпляров данного программного компонента выполняются параллельно, а поступающая нагрузка распределяется между этими экземплярами. Такая конструкция открыто демонстрирует ограничения по вычислительным ресурсам (количество процессоров и объем оперативной памяти), поэтому выбор делается в пользу подхода к проектированию, в рамках которого ПО разделяется на отдельные компоненты, выполняемые в отдельных процессах. Это позволяет уменьшить количество процессоров и объем оперативной памяти, необходимой для каждого компонента. В таких подходах к проектированию, как создание архитектуры микросервисов, специально учитывается этот аспект горизонтального масштабирования [из 14.1 Подходы к обеспечению масштабируемости ГОСТ Р 70860—2023]