SQL Azure
SQL Azure — это способ предоставления реляционной базы данных Microsoft как сервиса. Данный сервер базируется на технологиях Microsoft SQL Server и обеспечивает устойчивую к ошибкам, масштабируемую и мультитенантную базу данных, доступную как сервис. Как и в случае с Windows Azure, SQL Azure — это не просто хостинг Microsoft SQL Server. Работа SQL Azure базируется на компоненте Cloud Fabric, который управляет экземплярами базы данных и обеспечивает их развертывание, администрирование, обновление, мониторинг и поддерживает весь жизненный цикл работы с данными. От пользователей требуется только выполнение таких задач, как создание схемы и ее поддержание, оптимизация запросов и управление безопасностью. Рис. 8. Компоненты SQL Azure Экземпляр базы SQL Azure реализован как три реплики в рамках серверной инфраструктуры, поддерживаемой Cloud Fabric. Этот компонент обеспечивает высокую надежность, доступность и масштабируемость с помощью автоматической и прозрачной для пользователей репликации и поддержки отказоустойчивости. Также поддерживается балансировка нагрузки и синхронизация инкрементальных изменений во всех репликах данных. Cloud Fabric отслеживает все конфликты при изменениях/обновлениях данных, используя двунаправленную синхронизацию данных между репликами на основе встроенных или задаваемых пользователями политик. Основные компоненты SQL Azure показаны на рис. 8. Так как SQL Azure построена на основе SQL Server, пользователи получают знакомую реляционную модель данных, которая практически симметрична с серверами SQL Server, развернутыми у заказчиков. Поддерживаются многие возможности ядра SQL Server, хотя в текущей реализации облачной базы данных SQL Azure существует ряд ограничений, которые мы кратко перечислим ниже. Ограничения на административном уровне
Ограничения на программном уровне
В дальнейшем планируется существенное расширение возможностей SQL Azure, как в области увеличения набора поддерживаемых сервисов, так и в области обеспечения совместимости с кодом, работающим на Microsoft SQL Server. Поддерживаемые механизмы доступа Облачная база данных SQL Azure поддерживает выполнение конструкций на языке Transact-SQL (T-SQL) через протокол Tabular Data Stream (TDS) и обращение по протоколу ODBC. Также реализована поддержка технологий ADO.NET 3.5 SP1 и 4.0, LINQ, WCF Data Services и ADO.NET Entity Framework 3.5 SP1 и 4.0. В текущей версии обращение через OLE DB не поддерживается. SQL Azure поддерживает Data Sync Services, геоданные, обращение через OData и использование Microsoft Office 2010 как клиентского приложения. Для управления SQL Azure можно использовать SQL Server 2008 Management Studio, а для миграции данных — SQLCMD, BCP и SQL Server Integration Services. Для разработчиков, не использующих технологии Microsoft, обращение к SQL Azure возможно следующими способами:
Ключевые сценарии использования SQL Azure Можно выделить четыре основных, высокоуровневых сценария использования SQL Azure:
Все эти сценарии решают наиболее часто возникающие перед разработчиками задачи, связанные с выбором в пользу создания приложений, работающих локально, в облаке или гибридных приложений. Механизмы организации хранения данных Работа с SQL Azure построена на основе трех основных механизмов — учетной записи, сервера и базы данных. Учетная запись является владельцем одного или более серверов. Сервер владеет одной или более баз данных. Сервер — это логическая концепция, аналогичная Master DB. Сервер содержит метаданные о базе данных и данные по ее использованию. Сервер является единицей аутентификации, георасположения, биллинга и отчетности. Каждая база данных в рамках сервера хранит стандартные SQL-объекты — пользователей, таблицы, представления, индексы и т.п. Механизмы синхронизации Механизмы синхронизации — SQL Azure Data Sync — позволяют разработчикам и администраторам баз данных связывать существующие хранилища данных, развернутые у заказчиков, с SQL Azure, расширять доступ к данным, находящимся локально, через платформу Windows Azure (сценарий удаленного доступа к данным из региональных офисов) и реализовывать сценарии работы в отсоединенном режиме. Рис. 9. Механизмы синхронизации на основе SQL Azure Можно выделить три основных сценария, при которых может потребоваться синхронизация данных:
На рис. 9 показаны ключевые механизмы синхронизации на основе SQL Azure. Топологии приложений, использующих SQL Azure Можно выделить три ключевых топологии приложений, использующих SQL Azure с точки зрения «удаленности» их кода от сервисов хранения реляционных данных — «близкий» код, «далекий» код и гибридные приложения. Кратко перечислим основные отличия этих топологий:
Рассмотрим каждую из возможных топологий более подробно. Начнем с приложений с «близким» кодом. В этой топологии прикладной код размещается в облаке и реализован либо как веб-роль, либо как прикладная роль. Приложения (либо в виде традиционного «толстого» клиента, либо «тонкого» клиента, запускаемого в браузере) через стандартные интернет-протоколы (HTTP/S, SOAP, REST и т.п.) обращаются к коду, который, в свою очередь, обращается к хранилищу на основе SQL Azure, используя протокол TDS (рис. 10). В топологии приложения с «далеким» кодом прикладной код располагается на стороне клиента и обращение к хранилищу на основе SQL Azure происходит через протокол TDS (рис. 11). И, наконец, в случае гибридного приложения прикладной код и данные могут располагаться как на стороне клиента, так и на платформе Windows Azure (рис. 12).
В такой топологии прикладной код на стороне клиента может обращаться к коду на стороне «облака» (выполненному либо как веб-роль, либо как прикладная роль), который, в свою очередь, обращается к хранилищу на SQL Azure. Код на стороне клиента также может обращаться к хранилищу на SQL Azure напрямую. Помимо этого, за счет использования механизмов синхронизации, два хранилища — локальное и облачное могут обмениваться данными. Перенос данных в SQL Azure Можно выделить три способа переноса существующих баз данных в SQL Azure:
Обратите внимание на то, что варианты 2 и 3 дополняют друг друга — DAC Package позволяет перенести схему базы данных, а Import &Export Wizard — сами данные. Развитие SQL Azure В планах развития SQL Azure как облачной платформы для хранения данных — обеспечение практически полной функциональности, доступной в сервере баз данных Microsoft SQL Server. В частности, планируется включение в состав SQL Azure таких сервисов, как Reporting Services, Analysis Services и т.д. Среди новых возможностей SQL Azure, которые появятся уже после коммерческой доступности платформы, отметим следующие. Поддержка геоданных В ближайшее время планируется реализовать в SQL Azure поддержку геоданных на уровне 2-мерных векторных данных двух типов: географические данные («круглая» земля) и геометрические данные («плоская» земля). Также планируется поддержка таких объектов, как точка, линия и область. Облачная база данных SQL Azure будет поддерживать более 70 новых методов для обработки геоданных, что позволит обеспечить максимальную симметрию с возможностями, реализованными в SQL Server 2008. Поддержка баз данных размером до 50 Гб В SQL Azure поддерживается два типа баз данных: т.н. веб-редакция и бизнес-редакция. При создании базы данных той или иной редакции можно указать или изменить максимальный размер базы данных. Для веб-редакции максимальный размер — 5 Гб, для бизнес-редакции — до 50 Гб с приращениями размера по 10 Гб. Оплата происходит по актуальному размеру базы данных. |