Рекомендации по архитектуре управляемого экземпляра SQL Azure

Управляемый экземпляр SQL Azure — это полностью управляемая платформа как служба (PaaS), которая обеспечивает почти полную совместимость с последней версией SQL Server Enterprise Edition. Она сочетает модель развертывания, привязанную к экземпляру, с нативной поддержкой виртуальных сетей, предоставляя расширенную поддержку функций SQL Server наряду с эксплуатационными преимуществами управляемой платформы. Управляемый экземпляр базы данных SQL предназначен для рабочих нагрузок SQL Server, которые полагаются на функции на уровне экземпляра, такие как запросы между базами данных, агент SQL Server, Service Broker и интеграция со средой CLR.

В этой статье предполагается, что в качестве архитектора вы рассмотрели дерево принятия решений о хранилище данных и выбрали Управляемый экземпляр SQL Azure в качестве ядра СУБД для рабочей нагрузки.

В этой статье приведены рекомендации по архитектуре, которые сопоставляются с принципами опорных столпов структуры "Well-Architected".

Область технологий

В этом обзоре рассматриваются взаимосвязанные решения для следующих ресурсов Azure:

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

Замечание

Это руководство по службе основывается на руководстве по службе базы данных SQL Azure. Управляемый экземпляр SQL делит ядро СУБД SQL Server с базой данных SQL, при этом использует инстанционно-ориентированную модель развертывания с отличной архитектурой, сетью и функциональными возможностями. Ознакомьтесь с руководством по базе данных SQL для рекомендаций по общей платформе. В этом руководстве рассматриваются возможности управляемого экземпляра SQL и рекомендации по архитектуре.

Reliability

Цель компонента "Надежность" — обеспечить непрерывную функциональность путем создания достаточной устойчивости и возможности быстрого восстановления после сбоев.

Принципы проектирования надёжности обеспечивают высокоуровневую стратегию разработки, которая применяется к отдельным компонентам, потокам систем и системе в целом.

Контрольный список разработки рабочей нагрузки

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

  • Просмотрите квоты управляемого экземпляра SQL, ограничения и известные проблемы: Управляемый экземпляр SQL применяет ограничения регионального развертывания, количество баз данных и потолки хранилища, которые зависят от типа подписки и уровня. Развертывания с более высоким уровнем используют больше квоты виртуальных ядер, что ограничивает планирование региональной емкости.

    • Учтите известные проблемы, которые влияют на группы переключения при отказе, особенности резервного копирования при использовании связи репликации и ограничения миграции из более ранних версий SQL Server. Просмотрите эти ограничения во время первоначальной разработки, чтобы избежать ограничений, которые нельзя легко исправить позже.
  • Предвидеть потенциальные сбои: Используйте анализ режима сбоя для прогнозирования сбоев и планирования устранения неполадок для Управляемого экземпляра SQL.

    Failure Смягчение последствий
    Операции управления занимают несколько часов и блокируют другие операции на экземпляре или в подсети. Планирование операций масштабирования во время периодов обслуживания. Избегайте параллельных операций управления и учитывайте многочасовые длительности в планах восстановления.
    Начальная настройка группы аварийного переключения может превышать допустимое время ожидания из-за низкой скорости сетевых соединений или больших размеров баз данных. Используйте пиринг глобальной виртуальной сети для максимальной пропускной способности. Отслеживайте ход засева и планируйте длительность на основе размера базы данных и скорости соединения.
    Операции управления с одним экземпляром в подсети могут блокировать или задерживать операции с другими экземплярами, которые совместно используют тот же виртуальный кластер. Изолируйте рабочие экземпляры в выделенных подсетях, чтобы предотвратить перекрестное влияние операций разработки или тестирования экземпляров.
  • Создайте избыточность с помощью распределения зон и выбора соответствующего уровня: Используйте избыточность зоны и выбор соответствующего уровня для устранения отдельных точек сбоя в регионе.

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

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

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

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

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

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

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

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

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

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

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

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

  • Разработка стратегии аварийного восстановления с помощью групп отказоустойчивости: Группы отказоустойчивости реплицируют все пользовательские базы данных как единое целое в георезервный экземпляр в другом регионе, но системные базы данных не включаются. Необходимо синхронизировать входы в систему, учетные данные, задания SQL Agent (агента SQL) и параметры уровня экземпляра (инстанса) независимо, чтобы предотвратить сбои проверки подлинности и операционные пробелы после переключения на резервный сервер.

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

Рекомендации по настройке

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

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

Добавьте емкость буфера за пределы минимальных требований, так как изменение размера подсети требует сложных операций миграции. Учет границ виртуального кластера, где разные поколения оборудования и сочетания уровней используют дополнительные IP-адреса подсети.
Правильный выбор размера подсети предотвращает образование узких мест при масштабировании, требующих миграции подсети для устранения. Избыточные IP-адреса требуют небольших затрат и обеспечивают гибкость для будущего роста экземпляров и изменений уровней.
Настройте оповещения Azure Monitor для критически важных метрик надежности, таких как доступность экземпляра, задержка репликации и работоспособность резервного копирования. Создайте правила генерации оповещений, которые активируются до того как задержка репликации превысит пороговые значения RPO. Отслеживайте потребление хранилища, чтобы предотвратить сбои резервного копирования. Упреждающее оповещение позволяет быстро реагировать на проблемы с репликацией и работоспособностью экземпляров, прежде чем они приведут к потере данных или длительным сбоям.

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

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

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

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

Политика отказоустойчивости под управлением клиента позволяет контролировать решения по восстановлению и выбор времени восстановления.
Настройте геоизбыточное хранилище резервных копий для поддержания резервных копий в парном регионе. Используйте геовосстановление в качестве резервного восстановления. Настройте долгосрочное хранение , использующее геоизбыточное хранилище (GRS) для сценариев соответствия требованиям, требующих расширенной доступности. Геоизбыточное хранилище резервных копий позволяет восстановиться в любом регионе Azure во время региональной аварии даже без групп переключения при отказе. Этот подход предоставляет независимый путь восстановления, который не зависит от работоспособности репликации в режиме реального времени.
Учитывайте время подготовки экземпляра в расчетах целевого времени восстановления (RTO) при восстановлении до заданного момента (PITR), так как PITR восстанавливается в новый экземпляр, а не существующий.

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

Безопасность

Цель компонента "Безопасность" — обеспечить конфиденциальности, целостности и доступности гарантии рабочей нагрузки.

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

Контрольный список разработки рабочей нагрузки

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

  • Создайте базовые показатели безопасности: Начните с базового плана безопасности Azure для SQL Azure. Сосредоточьтесь на элементах управления, на которые модель на уровне экземпляров оказывает наибольшее влияние, включая пользовательские роли уровня сервера для административной сегментации, делегирование ролей в подсети виртуальной сети для сетевой изоляции, управление ключами прозрачного шифрования данных (TDE) на уровне экземпляра и аудит операторов для контроля доступа сотрудников поддержки Microsoft.

    Управляемый экземпляр SQL разделяет фундамент безопасности SQL Azure, но вводит элементы управления, специфичные для экземпляра, такие как сборки Common Language Runtime (CLR), связанные серверы и агент SQL, которые расширяют поверхность атаки за пределы того, что предоставляет база данных SQL. Определите приоритеты этих элементов управления в базовой проверке.

  • Применение стратегий сегментации с использованием идентификационных и сетевых уровней управления: SQL Managed Instance поддерживает сегментацию на основе идентификаторов с помощью ролей уровня сервера и базы данных, которые обеспечивают разделение обязанностей. Пользовательские роли уровня сервера обеспечивают более детальное административное разделение, недоступное в SQL Database. Разделение доступа к плоскости управления и плоскости данных позволяет управлять экземплярами отдельно от операций с данными.

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

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

  • Интеграция с идентификатором Microsoft Entra для управления удостоверениями и доступом: Управляемый экземпляр SQL поддерживает проверку подлинности Microsoft Entra с помощью нескольких методов. Эта поддержка поддерживает централизованное управление удостоверениями и поддерживает политики условного доступа. Управляемый экземпляр SQL также поддерживает проверку подлинности Windows через Kerberos для принципалов Microsoft Entra, что является возможностью, недоступной в базе данных SQL. Устаревшие приложения можно поднять и переместить без изменений кода.

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

  • Реализуйте сетевую изоляцию с помощью виртуальной сети Azure: Управляемый экземпляр SQL развертывается в выделенной подсети виртуальной сети, которая обеспечивает изоляцию на уровне сети по умолчанию и формирует решения по обеспечению безопасности.

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

    • Делегировать подсеть управляемого экземпляра исключительно для типа управляемого экземпляра и применять NSG-правила, поддерживаемые службой, для управления трафиком.

    • Назначьте уникальные таблицы маршрутов и группы безопасности сети каждой подсети SQL Managed Instance для пиринга виртуальной сети. Повторное использование общих таблиц вызывает сбои подключения.

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

    Уровень Объем Основное соображение
    TDE На уровне экземпляра все базы данных наследуют один и тот же ключ. Ротация затрагивает все базы данных одновременно, и необходимо сохранить предыдущие версии ключей для восстановления из резервной копии.
    Шифрование транспорта (TLS) Подключения при передаче Применение текущих стандартов безопасности транспортного уровня (TLS) и строгих режимов подключения, чтобы предотвратить атаки с понижением уровня протокола.
    Всегда зашифровано Уровень столбца, ключи остаются вне механизма базы данных Защищает данные от привилегированных пользователей. Безопасные анклавы поддерживают серверные операции с зашифрованными данными.
  • Укрепление конфигураций экземпляра для уменьшения поверхности атак: Управляемый экземпляр SQL предоставляет возможности сверх базы данных SQL, расширяющие поверхность атаки. Для этой функциональности необходимы целенаправленные меры по ужесточению наряду с контролем управления.

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

    • Агент SQL, связанные серверы, сборки CLR и xp_cmdshell требуют оценки рисков. Деактивируйте неиспользуемые возможности и применяйте текущие стандарты TLS.

    • Используйте управление доступом на основе ролей Azure (Azure RBAC) для ограничения операций управления, применения блокировок ресурсов и принудительного применения конфигураций безопасности с помощью политики Azure.

  • Защита учетных данных и ключей шифрования с помощью управляемых удостоверений и Azure Key Vault: Управляемые удостоверения устраняют сохраненные учетные данные для подключения между приложениями и интеграции между службами. Назначенные пользователем управляемые удостоверения удаляют секреты подключения и упрощают управление ротацией.

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

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

  • Настройте мониторинг безопасности и ведение журнала аудита: Аудит Управляемого экземпляра SQL поддерживает хранилище BLOB Azure, Центры событий Azure и журналы Azure Monitor в качестве целевых объектов аудита. Аудит операторов обеспечивает видимость операций поддержки Майкрософт в экземпляре. Для обеспечения соответствия требованиям требуется проверка целостности журнала аудита.

    Интеграция Log Analytics поддерживает расширенные запросы и корреляцию событий безопасности, а центры событий поддерживают интеграцию внешней информации безопасности и управления событиями (SIEM). Microsoft Defender для SQL добавляет защиту от угроз, включая оповещения о внедрении, атаки методом перебора и необычные шаблоны доступа.

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

Рекомендации по настройке

Recommendation Преимущества
Создайте пользовательские роли уровня сервера , которые предоставляют разрешения для определенных административных функций, а не предоставляют широкие привилегии. Избегайте назначения встроенных учетных записей db_owner или администратора сервера для рабочих процессов приложений. Снижает риск эскалации привилегий путем ограничения каждой административной роли минимальными разрешениями, необходимыми ему. Пользовательские роли уровня сервера позволяют применять детализированное разделение обязанностей, которые не предоставляют встроенные роли.
Включите проверку подлинности только для Microsoft Entra и отключите проверку подлинности на основе SQL для управляемого экземпляра. Перед переключением процесса перенесите задания SQL агента, связанные серверы и учетные данные аудита, которые зависят от входов SQL, в объекты Microsoft Entra. Устраняет векторы атак на основе учетных данных путем удаления проверки подлинности SQL и применения современных протоколов удостоверений, поддерживающих многофакторную проверку подлинности.
Настройте назначаемое пользователем управляемое удостоверение в качестве удостоверения экземпляра для интеграции службы Azure, включая TDE с ключами, управляемыми клиентом, аудит в хранилище данных и межсервисную проверку подлинности. Удаляет затраты на управление учетными данными для интеграции служб Azure и снижает риск предоставления секретов в конфигурации.
Держите общедоступную конечную точку выключенной для производственных экземпляров. Если требуется общедоступный доступ, ограничьте его определенными диапазонами IP-адресов с помощью правил NSG. Используйте локальное подключение виртуальной сети для стандартных конечных точек доступа и частных конечных точек для сценариев между виртуальными сетями. Сокращает область сетевой атаки до авторизованных путей виртуальной сети, что упрощает аудит соответствия требованиям и уменьшает радиус взрыва скомпрометированных учетных данных.
Настройте правила NSG в подсети Управляемого экземпляра SQL , чтобы разрешить только требуемый входящий трафик из авторизованных источников. Примените подход отказа по умолчанию, сохраняя обязательные правила, поддерживаемые службами для операций экземпляров. Предотвращает латеральное движение от скомпрометированных ресурсов в смежных подсетях, что ограничивает зону поражения во время пробоя на сетевом уровне.
Настройте TDE с использованием ключей управления клиентом в хранилище ключей с включенной функцией обратимого удаления и защитой от очистки. Используйте управляемую идентичность, назначенную пользователем, для доступа к ключам. Включите автоматическую смену и присвойте хранилищу ключей ресурсы Управляемого экземпляра SQL. Обеспечивает полный контроль над жизненным циклом ключа шифрования, включая смену и отзыв и соответствие требованиям к управлению ключами организации.
Используйте Microsoft Defender для SQL для активации оценки уязвимостей и расширенной защиты от угроз. Настройте оповещения для событий обнаружения и перенаправьте их в операции безопасности через Microsoft Defender для Облака. Обнаруживает неправильные настройки безопасности и активные угрозы с помощью автоматического сканирования и анализа поведения, который интегрируется в рабочие процессы операций безопасности.
Отключите агент SQL , если рабочая нагрузка не использует ее. Когда активен, избегайте назначения заданий учетным записям с высоким уровнем привилегий и настройте прокси-учетные записи для этапов, требующих специальных учетных данных. Предотвращает эскалацию привилегий с помощью агента SQL путем ограничения владения заданиями и доступа к учетным данным, что сводит к минимуму область атаки управляемого экземпляра SQL.
Храните ключи защиты TDE и столбцовые мастер-ключи Always Encrypted в хранилище ключей с обратимым удалением и защитой от очистки. Включите ведение журнала аудита Key Vault и используйте выделенное хранилище для Управляемого экземпляра SQL, чтобы избежать регулирования. Централизованное управление ключами шифрования с полной историей аудита и предотвращает случайную потерю ключей, которая может затруднить доступ к базе данных.
Включите аудит сервера и настройте группы событий для записи действий входа и завершенных запросов. Настройте два назначения. Используйте хранилище BLOB-объектов для долгосрочного хранения и логи Azure Monitor для анализа в режиме реального времени.

Создайте отдельный аудит сервера с включенным аудитом оператора для отслеживания операций поддержки Майкрософт. Включите неизменяемое хранилище для аудиторских BLOB-контейнеров, чтобы предотвратить изменение записей.
Поддерживает полный журнал аудита активности базы данных для соблюдения требований соответствия, расследования инцидентов и обнаружения аномалий.
Настройте параметры диагностики для отправки событий аудита безопасности в рабочую область Log Analytics. Используйте запросы языка запросов Kusto (KQL) для обнаружения аномалий и настройки оповещений о подозрительных шаблонах действий, таких как повторяющиеся неудачные входы. Позволяет анализировать события безопасности в режиме реального времени и сопоставлять между рабочими нагрузками с помощью централизованной агрегации журналов и автоматического обнаружения угроз.

Оптимизация затрат

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

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

Контрольный список разработки рабочей нагрузки

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

  • Создайте и сохраните модель затрат, учитывающую модель выставления счетов за подготовленные вычисления: Управляемый экземпляр SQL использует всегда подготовленную модель вычислений, в которой за vCore выставляются постоянные счета вне зависимости от использования. Модель затрат должна учитывать основные драйверы затрат, которые включают выбор уровня служб, количество виртуальных ядер, создание оборудования и выделение хранилища на основе максимального настроенного размера.

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

    Ограничения квоты региональных виртуальных ядер могут принудительно применять многоподписочные архитектуры, что усложняет отслеживание затрат и управление.

  • Мониторинг и анализ затрат для выявления возможностей оптимизации: В модели с постоянными ресурсами простаивающие вычислительные мощности по-прежнему подразумевают расходы. Используйте службу управления затратами Майкрософт для отслеживания затрат на вычислительные ресурсы, хранилище, резервное копирование и лицензирование на экземпляр. Сравните фактическое потребление хранилища с зарезервированным максимумом для выявления неэффективности выставления счетов.

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

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

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

  • Оптимизируйте затраты на среду в рабочих и тестовых экземплярах: Идентичные производственные и тестовые конфигурации ведут к растрате бюджета в модели постоянного резервирования. Различайте профили затрат SQL Managed Instance, применяя механизмы экономии, специфичные для каждого уровня.

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

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

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

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

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

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

Рекомендации по настройке

Recommendation Преимущества
Сравните фактическое потребление хранилища с максимальным настроенным размером, так как SQL Managed Instance выставляет счета за зарезервированное хранилище вне зависимости от уровня его использования. Уменьшите зарезервированное максимальное значение для экземпляров, где выделение существенно превышает потребление. Идентифицирует случаи, когда предусмотренное хранилище превышает фактическое использование, чтобы можно было оптимизировать и сократить потери за счёт неиспользованного объёма в модели зарезервированного хранилища SQL Managed Instance.
Активируйте преимущество гибридного использования Azure в управляемом экземпляре SQL, чтобы применить существующие лицензии SQL Server, имеющие Software Assurance. Лицензии Enterprise Edition предлагают наиболее благоприятные коэффициенты преобразования, особенно на уровне общего назначения.

При остановке экземпляра общего назначения сначала отключите преимущество гибридного использования Azure и перераспределите лицензии на другие ресурсы SQL Azure. Повторно активируйте функцию после перезапуска экземпляра.
Сокращает затраты на лицензирование SQL Server с помощью существующих локальных лицензий для облачных развертываний. Клиенты Enterprise Edition получают наибольшую экономию на уровне тарифного плана 'Общие цели', учитывая благоприятные коэффициенты преобразования vCore (виртуальных ядер).
Приобретение обязательств по зарезервированной емкости для развертываний Управляемого экземпляра SQL с прогнозируемыми, длительными рабочими нагрузками. Примените резервирования к пулам экземпляров, чтобы объединить общую экономию вычислительных ресурсов с скидками на основе обязательств.

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

Зарезервированная емкость в сочетании с пулами экземпляров обеспечивает наиболее экономичную модель развертывания для нескольких небольших экземпляров.
Назначьте дополнительный экземпляр в группе восстановления после отказа как резервную реплику без лицензии при использовании его исключительно для аварийного восстановления. Резервный режим поддерживает переключение на резервный узел, резервные копии, обслуживание и аварийные восстановительные учения, но не подключения для производственной среды. Устраняет затраты на лицензирование SQL Server на вторичном сервере для аварийного восстановления, при этом сохраняет те же показатели RPO и RTO, как у доступной для чтения реплики.

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

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

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

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

Операционная эффективность

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

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

Контрольный список разработки рабочей нагрузки

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

  • Реализуйте методики безопасного развертывания для изменений конфигурации экземпляра: Операции управления управляемыми экземплярами SQL включают изменения инфраструктуры виртуального кластера, которые выполняются гораздо дольше, чем типичные операции базы данных. Спланируйте методики развертывания по этим длительным периодам, чтобы свести к минимуму нарушения рабочей нагрузки.

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

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

    • Координируйте изменения развертывания группы отработки отказа, обеспечивая соответствие экземпляров политикам обновления. Запланируйте изменения первичных и вторичных экземпляров в разное время.

  • Определите инфраструктуру как код для развертываний экземпляров, интегрированных с виртуальной сетью: Для управляемого экземпляра SQL требуется развертывание, интегрированное с виртуальной сетью, с делегированием подсети, правилами NSG и таблицами маршрутов перед подготовкой. Структурируйте инфраструктуру в виде шаблонов кода (IaC) на уровнях зависимостей, чтобы сеть развертывается первой, удостоверения и RBAC развертываются вторыми, а ресурсы экземпляров развертываются последними.

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

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

    Изменения схемы требуют проверки в отношении задокументированных различий совместимости T-SQL перед развертыванием. Проверьте совместимость в конвейере и верифицируйте зависимости кросс-баз данных и функции, связанные с областью действия экземпляра, при проверке после развертывания.

  • Установите наблюдаемость с помощью Azure Monitor и диагностики на основе SQL: Для отслеживания управляемого экземпляра SQL требуется телеметрия платформы Azure Monitor и встроенная диагностика SQL, такие как динамические административные представления ,хранилище запросов и расширенные события. Объедините эти уровни для полного представления работоспособности экземпляра и производительности рабочей нагрузки.

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

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

  • Автоматизация задач управления, мониторинга и обслуживания: Управляемый экземпляр SQL включает агент SQL, встроенный планировщик заданий, который обрабатывает обслуживание базы данных и операционные задачи без внешней оркестрации. Объединение агента SQL с автоматизацией на уровне Azure для полного охвата операций ядра СУБД и плоскостей управления.

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

    • Используйте службу автоматизации Azure или Функции Azure для операций, требующих взаимодействия Azure Resource Manager, таких как мониторинг операций управления и управление хранением резервных копий.

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

  • Установите методики тестирования и проверки для развертываний баз данных: Совместимость SQL Managed Instance SQL Server поддерживает стандартные средства тестирования, но вам по-прежнему необходимо проверить операции управления, межбазовые зависимости и функции, связанные с экземплярами. Используйте фактические тестовые среды управляемого экземпляра SQL, так как база данных SQL и SQL Server имеют разные функции инфраструктуры и управления.

Рекомендации по настройке

Recommendation Преимущества
Отслеживайте ход выполнения операций управления с помощью PowerShell, Azure CLI или REST API для отслеживания шагов и обнаружения проблем. Отмена приостановленных или ненужных операций при наличии. Для отмены требуется время очистки инфраструктуры. Ваша команда получает представление о расширенных операциях, чтобы принимать обоснованные решения о ожидании, отмене или эскалации. Ранние отмены снижают влияние проблемных операций, прежде чем они вызывают длительные нарушения.
Развертывание сетевых предварительных условий для SQL Managed Instance как отдельного модуля IaC, который завершается перед началом развертывания экземпляра. В шаблоне включите делегирование Microsoft.Sql/managedInstances подсети и обязательные правила NSG для трафика управления. Перед началом развертывания экземпляра вы проверяете сетевые предварительные условия, что предотвращает сбои в развертывании из-за отсутствия делегирования или правил NSG. Используйте отдельные модули для управления жизненным циклом сетевого взаимодействия и инфраструктуры баз данных независимо.
Задайте время ожидания конвейера для этапов инфраструктуры Управляемого экземпляра SQL на основе задокументированных длительности операций, которые значительно зависят от типа операции.

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

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

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

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

Используйте API операций управления или рабочие книги Azure Monitor, чтобы выявить тенденции хода выполнения и длительности операций в вашем хозяйстве управляемых экземпляров SQL.
Раннее обнаружение остановленных или неудачных операций снижает риск во время расширенных изменений инфраструктуры. У вашей команды есть время вмешаться, прежде чем последствия усилятся.
Создание заданий агента SQL для обслуживания индексов, обновлений статистики и проверок согласованности во всех базах данных в экземпляре. Запланируйте выполнение этих заданий на периоды низкого трафика и распределите их запуск по времени, чтобы избежать соперничества за ресурсы. Согласованное автоматическое обслуживание обеспечивает работоспособность базы данных и производительность запросов без внешних средств планирования.

Управляемый экземпляр SQL с встроенным агентом SQL снижает эксплуатационные расходы по сравнению с пользовательской инфраструктурой автоматизации.
Используйте проекты базы данных SQL с целевой платформой управляемого экземпляра SQL для проверки совместимости T-SQL и определения неподдерживаемого синтаксиса перед развертыванием в рабочей среде.

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

Эффективность работы

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

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

Контрольный список разработки рабочей нагрузки

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

  • Планирование емкости: Управляемый экземпляр SQL использует модель, в которой все базы данных используют виртуальные ядра, память, операции ввода-вывода в секунду (IOPS) и хранилище. Планирование емкости в пространстве базы данных является важным, так как потребление ресурсов одной базы данных напрямую влияет на все остальные.

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

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

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

    Решение Что нужно оценить
    Уровень служб Соответствие требованиям к задержке ввода-вывода и требованиям к функциям. Учтите различия в архитектуре между удаленным и локальным хранилищем, а также влияние задержки, связанное с конфигурациями с избыточностью данных по зонам.
    Модель IOPS Подходы к выделению варьируются от масштабирования, зависящего от размера файла (общего назначения), до выделения на уровне экземпляра и подготовки виртуальных ядер (бизнес-критически важный, общего назначения следующего поколения).
    Тип подключения Используйте тип подключения Redirect в локальных конечных точках виртуальной сети, чтобы уменьшить задержку каждого запроса для постоянных задач.
  • Выберите правильную стратегию масштабирования для рабочей нагрузки: Управляемый экземпляр SQL поддерживает только вертикальное масштабирование. Служба не предлагает автоматическое масштабирование, бессерверные вычисления или уровень гипермасштабирования.

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

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

    • Используйте гибкую память в Next-gen General Purpose для настройки выделения памяти независимо от количества виртуальных ядер. Изменения активируют переключение экземпляра как заключительный этап.

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

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

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

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

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

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

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

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

Рекомендации по настройке

Recommendation Преимущества
Выберите аппаратное поколение по коэффициенту памяти на виртуальные ядра, а не добавляйте виртуальные ядра, если память является ограничением. Поколение оборудования серии "Премиум" балансирует память и затраты, в то время как оптимизированное для памяти оборудование серии "Премиум" подходит для больших буферных пулов или ограничений емкости OLTP в памяти. Оптимизация с использованием соотношения памяти позволяет избежать переизбытка виртуальных ядер (vCPUs), что снижает затраты и соответствует целевым показателям производительности.
Задайте тип подключения перенаправления в локальной конечной точке виртуальной сети для рабочих нагрузок, которые подключаются из виртуальной сети.

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

Используйте географическую вторичную группу для переключения на резерв в межрегиональном чтении, если доступно. В Управляемом экземпляре SQL этот подход снижает давление на общие виртуальные ядра и память во всех базах данных экземпляра.
Освобождает основные вычислительные ресурсы для интенсивных операций записи во всех базах данных, перенаправляя операции чтения на включённую вторичную реплику без дополнительных затрат.
Включите хранилище запросов в Read-Write режиме для каждой базы данных и регулярно просматривайте отчеты, чтобы определить регрессированные запросы, изменения плана и операции с потреблением ресурсов.

Объедините аналитику хранилища запросов с отсутствующими динамическими представлениями индексов для вычисления и создания индексов вручную. Управляемый экземпляр SQL не поддерживает автоматическое управление индексами.

Задайте значения хранения и размера хранилища, чтобы сбалансировать доступность исторических данных с потреблением хранилища.
Обеспечивает непрерывную видимость качества плана запросов и поведения среды выполнения, чтобы вы могли обнаруживать регрессии рано и принимать обоснованные решения по оптимизации.
Используйте OLTP в памяти на уровне "Критически важный для бизнеса" для рабочих нагрузок с высокой пропускной способностью, таких как прием данных, кэширование и состояние сеанса. Учитывайте доступную для работы в памяти емкость хранилища OLTP при выборе поколения оборудования, так как ограничения зависят от конфигурации. Устраняет конфликт блокировок и снижает нагрузку на ЦП для рабочих нагрузок с высокой пропускной способностью, что часто исключает необходимость в более высоком уровне вычислительных ресурсов.
Настройте регулятор ресурсов для управления распределением ЦП, памяти и операций ввода-вывода в рабочих нагрузках, которые совместно используют экземпляр, учитывая особенности поведения управляемого экземпляра SQL. Эта функция непосредственно решает проблему риска "шумного соседа" в модели развертывания с областью действия отдельных экземпляров. Предотвращает монополизацию ресурсов общего экземпляра любой одной базой данных или запросом, что обеспечивает изоляцию рабочей нагрузки в пределах пространства базы данных.
Планируйте использование TempDB в соответствии с фиксированным выделением и конфигурацией файла, которую нельзя изменить в управляемом экземпляре SQL.

Уровень общего назначения обеспечивает более низкое распределение tempDB для виртуальных ядер , чем другие предложения SQL Azure. Оцените уровень "Критически важный для бизнеса" для рабочих нагрузок на TempDB, превышающих эти ограничения.
Избегает исчерпания пространства TempDB, учитывая фиксированные ограничения распределения и конфигурации файлов в уровне «Общего назначения».
Оптимизируйте размеры файлов данных на уровне общего назначения, чтобы максимально увеличить число операций ввода-вывода в секунду. Более крупные файлы получают пропорционально более высокую пропускную способность из удаленного уровня хранилища.

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

Политики Azure

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

  • Ключи, управляемые клиентом, следует использовать для шифрования неактивных данных в управляемых экземплярах SQL.
  • Следует активировать аутентификацию только через Microsoft Entra для управляемых экземпляров SQL.
  • Необходимо заблокировать доступ к общедоступной сети в управляемых экземплярах SQL.
  • Следует избежать избыточности резервного копирования GRS в управляемых экземплярах SQL.

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

Рекомендации Помощника по Azure

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

Для получения дополнительной информации см. Azure Advisor.

Пример архитектуры

Базовая архитектура, демонстрирующая основные рекомендации: полностью управляемое и защищенное приложение в Управляемом экземпляре SQL.