Azure SQL Managed Instance¶
Azure SQL Managed Instance — это полностью управляемая платформа как услуга (PaaS) для развёртывания баз данных в облаке Microsoft Azure, которая обеспечивает высокую совместимость с ядром СУБД Microsoft SQL Server и предоставляет встроенные средства для миграции существующих баз данных без необходимости изменения приложений. Сервис сочетает возможности изолированного экземпляра SQL Server с преимуществами облачной модели управления, автоматического резервного копирования и масштабирования.
¶История и развитие
Сервис Azure SQL Managed Instance был анонсирован корпорацией Microsoft в мае 2018 года на конференции Build и стал доступен в режиме публичной предварительной версии в сентябре 2018 года. Основной целью разработки было устранение разрыва между полностью управляемым сервисом Azure SQL Database (база данных как услуга, DBaaS) и традиционными развёртываниями SQL Server на виртуальных машинах (IaaS). Ключевым стимулом для создания Managed Instance стала необходимость упростить миграцию сложных корпоративных приложений, использующих такие функции SQL Server, как SQL Server Agent, Service Broker, Database Mail, CLR-интеграция и репликация, которые не были доступны в Azure SQL Database.
В 2019 году сервис вышел в общую доступность (GA). С тех пор Microsoft регулярно обновляет Managed Instance, добавляя новые возможности, такие как поддержка эластичных пулов (для оптимизации затрат при большом количестве мелких баз данных), интеграция с Azure Active Directory и поддержка зон доступности для обеспечения высокой отказоустойчивости.
¶Архитектура и устройство
Azure SQL Managed Instance основан на той же архитектуре, что и Azure SQL Database, но с ключевыми отличиями, обеспечивающими изоляцию и совместимость.
¶Виртуальный кластер
Каждый экземпляр Managed Instance разворачивается в изолированном наборе виртуальных машин, называемом виртуальным кластером. Этот кластер выделяется под конкретного клиента и не используется совместно с другими клиентами. Внутри кластера может быть размещено несколько экземпляров Managed Instance, что позволяет эффективно распределять ресурсы. Виртуальный кластер автоматически управляется платформой Azure, и клиент не имеет доступа к операционной системе или гипервизору.
¶Сеть и безопасность
Экземпляр Managed Instance размещается в выделенной подсети виртуальной сети Azure (VNet). Это обеспечивает полную сетевую изоляцию: экземпляр получает собственный частный IP-адрес, недоступный из интернета напрямую. Доступ к нему возможен только через настроенные правила сетевой безопасности (NSG) и маршрутизацию, а также через Azure ExpressRoute или VPN-шлюз. Для подключения с локальных машин или других облачных сервисов требуется настроить гибридное соединение.
¶Хранилище
Данные и журналы транзакций хранятся на управляемом хранилище Azure (Premium SSD или Ultra Disk), которое автоматически реплицируется в пределах одного региона для обеспечения отказоустойчивости. Размер хранилища можно увеличивать без остановки работы экземпляра. Максимальный объём хранилища для одного экземпляра может достигать 16 ТБ.
¶Классификация и модели развёртывания
Azure SQL Managed Instance предлагается в нескольких вариантах, различающихся по производительности, цене и доступности.
¶По поколению оборудования
- Gen5 (поколение 5) — стандартное оборудование на базе процессоров Intel Xeon. Доступно во всех регионах Azure.
- Premium-series — оборудование с процессорами Intel Xeon Platinum 8370C (Ice Lake) и более быстрой памятью. Обеспечивает более высокую производительность по сравнению с Gen5.
- Premium-series memory-optimized — вариант с увеличенным объёмом оперативной памяти на виртуальное ядро, оптимизированный для рабочих нагрузок с высокими требованиями к памяти.
¶По уровню обслуживания
- General Purpose (общего назначения) — стандартный уровень, предназначенный для большинства рабочих нагрузок. Характеризуется сбалансированным соотношением производительности и стоимости. Время восстановления после сбоя (RTO) составляет до 10 секунд при использовании встроенной репликации.
- Business Critical (критически важный для бизнеса) — уровень с высокой производительностью и минимальным временем восстановления (RTO < 5 секунд). Использует четыре синхронные реплики базы данных, размещённые на разных физических узлах. Обеспечивает максимальную отказоустойчивость и производительность для критически важных приложений.
¶По модели развёртывания
- Одиночный экземпляр — один экземпляр Managed Instance, выделенный под конкретную базу данных или набор баз данных.
- Эластичный пул — группа экземпляров Managed Instance, объединённых для совместного использования ресурсов (виртуальных ядер и хранилища). Позволяет оптимизировать затраты при управлении большим количеством баз данных с неравномерной нагрузкой.
¶Применение и значение
Azure SQL Managed Instance в первую очередь предназначен для организаций, которые хотят перенести существующие приложения на SQL Server в облако, сохранив при этом максимальную совместимость с существующим кодом и инфраструктурой.
¶Миграция с SQL Server
Основное применение сервиса — lift-and-shift миграция. Приложения, использующие такие функции, как:
- SQL Server Agent (для запланированных задач),
- Service Broker (для асинхронного обмена сообщениями),
- Database Mail (для отправки электронной почты),
- CLR-интеграция (для выполнения кода .NET),
- репликация (транзакционная, моментальные снимки, слияние),
- полнотекстовый поиск,
- пространственные данные,
- поддержка нескольких баз данных в одном экземпляре,
— могут быть перенесены на Managed Instance практически без изменений. Это значительно упрощает и ускоряет процесс миграции по сравнению с переходом на Azure SQL Database.
¶Гибридные сценарии
Managed Instance часто используется в гибридных архитектурах, где часть данных остаётся в локальной сети, а часть — в облаке. Например, можно настроить репликацию между локальным SQL Server и Managed Instance для обеспечения высокой доступности или для выгрузки отчётных нагрузок в облако.
¶Разработка и тестирование
Сервис также применяется для создания изолированных сред разработки и тестирования, которые полностью повторяют производственную среду, но с меньшими затратами. Благодаря возможности быстрого развёртывания и удаления экземпляров, команды разработчиков могут создавать временные копии баз данных для тестирования новых функций.
¶Интересные факты
- Совместимость: Azure SQL Managed Instance обеспечивает совместимость на уровне 99,9% с ядром SQL Server 2019 и более поздних версий. Это означает, что подавляющее большинство приложений, написанных для локального SQL Server, будут работать на Managed Instance без изменений.
- Автоматическое резервное копирование: Платформа автоматически создаёт резервные копии баз данных каждые 5–10 минут, а также полные и дифференциальные копии. Срок хранения резервных копий по умолчанию составляет 7 дней, но может быть настроен до 35 дней.
- Интеграция с Azure Active Directory: Managed Instance поддерживает аутентификацию через Azure Active Directory (Azure AD), что позволяет использовать единый вход (SSO) и управлять доступом на уровне пользователей и групп.
- Зоны доступности: Для уровня Business Critical Managed Instance может быть развёрнут в нескольких зонах доступности Azure, что обеспечивает отказоустойчивость даже при сбое целого дата-центра.
- Ограничения: В отличие от локального SQL Server, Managed Instance не поддерживает некоторые функции, такие как FILESTREAM, PolyBase (в некоторых конфигурациях), Distributed Transaction Coordinator (DTC) в полном объёме, а также некоторые расширенные возможности Reporting Services. Перед миграцией рекомендуется провести анализ совместимости с помощью инструмента Azure SQL Migration Assessment.
¶Критика
Основные критические замечания в адрес Azure SQL Managed Instance связаны с его стоимостью и ограничениями. Для крупных экземпляров с высокими требованиями к производительности стоимость может быть значительно выше, чем при развёртывании SQL Server на виртуальных машинах Azure (IaaS). Кроме того, отсутствие полного контроля над операционной системой и конфигурацией сервера может быть проблемой для администраторов, привыкших к тонкой настройке SQL Server. Некоторые пользователи также отмечают, что процесс миграции, хотя и упрощён, всё ещё требует тщательного планирования и тестирования, особенно для сложных приложений с большим количеством зависимостей.
¶Источники
- Документация Microsoft Azure: «What is Azure SQL Managed Instance?»
- Документация Microsoft Azure: «Azure SQL Managed Instance overview»
- Документация Microsoft Azure: «Azure SQL Managed Instance pricing»
- Документация Microsoft Azure: «Azure SQL Managed Instance migration»
- Статья Microsoft Tech Community: «Azure SQL Managed Instance: A deep dive into the architecture»
- Книга: «Microsoft Azure SQL Managed Instance: A Comprehensive Guide» (авторы: Dmitry Balin, Mihail Mateev)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


