Azure SQL Database
Azure SQL Database — это полностью управляемая облачная реляционная база данных как сервис (DBaaS), предоставляемая корпорацией Microsoft в рамках платформы Microsoft Azure. Она построена на основе ядра Microsoft SQL Server и обеспечивает автоматическое управление инфраструктурой, резервное копирование, обновление и масштабирование, освобождая пользователей от задач администрирования серверов и операционных систем. Azure SQL Database поддерживает синтаксис Transact-SQL (T-SQL) и совместима с большинством инструментов и клиентских библиотек, используемых для локальных версий SQL Server.
История
Развитие Azure SQL Database началось с выпуска в 2009 году службы SQL Azure, которая изначально предлагалась как реляционная база данных в облаке с ограниченной функциональностью по сравнению с локальным SQL Server. Основной целью было предоставление простого и масштабируемого решения для веб-приложений, работающих в Windows Azure (ныне Microsoft Azure).
В 2014 году Microsoft переименовала SQL Azure в Azure SQL Database и значительно расширила её возможности. Были добавлены поддержка индексов columnstore, эластичные пулы баз данных, а также возможность выбора уровня производительности (DTU — Database Transaction Unit). В 2017 году была представлена модель vCore (виртуальные ядра), которая позволила более гибко настраивать вычислительные ресурсы и использовать собственные лицензии SQL Server по программе Azure Hybrid Benefit.
Ключевым этапом стало внедрение Hyperscale в 2018 году — архитектуры, позволяющей автоматически масштабировать хранилище до 100 ТБ и выше без простоев. В последующие годы Microsoft продолжила интеграцию с другими сервисами Azure, добавив поддержку машинного обучения, аналитики в реальном времени (через Azure Synapse Link) и улучшенные средства безопасности.
Архитектура и модель развертывания
Azure SQL Database работает на основе разделённой архитектуры, где вычислительные ресурсы (CPU, память) и хранилище логически отделены друг от друга. Это позволяет независимо масштабировать каждый компонент.
Уровни обслуживания
Azure SQL Database предлагает несколько уровней обслуживания, разделённых на две модели покупки:
- Модель DTU (Database Transaction Unit):
- Basic: для небольших баз данных с низкой нагрузкой; обеспечивает до 2 ГБ хранилища и один DTU.
- Standard: для типичных OLTP-нагрузок; предлагает от 10 до 3000 DTU и до 1 ТБ хранилища.
- Premium: для высоконагруженных приложений с низкой задержкой; поддерживает до 4000 DTU и до 4 ТБ хранилища (до 1 ТБ для уровня P1-P6).
- Модель vCore (виртуальные ядра):
- General Purpose: сбалансированный вариант для большинства рабочих нагрузок; обеспечивает предсказуемую производительность и автоматическое резервное копирование. Хранилище — до 4 ТБ.
- Business Critical: для приложений, критичных к задержкам; использует несколько реплик с прямым доступом к хранилищу (In-Memory OLTP). Хранилище — до 4 ТБ.
- Hyperscale: для очень больших баз данных (до 100 ТБ и более); обеспечивает быстрое масштабирование хранилища и высокую производительность чтения/записи.
Эластичные пулы
Эластичные пулы (Elastic Pools) — это модель, при которой несколько баз данных с непредсказуемой нагрузкой объединяются в общий пул ресурсов (DTU или vCore). Это позволяет снизить затраты, так как базы данных делят общий объём вычислительных мощностей, а не используют выделенные ресурсы для каждой. Пулы особенно эффективны для SaaS-приложений с множеством клиентов (мультитенантные среды).
Бессерверный режим (Serverless)
В модели vCore доступен бессерверный (serverless) уровень, который автоматически приостанавливает базу данных при отсутствии активности и возобновляет её при появлении запросов. Плата взимается только за используемое хранилище и вычислительные ресурсы во время активности. Это экономически выгодно для периодически используемых баз данных, например, для разработки или тестирования.
Основные возможности
Автоматическое управление и обслуживание
Azure SQL Database полностью управляется платформой: автоматически применяет обновления безопасности и исправления для ядра SQL Server, выполняет резервное копирование (с возможностью восстановления на любой момент времени в пределах срока хранения), а также мониторит производительность и предлагает рекомендации по оптимизации.
Высокая доступность и аварийное восстановление
По умолчанию Azure SQL Database обеспечивает соглашение об уровне обслуживания (SLA) до 99,99% доступности. Это достигается за счёт использования нескольких реплик в рамках одного дата-центра (локальная избыточность) и возможности настройки географической репликации (Active Geo-Replication) между разными регионами Azure. При отказе основного дата-центра можно вручную или автоматически переключиться на реплику в другом регионе.
Безопасность
Azure SQL Database включает многоуровневую систему безопасности:
- Сетевая безопасность: брандмауэр на уровне сервера и базы данных, виртуальные сети (VNet) и частные конечные точки (Private Link).
- Аутентификация и авторизация: поддержка встроенной аутентификации Azure Active Directory (AAD) и традиционной аутентификации SQL Server. Используется управление доступом на основе ролей (RBAC).
- Защита данных: шифрование неактивных данных (Transparent Data Encryption, TDE), шифрование при передаче (TLS/SSL), а также динамическое маскирование данных (Dynamic Data Masking) для скрытия конфиденциальной информации от неавторизованных пользователей.
- Обнаружение угроз: встроенная служба Advanced Threat Protection (ATP) анализирует журналы аудита и выявляет подозрительные действия, такие как SQL-инъекции или аномальные попытки входа.
Интеллектуальная производительность
Azure SQL Database оснащена встроенными средствами оптимизации:
- Query Performance Insight: визуализирует наиболее ресурсоёмкие запросы, их историю и тенденции.
- Automatic Tuning: автоматически создаёт и удаляет индексы, а также корректирует планы выполнения запросов на основе анализа реальной нагрузки.
- Intelligent Insights: использует машинное обучение для обнаружения аномалий производительности и предоставления диагностической информации.
Применение
Azure SQL Database широко используется в различных сценариях:
- Веб-приложения и мобильные бэкенды: как основное хранилище данных для приложений, работающих в Azure App Service или других облачных средах.
- SaaS-решения (Software as a Service): благодаря эластичным пулам и мультитенантной архитектуре, Azure SQL Database подходит для многопользовательских приложений.
- Миграция локальных баз данных: многие организации переносят существующие базы данных SQL Server в облако, используя Azure SQL Database как управляемую альтернативу, снижающую затраты на администрирование.
- Аналитика и отчётность: с помощью Azure Synapse Link можно подключать Azure SQL Database к Azure Synapse Analytics для аналитики в реальном времени без влияния на OLTP-нагрузку.
- Разработка и тестирование: бессерверный режим и автоматическое резервное копирование делают Azure SQL Database удобным выбором для сред разработки.
Ограничения и критика
Несмотря на широкие возможности, Azure SQL Database имеет ряд ограничений по сравнению с локальным SQL Server:
- Отсутствие некоторых функций: например, нет поддержки Service Broker, полнотекстового поиска в определённых конфигурациях, а также некоторых возможностей CLR-интеграции.
- Ограниченный контроль над инфраструктурой: пользователи не могут управлять операционной системой, конфигурацией сервера или устанавливать сторонние расширения.
- Зависимость от сети: производительность сильно зависит от задержек и пропускной способности сети между клиентом и облаком.
- Стоимость: при больших объёмах данных или высокой нагрузке затраты на Azure SQL Database могут превышать стоимость самостоятельного администрирования SQL Server на виртуальных машинах Azure.
Источники
- Документация Microsoft по Azure SQL Database (learn.microsoft.com).
- Официальный блог команды Azure SQL Database (techcommunity.microsoft.com).
- Книга «Microsoft Azure SQL Database Step by Step» (Microsoft Press, 2017).
- Статья «A Survey of Cloud Database Systems» (IEEE Transactions on Knowledge and Data Engineering, 2019).
- Материалы конференции Microsoft Build (2020-2024).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →