Открыть сервис

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

Управляемый экземпляр Azure SQL — это облачная платформа как услуга (PaaS) от компании Microsoft, предоставляющая полностью управляемый экземпляр ядра СУБД Microsoft SQL Server, развернутый в инфраструктуре Microsoft Azure. Данный сервис сочетает в себе преимущества облачной модели с высокой совместимостью с локальными развертываниями SQL Server, обеспечивая встроенную высокую доступность, автоматическое резервное копирование и масштабирование, а также изоляцию сети через виртуальную частную сеть (VNet).

История и предпосылки появления

Сервис Azure SQL Database, запущенный в 2010 году, изначально был ориентирован на облачные приложения и не обеспечивал полной совместимости с локальными инсталляциями SQL Server. Основные ограничения касались области видимости (scope) базы данных: многие функции, доступные на уровне экземпляра (например, агент SQL Server, интеграция Service Broker, общие базы данных), не были реализованы. В ответ на запросы корпоративных клиентов, которые хотели перенести существующие приложения в облако без значительных изменений кода, Microsoft анонсировала Управляемый экземпляр Azure SQL на конференции Build 2018. Публичная предварительная версия стала доступна в сентябре 2018 года, а общая доступность (GA) была объявлена в декабре 2018 года. Основной целью сервиса было предоставление «близкого к 100%» уровня совместимости с локальным SQL Server, при этом сохраняя все преимущества PaaS.

Архитектура и ключевые характеристики

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

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

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

  • Изоляцию на уровне сети: Доступ к экземпляру возможен только через частные IP-адреса из VNet или через подключения типа «точка-сеть» (Point-to-Site) и «сеть-сеть» (Site-to-Site).
  • Принудительное туннелирование: Возможность направления всего исходящего трафика через шлюз VNet для инспекции и логирования.
  • Группы безопасности сети (NSG): Управление входящим и исходящим трафиком на уровне подсети.

Уровни обслуживания и производительность

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

Уровень обслуживанияОписаниеКлючевые характеристики
General Purpose (GP)Предназначен для большинства рабочих нагрузок с акцентом на сбалансированную производительность и доступность.Хранение на удаленных дисках (Azure Premium Storage), задержка записи ~5-7 мс, автоматическое резервное копирование, высокая доступность (99.99% SLA).
Business Critical (BC)Обеспечивает максимальную производительность и отказоустойчивость для критически важных приложений.Хранение на локальных SSD-дисках (встроенное хранилище), задержка записи ~1-2 мс, использование технологии Always On Availability Groups для высокой доступности, читаемые реплики (Read Scale-out).

Производительность измеряется в виртуальных ядрах (vCores) и объеме памяти. Доступные конфигурации варьируются от 4 до 128 виртуальных ядер на каждом уровне. Объем хранилища для уровня General Purpose может достигать 16 ТБ, для Business Critical — до 4 ТБ.

Совместимость с локальным SQL Server

Управляемый экземпляр Azure SQL обеспечивает высокий уровень совместимости с локальными версиями SQL Server (начиная с SQL Server 2008). Основные поддерживаемые функции включают:

  • Агент SQL Server (SQL Agent): Полная поддержка заданий, операторов и предупреждений.
  • Service Broker: Полная поддержка для обмена сообщениями между экземплярами.
  • Linked Servers: Поддержка подключения к другим экземплярам SQL Server (как в облаке, так и локально) и к источникам данных OLE DB.
  • Database Mail: Поддержка отправки электронной почты из экземпляра.
  • CLR Integration: Поддержка интеграции с общеязыковой средой выполнения (CLR) .NET.
  • Full-Text Search: Полнотекстовый поиск.
  • Replication: Поддержка транзакционной репликации (в качестве издателя и подписчика) и репликации моментальных снимков.
  • PolyBase: Поддержка запросов к внешним данным (например, к Azure Blob Storage).
  • Temporal Tables: Поддержка темпоральных таблиц.
  • In-Memory OLTP: Поддержка для уровня Business Critical.

Ограничения касаются некоторых функций, которые либо не поддерживаются, либо имеют ограниченную функциональность, например, распределенные запросы (distributed queries) с использованием Linked Servers, некоторые возможности репликации (например, peer-to-peer), а также функции, связанные с файловой системой (например, xp_cmdshell).

Миграция на управляемый экземпляр

Microsoft предоставляет несколько инструментов и методов для миграции существующих баз данных SQL Server на Управляемый экземпляр Azure SQL:

  • Azure Database Migration Service (DMS): Полностью управляемый сервис, который выполняет онлайн-миграцию (с минимальным простоем) или офлайн-миграцию. DMS автоматически оценивает совместимость, выполняет преобразование схемы и перенос данных.
  • Data Migration Assistant (DMA): Локальное приложение, которое анализирует базу данных на предмет проблем совместимости с Управляемым экземпляром Azure SQL и рекомендует изменения.
  • Резервное копирование и восстановление: Использование файлов резервных копий (.bak) с последующим восстановлением в облачный экземпляр. Этот метод требует, чтобы файлы были доступны из облака (например, через Azure Blob Storage).
  • Транзакционная репликация: Использование репликации для синхронизации данных между локальным экземпляром и облачным экземпляром в реальном времени, что позволяет выполнить миграцию с минимальным простоем.

Управление и мониторинг

Как и другие сервисы PaaS в Azure, Управляемый экземпляр Azure SQL предоставляет встроенные инструменты для управления и мониторинга:

  • Портал Azure: Веб-интерфейс для создания, настройки и мониторинга экземпляров.
  • Azure CLI и PowerShell: Возможность автоматизации задач управления через командную строку.
  • Azure Monitor: Сбор метрик производительности (например, загрузка ЦП, использование памяти, операции ввода-вывода) и журналов.
  • Автоматическое резервное копирование: Система автоматически создает полные, дифференциальные и журнальные резервные копии, которые хранятся в течение заданного срока (от 1 до 35 дней).
  • Автоматическое обновление: Microsoft отвечает за применение патчей безопасности и обновлений ядра SQL Server, что минимизирует нагрузку на администраторов баз данных.

Преимущества и ограничения

Преимущества

  • Высокая совместимость: Минимальные изменения кода при миграции с локального SQL Server.
  • Управляемость: Отсутствие необходимости в администрировании операционной системы и установке обновлений.
  • Высокая доступность: Встроенная отказоустойчивость с гарантированным SLA (99.99%).
  • Безопасность: Изоляция сети, встроенная защита от угроз (Azure Defender for SQL), шифрование данных в покое и в движении.
  • Масштабируемость: Возможность изменения количества виртуальных ядер и объема хранилища в зависимости от потребностей.

Ограничения

  • Стоимость: Может быть выше, чем у традиционных виртуальных машин с SQL Server, особенно при больших объемах данных.
  • Сетевая сложность: Требуется правильная настройка VNet и подсетей, что может быть сложно для начинающих пользователей.
  • Неполная совместимость: Некоторые функции SQL Server (например, Distributed Availability Groups, FileStream) не поддерживаются или имеют ограничения.
  • Зависимость от Azure: Сервис привязан к экосистеме Microsoft Azure, что может быть проблемой для мультиоблачных стратегий.

Применение

Управляемый экземпляр Azure SQL наиболее востребован в следующих сценариях:

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

Источники

  1. Документация Microsoft Azure: «Что такое Управляемый экземпляр Azure SQL?»
  2. Документация Microsoft Azure: «Миграция в Управляемый экземпляр Azure SQL»
  3. Документация Microsoft Azure: «Уровни обслуживания Управляемого экземпляра Azure SQL»
  4. Блог Microsoft Azure: анонс публичной предварительной версии Управляемого экземпляра Azure SQL (сентябрь 2018 г.)
  5. Техническая документация Microsoft SQL Server: «Совместимость с Управляемым экземпляром Azure SQL»

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →