Создание контейнеров и баз данных Azure Cosmos с автомасштабируемой пропускной способностью

ПРИМЕНИМО К: API SQL API Cassandra API Gremlin API таблиц API Azure Cosmos DB для MongoDB

В Azure Cosmos DB вы можете настроить подготовленную пропускную способность со стандартным (выполняемым вручную) масштабированием или автомасштабированием для баз данных и контейнеров. Автомасштабирование подготовленной пропускной способности в Azure Cosmos DB позволяет автоматически и мгновенно масштабировать пропускную способность (количество единиц запросов в секунду) для базы данных или контейнера. Пропускная способность масштабируется на основе использования без воздействия на доступность, задержку, пропускную способность или производительность рабочей нагрузки.

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

Преимущества автомасштабирования

Базы данных и контейнеры Azure Cosmos, настроенные с использованием подготовленной автомасштабируемой пропускной способности, имеют следующие преимущества.

  • Простой: Автомасштабирование снижает сложность управления числом единиц запросов в секунду за счет пользовательских сценариев или масштабирования емкости вручную.

  • Масштабируемость. Базы данных и контейнеры автоматически масштабируют подготовленную пропускную способность по мере необходимости. Это не нарушает работу клиентских соединений, приложений и не влияет на соглашения об уровне обслуживания Azure Cosmos DB.

  • Экономичность. Автомасштабирование помогает оптимизировать число единиц запросов в секунду и затраты за счет уменьшения масштаба в период неактивности. Вы платите только за ресурсы, потребляемые в час для рабочей нагрузки. Если для автомасштабирования вы установили максимальное значение единиц запросов в секунду (Tmax) и использовали все это количество Tmax для 66 % от запланированных часов в месяц или менее, вы сэкономите благодаря автомасштабированию. Дополнительные сведения см. в статье о том, как сделать правильный выбор между стандартной (ручной) подготовкой пропускной способности и автомасштабированием.

  • Высокая доступность. Базы данных и контейнеры, для которых применяется автомасштабирование, используют одинаковую глобально распределенную, отказоустойчивую, высокодоступную серверную часть Azure Cosmos DB для обеспечения надежности и высокой доступности данных.

Сценарии использования автомасштабирования

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

  • Переменные или непредсказуемые рабочие нагрузки. Если рабочие нагрузки предполагают переменные или непредсказуемые пиковые значения, автомасштабирование помогает сгладить пики за счет масштабирования по мере использования. В качестве примера можно привести интернет-магазины розничной торговли, в которых модели трафика меняются в зависимости от сезонности; рабочие нагрузки IOT с пиковыми значениями в разные моменты времени; бизнес-приложения, достигающие пиковых значений несколько раз в месяц или в год, и т. д. При использовании автомасштабирования больше не придется вручную подготавливать емкость для пиковых или средних нагрузок.

  • Новые приложения. Если вы разрабатываете новое приложение и вам неизвестна требуемая пропускная способность (число единиц запросов в секунду), автомасштабирование упростит начальный этап работы. Можно начать с автомасштабирования на уровне 400–4000 единиц запросов в секунду, отслеживать использование и определить требуемое число единиц запросов в секунду.

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

  • Рабочие нагрузки разработки и тестирования. Если вы или ваша команда использует базы данных и контейнеры Cosmos Azure в рабочее время, но они не требуются ночью или в выходные дни, автомасштабирование позволяет сократить затраты путем масштабирования до минимума в период неактивности.

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

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

Принципы работы подготовленной автомасштабируемой пропускной способности

При настройке контейнеров и баз данных с автомасштабированием указывается максимальная требуемая пропускная способность Tmax. Azure Cosmos DB масштабирует пропускную способность T таким образом 0.1*Tmax <= T <= Tmax. Например, если установить максимальную пропускную способность равной 20 000 единиц запросов в секунду, то пропускная способность будет масштабироваться в пределах между 2000 и 20 000 единиц запросов в секунду. Поскольку масштабирование происходит автоматически и мгновенно, выполнение всех запросов в пределах подготовленной пропускной способности Tmax осуществляется без задержки.

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

Начальное значение для максимальной автомасштабируемой пропускной способности Tmax равно 4000 единиц запросов в секунду, и оно масштабируется в пределах между 400–4000 единиц запросов в секунду. Можно задать Tmax с шагом в 1000 единиц запросов в секунду и в любое время изменить это значение.

Включение автомасштабирования для существующих ресурсов

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

Ограничения пропускной способности и хранилища при использовании автомасштабирования

Для любого значения Tmax в базе данных или контейнере может храниться всего 0.01 * Tmax GB. По достижении этого объема хранимых данных максимальное число единиц запросов в секунду будет автоматически увеличено с учетом нового объема хранилища без ущерба для работы приложения.

Например, если начать с максимальной пропускной способности в 50 000 ЕЗ/с (с масштабированием от 5000 до 50 000 ЕЗ/с), можно хранить до 500 ГБ данных. Если объем ваших данных превысит этот лимит и достигнет, например, 600 ГБ, новая максимальная пропускная способность составит 60 000 ЕЗ/с (с масштабированием от 6000 до 60 000 ЕЗ/с).

При использовании пропускной способности уровня базы данных с автомасштабированием первые 25 контейнеров могут совместно использовать не более 4000 единиц запросов в секунду (масштабирование в пределах 400–4000 единиц запросов в секунду) при условии, что размер хранилища не превышает 40 ГБ. Дополнительные сведения см. в этой документации.

Сравнение — контейнеры, настроенные с масштабируемой вручную или автомасштабируемой пропускной способностью

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

Контейнеры со стандартно (вручную) масштабируемой пропускной способностью Контейнеры с автомасштабируемой пропускной способностью
Подготовленная пропускная способность (единиц запросов в секунду) Подготовленная вручную. Масштабируемая автоматически и мгновенно на основе моделей использования рабочих нагрузок.
Ограничение скорости запросов и операций (429) Это возможно, если потребление превышает подготовленную емкость. Этого не происходит, если единицы запросов в секунду потребляются в заданном диапазоне автомасштабируемой пропускной способности.
Планирование ресурсов Необходимо спланировать ресурсы и обеспечить необходимую пропускную способность. Система автоматически принимает меры по планированию ресурсов и управлению емкостью.
Цены Вы оплачиваете единицы запросов в секунду, подготовленных вручную, потребленные за час, используя тариф за стандартное (вручную) масштабирование в ЕЗ/с в час. Вы платите за максимально потребленное за час число единиц запросов в секунду, до которого система масштабировалась в течение этого часа.

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

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

Дальнейшие действия