Пропустить и перейти к основному содержимому

Вертикальное и горизонтальное масштабирование

Вводные сведения о масштабируемости баз данных при облачных вычислениях

Данные повсюду: что скрывается за понятием "масштабируемость"

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

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

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

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

На самом базовом уровне масштабируемость баз данных можно разделить на два типа:

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

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

Вертикальное масштабирование

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

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

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

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

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

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

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

Кроме того, некоторые реляционные службы баз данных (SQL), изначально предлагавшие услуги вертикального увеличения или уменьшения масштаба, начинают предоставлять интересные возможности, позволяя достичь уровня масштабируемости нереляционных баз данных. Службы гипермасштабирования, такие как Гипермасштабирование Базы данных SQL Microsoft Azure и Гипермасштабирование Базы данных Azure PostgreSQL, дают пользователям возможность быстро масштабировать хранилище до 100 ТБ, обеспечивают ориентированную на облако гибкую архитектуру, позволяя увеличивать объем хранилища в соответствии с потребностями, а также включать почти моментальные операции резервного копирования и быстрые операции восстановления баз данных за несколько минут.

Горизонтальное масштабирование выполняется в следующих случаях:

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

Автомасштабирование

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

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

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

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

Многие поставщики облачных систем, такие как Microsoft Azure, поддерживают автоматическое горизонтальное масштабирование.

  • База данных — это любая коллекция взаимосвязанных сведений, которая хранится и упорядочивается для упрощения управления и доступа. Новые данные и типы данных создаются с головокружительной скоростью. Поэтому обеспечить упорядоченность, доступность и защиту этих данных становится непросто. Для обработки огромных объемов данных часто используются системы управления базами данных (СУБД), которые включают в себя слой средств управления.

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

    Подробнее о базах данных
  • Базы данных NoSQL, часто называемые нереляционными или not only SQL (не только SQL), —это разнообразные технологии, которые позволяют по-разному хранить данные и извлекать их из традиционной реляционной базы данных (SQL).

    Базы данных NoSQL не нуждаются в предопределенной схеме и могут использовать несколько моделей данных. Это делает их чрезвычайно эффективными при обработке больших объемов неструктурированных данных и масштабировании проектов баз данных для больших данных.

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

    Подробнее о PostgreSQL
  • Кэширование — это распространенный способ, используемый разработчиками и ИТ-специалистами для повышения производительности и масштабируемости системы. При кэшировании часто запрашиваемые данные временно копируются в быстрое хранилище данных, расположенное ближе к приложению. Если это быстрое хранилище данных находится ближе к приложению, чем исходный оригинал, кэширование может значительно улучшить время отклика для клиентских приложений путем более быстрой обработки данных. Разработчики часто создают приложения с возможностью кэширования обработанных данных, а затем перепрофилируют кэш для ускоренного обслуживания запросов (по сравнению со стандартными базами данных).

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

    Подробнее о сегментировании баз данных
  • Платформа как услуга (PaaS) — это служба от поставщика облачных служб, которая предоставляет среду по запросу для разработки, тестирования и доставки приложений, а также управления ими. Модель "платформа как услуга" упрощает и ускоряет разработчикам задачу создания веб-приложений или мобильных приложений без настройки и администрирования базовой инфраструктуры серверов, хранилища, сети и баз данных, которые необходимы при разработке.

    Дополнительные сведения о PaaS

Облачная масштабируемость в Azure

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

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

Связанные продукты и услуги

Azure SQL

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

Azure Cosmos DB

Быстродействующая база данных NoSQL с открытыми API-интерфейсами для любого масштаба

Azure PostgreSQL

Полностью управляемая и масштабируемая интеллектуальная среда PostgreSQL

База данных SQL Azure

Управляемая интеллектуальная база данных SQL в облаке

Управляемый экземпляр SQL Azure

Управляемый и всегда актуальный экземпляр SQL в облаке

Использование SQL Server на виртуальных машинах

Перенос рабочих нагрузок SQL Server в облако с самой низкой совокупной стоимостью владения

База данных Azure для MySQL

Полностью управляемая масштабируемая база данных MySQL

Azure Maria DB

Управляемая служба базы данных MariaDB для разработчиков приложений

Кэш Azure для Redis

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

Масштабирование без ограничений с помощью управляемых баз данных

Сосредоточьтесь на создании приложений и облегчите себе работу, а управление вашими базами данных обеспечит Microsoft Azure

Бесплатная учетная запись готова к настройке в любой момент