Управляемый экземпляр 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 для обеспечения аварийного восстановления или распределения нагрузки.
- Разработка и тестирование: Быстрое создание изолированных сред для разработки и тестирования приложений.
Источники
- Документация Microsoft Azure: «Что такое Управляемый экземпляр Azure SQL?»
- Документация Microsoft Azure: «Миграция в Управляемый экземпляр Azure SQL»
- Документация Microsoft Azure: «Уровни обслуживания Управляемого экземпляра Azure SQL»
- Блог Microsoft Azure: анонс публичной предварительной версии Управляемого экземпляра Azure SQL (сентябрь 2018 г.)
- Техническая документация Microsoft SQL Server: «Совместимость с Управляемым экземпляром Azure SQL»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →