Из ГОСТ Р 70860—2023 Информационные технологии. Облачные вычисления. Общие технологии и методы

14.1 Подходы к обеспечению масштабируемости ГОСТ Р 70860—2023

В ГОСТ ISO/IEC 17788 одними из ключевых характеристик облачных вычислений являются динамичная адаптивность и масштабируемость. Динамичная адаптивность и масштабируемость описываются как отличительные особенности облачных вычислений, которые позволяют быстро и адаптивно регулировать физические или виртуальные ресурсы, в некоторых случаях автоматически, для оперативного увеличения или уменьшения объема ресурсов.

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

Масштабируемость разделяется на две большие категории: горизонтальное масштабирование и вертикальное масштабирование.

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

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

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

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

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

    14.2 Параллельные экземпляры и балансировка нагрузки ГОСТ Р 70860—2023

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

    Основная проблема заключается в том, что входящие запросы, поступающие в определенный программный компонент, должны распределяться между всеми экземплярами этого программного компонента. Логически данную ситуацию можно рассматривать как обработку потока запросов, направленных на определенную конечную точку сервиса (формально эта конечная точка имеет сетевой адрес, на который и оправляются запросы). Несколько параллельных экземпляров программного компонента, реализующих сервис, имеют свою собственную (частную) конечную точку, каждая из которых имеет свой сетевой адрес и комбинацию портов. Компонент, который называется балансировщиком нагрузки, используется для управления конечной точкой сервиса и направления каждого входящего запроса в один из параллельных экземпляров.

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

    Примером простого алгоритма диспетчеризации является циклический алгоритм (round-robin), когда каждый из экземпляров используется по очереди, а алгоритм стремится отправить одинаковое количество запросов на все экземпляры. Одной из разновидностей этого алгоритма является циклический взвешенный алгоритм (weighted round-robin), когда каждому из экземпляров присваивается весовой коэффициент, от которого зависит количество передаваемых ему экземпляров. Более сложный алгоритм диспетчеризации связан с рабочей нагрузкой. Он работает по принципу невыполненных запросов. При этом балансировщику нагрузки должно быть известно количество запросов, которые еще обрабатываются каждым экземпляром, и новые входящие запросы должны отправляться на наименее загруженный экземпляр.

    Балансировщик нагрузки должен обрабатывать динамическое количество экземпляров. Могут запускаться новые экземпляры, а существующие могут останавливаться. Запуск и остановка могут выполняться в целях поддержания масштабирования и адаптивности либо вследствие отказа экземпляра.

    Балансировщик нагрузки может быть реализован с использованием обратного прокси-сервера, который может предоставлять дополнительные функциональные возможности, такие как кеширование статического контента, обработка SSL (шифрование/дешифрование) и защита от атак [из 14.2 Параллельные экземпляры и балансировка нагрузки ГОСТ Р 70860—2023]

      14.3 Адаптивность и автоматизация ГОСТ Р 70860—2023

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

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

      Правила регулировки адаптивности должны учитывать тот факт, что для выделения и удаления ресурсов требуется время. Это особенно важно при выделении дополнительных ресурсов, поскольку существует вероятность того, что текущие ресурсы будут полностью израсходованы до получения новых [из 14.3 Адаптивность и автоматизация ГОСТ Р 70860—2023]

        14.4 Масштабирование базы данных ГОСТ Р 70860—2023

        Масштабирование базы данных является важным аспектом облачных вычислений. Масштабирование базы данных выполняется как в отношении физического размера базы данных, так и в отношении скорости выполнения операций (запросов и обновлений).

        Распространенным подходом, используемым для масштабирования баз данных, является тот или иной вид горизонтального масштабирования с использованием нескольких ВМ и нескольких устройств хранения для одной базы данных. Основная проблема при использовании горизонтальной масштабируемости заключается в необходимости обеспечения точной синхронизации нескольких ресурсов в отношении друг друга.

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

        Другой подход к синхронизации ресурсов заключается в использовании технологии кластеризации, которая располагает ресурсы поблизости друг от друга (с точки зрения скорости обмена данными между ресурсами) и позволяет осуществлять управление с помощью монитора глобальных транзакций, который стремится поддерживать согласованность между различными ресурсами. Эти два подхода обеспечивают так называемую строгую согласованность между различными ресурсами: клиент, использующий такую базу данных, всегда получает один и тот же результат независимо от того, какие ресурсы используются для обработки запроса. Строгая согласованность необходима для транзакционных приложений — для них упорядочение транзакций является важным условием.

        Для облачных вычислений существует принципиально другой подход к масштабированию баз данных. Этот подход использует концепцию окончательной согласованности, которая может применяться для не транзакционных типов приложений. В таких случаях реплики базы данных хранятся в нескольких местах и обновления выполняются независимо для каждой из реплик, что может привести к возникновению различий между содержимым реплик в течение определенного периода времени, а также к конфликту обновлений. Принцип окончательной согласованности используется в отдельных базах данных NoSQL, таких как открытая база данных CouchDB [из 14.4 Масштабирование базы данных ГОСТ Р 70860—2023]

          15.1 Общие положения ГОСТ Р 70860—2023

          Безопасность является ключевым аспектом всех систем облачных вычислений. Безопасность включает в себя набор средств контроля, которые обладают функциональными возможностями для устранения различных рисков. Описанные здесь средства контроля являются общими в том смысле, что они могут применяться и к необлачным системам. Особенности их применения в облачных вычислениях приведены в 15.2 [из 15.1 Общие положения ГОСТ Р 70860—2023]

            15.2 Межсетевые экраны ГОСТ Р 70860—2023

            Межсетевой экран — это компонент системы сетевой безопасности, который отслеживает и контролирует входящий и исходящий сетевой трафик, разрешая или блокируя определенный трафик на основе набора правил безопасности. Цель межсетевого экрана — создать барьер между доверенными защищенными и контролируемыми внутренними сетями и ненадежными внешними сетями, по сути, предотвращая несанкционированный и неконтролируемый доступ к внутренним сетям.

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

            Потребитель облачной службы может развернуть в облачной среде собственное ПО межсетевого экрана, используя соответствующий облачный сервис laaS. Этот вариант эффективен, если потребитель облачной службы желает использовать определенное ПО межсетевого экрана либо если потребителю необходим детальный контроль конфигурации межсетевого экрана.

            Однако более распространенная ситуация заключается в том, что межсетевые экраны предоставляются поставщиком облачной службы в качестве облачного сервиса в рамках облачной среды. Межсетевые экраны, предоставляемые поставщиком облачной службы, могут быть как аппаратными, так и программными, и окончательное решение остается за поставщиком.

            Межсетевые экраны обычно устанавливаются на всех конечных точках, через которые проходят подключения из внешних сетей к внутренним сетям.

            Что касается прикладных облачных сервисов, поставщик облачной службы, как правило, предоставляет функциональные возможности межсетевого экрана как часть облачного сервиса [из 15.2 Межсетевые экраны ГОСТ Р 70860—2023]

              15.3 Защита конечных точек ГОСТ Р 70860—2023

              Использование облачных сервисов обычно предполагает, что потребитель облачной службы делает одну или несколько конечных точек каждого решения в качестве видимых извне. Каждая такая публичная конечная точка нуждается в защите, которая обычно предоставляется как часть облачного сервиса. Защита, как правило, включает в себя:

              [из 15.3 Защита конечных точек ГОСТ Р 70860—2023]

                15.4 Управление идентификацией и доступом пользователей ГОСТ Р 70860—2023

                Контроль доступа к ресурсам облачных вычислений — это важная функциональная возможность для любых облачных вычислений. Задействованные ресурсы включают в себя не только сами облачные сервисы, но и компоненты потребителя облачной службы, такие как приложения, данные и сервисы, развернутые в облачных сервисах.

                Сами облачные сервисы обычно предоставляются поставщиком облачной службы с возможностью управления идентификацией и доступом. Для других ресурсов функциональные возможности для управления идентификацией и доступом обычно предоставляются в виде облачного сервиса, предлагаемого поставщиком облачной службы. Один и тот же облачный сервис управления идентификацией и доступом зачастую может использоваться как для самих облачных сервисов, так и для ресурсов потребителя облачной службы.

                К числу функциональных возможностей, которые следует учитывать при выборе облачного сервиса управления идентификацией и доступом, относятся:

                • поддержка передовых методов аутентификации, включая биометрическую и многофакторную аутентификацию;
                • поддержка интеграции локальных возможностей управления идентификацией и доступом с облачным сервисом;
                • поддержка системы единого входа (SSO);
                • поддержка детальной авторизации.

                [из 15.4 Управление идентификацией и доступом пользователей ГОСТ Р 70860—2023]

                  15.5 Шифрование данных ГОСТ Р 70860—2023

                  Шифрование данных является важной функцией для обеспечения конфиденциальности и защиты. В облачных вычислениях данные могут шифроваться при их хранении и перемещении.

                  Шифрование данных должно осуществляться с применением защищенных протоколов, в которых используются криптографические механизмы, определяемые национальными документами по стандартизации Российской Федерации, такие как TLS 1.2/TLS 1.3 (см. [6], [7]) или IPSec (см. [8], [9]). Функциональные возможности шифрования могут быть предоставлены облачными сервисами.

                  Шифрование данных при хранении может выполняться потребителем облачной службы (или программным кодом, установленным и управляемым потребителем), однако многие облачные сервисы хранения данных также предлагают возможность шифрования хранящейся информации [из 15.5 Шифрование данных ГОСТ Р 70860—2023]

                    Страницы

                    Подписка на Из ГОСТ Р 70860—2023 Информационные технологии. Облачные вычисления. Общие технологии и методы