SQL Azure Database является "облачным" сервисом баз данных от Microsoft. SQL Azure предоставляет доступную по Интернет функциональность баз данных как сервис. Основанные на "облачных" технологиям решения баз данных, такие как SQL Azure, могут принести множество преимуществ, включая быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. Это руководство содержит обзор архитектуры SQL Azure и описание того, как вы можете использовать SQL Azure для "расширения" существующей инфраструктуры или в качестве основной платформы.
Компании, использующие интернет-приложения, сталкиваются со многими проблемами. Пользователи хотят доступ к возрастающим объемам данных из любого места в любое время с любого устройства. Размер, использование и различные виды данных с каждым днем возрастают. Разработчики должны разрабатывать и быстро разворачивать приложения, чтобы соответствовать возрастаемым нуждам. C использованием традиционной локальной модели управления данными удовлетворение этих потребностей требует постоянного инвестирования и управления серверами,системами хранения и сетями. Персоналу необходимо постоянно контролировать инфраструктуру для обеспечения емкости, производительности и доступности. Облачный сервис БД SQL Azure обеспечивает отличный способ решения этих проблем. SQL Azure построена на трех основных принципах: управляемость, масштабируемость и гибкость разработки. С точки зрения разработчика, SQL Azure предлагает знакомую реляционную модель программирования и знакомые методы доступа к данным и простые варианты развертывания. SQL Azure упрощает процесс создания прототипов и развертывания приложений, интеграции данных в масштабе предприятия. SQL Azure устраняет проблемы с инфраструктурой, тем самым предоставляя разработчикам больше свободы для инноваций и экспериментирования с новыми способами обмена данными. С точки зрения IT-управления SQL Azure предлагает систематическое и безопасное облачное решение, которое интегрируется с вашей локальной инфраструктурой и предоставляет контроль и управление распределенными базами данных. SQL Azure построен на проверенных технологиях Microsoft SQL Server ®. С точки зрения бизнеса, SQL Azure представляет собой экономически эффективный подход к управлению данными, с гибкой моделью ценообразования на основе плана, обеспечивающей близкие к нулю капитальные и эксплуатационные расходы, а также возможность быстро и легко масштабировать решение по мере изменения потребностей. Если вы планируете создавать приложения, использующие большие или разделенные наборы данных, предоставлять масштабируемое хранилище данных или "расширять" вашу локальную инфраструктуру недорогим быстроразвертываемым облачным хранилищем, SQL Azure обеспечит вам надежное и экономически эффективное решение.
↑ Return to Top
SQL Azure - ключевой компонент платформы Microsoft, предлагающий гибкость и ма��штабируемость, надежность и безопасность и гибкость разработки.
Управляемость
Это преимущество позволяет организациям разворачивать сервисы данных для приложений без использования IT-отдела и отвлечения работников от их главных задач. С SQL Azure вы разворачиваете хранилище в течение минут, что сокращает капитальные затраты на сервисы данных, позволяя разворачивать только то, что необходимо. Когда ваши потребности меняются, вы соответствующим образом настраиваете ваше облачное хранилище.
Развертывание без особых усилий
Когда вы используете локальную инфраструктуру, время развертывания и обеспечения безопасности ваших серверов, сетевых устройств и ПО может замедлить разработку прототипа или публикацию новых решений. Используя облачное решение SQL Azure вы можете развернуть ваше решение в течение минут и оперативно реагировать на изменения в потребностях, что снижает капитальные затраты на сервисы данных и позволяет разворачивать только то, что вам необходимо.
Высокая доступность
SQL Azure построен на основе проверенных технологий Windows Server и SQL Server и является достаточно гибким в вопросах обработки различных сценариев использования и загрузки. Сервис реплицирует множество избыточных копий ваших данных на физические сервера для обеспечения доступности данных и доступности бизнеса. В случае ошибки оборудования SQL Azure предлагает автоматическую обработку сбоев.
Service level agreements (SLA) гарантируют высокий уровень сервиса. При переходе в SQL Azure вам больше нет необходимости делать бэкапы, хранить и защищать данные.
Масштабируемость
Ключевым достоинством сервиса является простота масштабирования решения. При разрастании требований необходимо горизонтально или вертикально масштабировать свое решение
Глобальная масштабируемость
Модель "плати-по-факту-использования" гарантирует, что вы будете платить только за то, что используете, поэтому вы можете легко ограничить свои ресурсы, если они вам не нужны. С разработанной стратегией масштабирования БД ваше приложение может использовать вычислительную мощность тысяч серверов и хранить терабайты данных. SQL Azure работает в датацентрах по всему миру и вы можете освоить его прямо сейчас. Если вам необходим конкретный регион, вы можете развернуть вашу БД в ближайший датацентр. Вы можете использовать эту глобальную масштабируемость для построения веб-приложений, доступных глобально, но без затрат на инфраструктуру и управление.
Мультитенантность
Независимые вендоры ПО (ISV), разрабатывающие решения Software+Services (S+S) должны предоставлять адекватный уровень изоляции для данных клиентов и осуществлять правильную модель оплаты клиентами потребленных ими сервисов. SQL Azure предоставляет гибкость, необходимую ISV для сегрегации данных клиентов и реализации мультитенантного биллинга, что позволяет вам построить быстро и легко глобально доступное решение S+S.
Расширение возможностей разработчика
Одним из потенциальных препятствий для построения хорошего облачного приложения является необходимость изучения разработчиком новых инструментов, платформ и моделей. Поскольку SQL Azure построен на основе языка TSQL и совместим с SQL Server (за исключением некоторых моментов), разработчики могут использовать уже знакомые технологии, что сокращает стоимость и время разработки облачных приложений.
Знакомая модель разработки "клиента"
При разработки локальных приложений с использованием SQL Server разработчики используют клиентские библиотеки, использующие для коммуникации между клиентом и сервером протокол TDS. Существует большое коммьюнити разработчиков, знакомых с SQL Server и клиентскими библиотеками, такими как ADO.NET, ODBC, JDBC и SQL Server driver for PHP. SQL Azure имеет тот же самый интерфейс TDS, поэтому разработчики могут использовать те же самые инструменты и библиотеки в процессе создания клиентских приложений с использованием данных в облаке.
Проверенная реляционная модель
Данные в SQL Azure хранятся знаком��м разработчикам и администраторам образом - так же как в SQL Server. Вы можете создать сервере SQL Azure, который является группой БД, распределенных по множеству физических машин. Сервер SQL Azure во многом концептуально идентичен экземпляру SQL Server. Вы можете также использовать географическое положение. Датацентры Windows Azure и SQL Azure расположены по всему миру и, если ваше приложение относится к конкретному региону, вы можете использовать географическое положение для увеличения производительности. Внутри каждого сервера SQL Azure вы можете создать БД с таблицами, представлениями, хранимыми процедурами, индексами и другими объектами. Подобная модель позволяет использовать существующую архитектуру реляционной БД и Transact SQL и упрощает процесс миграции существующих приложений в SQL Azure. Сервера и БД SQL Azure являются виртуальными объектами, не соответствующими физическим серверам и БД. Администраторы и разработчики могут сконцентрироваться на архитектуре модели данных - SQL Data Services (SDS) осуществляют физическую реализацию и управление.
Синхронизация и оффлайн-сценарии
SQL Azure является частью большой платформы Microsoft, интегрирующейся с Microsoft Sync Framework для поддержки синхронизации. Например, с использованием SQL Azure и Sync Framework локальные приложения и клиентские устройства могут синхронизироваться друг с другом через общий облачный хаб. ↑ Return to Top
Веб-приложение
Ведомственные/рабочие приложения
Общий хаб данных
В сценарии хаба данных, как правило, хотят позволить различным мобильным и удаленным пользователям совместную работы с использованием общего набора данных. Рассмотрим страховую компанию, которая имеет большой отдел мобильных продаж, который состоит из более чем пяти тысяч человек, разбросанных по всей Северной Америке. Синхронизация информации по всему отделу продаж является постоянной проблемой. Первая часть проблемы: передача контактной информации о клиенте в систему внутреннего финансирования. Вторая часть: передача нового прайс-листа в отдел продаж. Страховая компания нуждается в решении, которое:
В настоящее время продукты и данные о клиентах хранятся в центральной базе данных SQL Server, в датацентре. Кроме того, сотрудники отдела продаж используют приложение, которое работает на портативных компьютеров и хранилище данных в SQL Server Express. IT-отдел не хочет открывать брандмауэр на локальный датацентр, чтобы обеспечить безопасный доступ с портативных компьютеров каждого продавца. Команда разработчиков может обеспечить безопасную и полностью синхронизированное решение, которое использует SQL Azure, выполнив следующие три задачи:
На рисунке 2 проиллюстрирована это решение.
Рис 2: Концептуальная схема сценария хаба данных
Информация исходит из корпоративной БД через SQL Azure на компьютеры более чем 5 тысяч сотрудников. Информация о клиентах исходит более чем от 5 тысяч сотрудников через SQL Azure в корпоративную БД. Когда компьютер сотрудника находится оффлайн, отслеживаются изменения локальных данных и, когда он включается, провайдер Sync Framework инициирует синхронизацию. Обеспечивается безопасность корпоративного датацентра.
ISV S+S
В этом разделе вы увидите, как SQL Azure использует БД, как структурирует реляционные данные и как вы можете получить доступ к этим данным. Модель развертывания SQL Azure спроектирована с учетом поддержки высокой масштабируемости и низкой стоимости, при этом предлагая знакомую среду для администраторов и разработчиков. Модель развертывания иерархична.
Аккаунты Windows Azure
Для использования SQL Azure вы должны создать аккаунт Windows Azure, используя который, вы сможете получить доступ ко всей функциональности платформы и который используется для выставления счета для всех сервисов платформы. Подробнее о том, как получить аккаунт: Windows Azure Platform Offers.
Сервера SQL Azure
Каждый аккаунт Windows Azure может содержать несколько серверов SQL Azure. Эти сервера не являются экземплярами SQL Server - вы видите их как абстракцию, использующуяся для предоставления единой точки администрирования множества серверов. Каждый сервер включает в себя логины (аналогично SQL Server), кроме этого вы можете указать регион, в котором будет расположен сервер. Для создания и управления сервером БД необходимо использовать портал Windows Azure Platform Management Portal, обладающий интуитивным интерфейсом, где вы можете создать логины и развернуть БД.
БД SQL Azure
Каждый сервер SQL Azure может содержать несколько БД. Новый сервер содержит БД master (аналогично SQL Server). В каждой БД вы можете создать таблицы, представления, индексы, хранимые процедуры и другие объекты БД. Для создания БД вы можете использовать портал управления Windows Azure либо использовать запрос TSQL CREATE DATABASE: SQL Azure Management API.
БД SQL Azure реализованы как реплицируемые между множеством физических компьютеров в датацентре партиции данных. Подобная архитектура предоставляет автоматическую обработку отказов и балансировку нагрузки. Данные клиентов распределяются между множеством физических серверов внутри определенной пользователей для сервера географической локации. Таким образом для приложений различного уровня достигается высокая доступность и устойчивость без административных усилий.
Реляционная модель БД
Одной из главных целей SQL Azure явля��тся предоставление знакомой среды для разработчиков БД. Объекты SQL Server аналогичны объектам SQL Azure. Они включают в себя:
SQL Server и SQL Azure используют TSQL для создания БД и управления данными.
Подробнее про Transact-SQL: http://msdn.microsoft.com/en-us/library/ms189826.aspx.
Архитектура доступа к данным
Многие БД содержат важные данные, поэтому необходимо правильно осуществлять контроль доступа, который особенно важен в мультитенантном приложении, которое используют пользователи из различных организаций. Принципы безопасности SQL Azure аналогичны SQL Server с SQL Server Authentication:
Масштабирование БД
Вы можете хранить в SQL Azure любое количество данных, однако каждая БД ограничена размером в 150 ГБ. Для хранения более чем 150 Гб данных вы должны партиционировать ваши данные между несколькиими БД и использовать параллельные запросы. Шардинг - еще одна техника, используемая многими приложениями для увеличения производительности, масштабирования и снижения стоимости. Некоторые приложения хорошо подходят для партиционирования так как используют модели данных с естественными критериями для партиционирования, например, приложение, хранящее и обрабатывающее данные о продажах, использует дату и время. Это приложение может выиграть от обработки только подмножества данных, а не полного набора. Шардинг также позволяет параллельно обрабатывать данные. Приложения могут класть несколько партиций данных на несколько наборов вычислительных ресурсов и обрабатывать данные одновременно. SQL Azure предоставляет инфраструктуру для приложений, которым необходимы десятки и сотни БД без соответствующих затрат на управление. Приложение может партиционировать данные в несколько БД без капитальных затрат. Развертывание и использование трех сотен БД так же просто, как и развертывание трех. Кроме этого, SQL Azure предоставляет эластичность в вопросах масштабирования - приложение может увеличивать и уменьшать количество БД по мере необходимости.
Решение об использовании стратегии масштабирования - то, к чему необходимо отнестись очень аккуратно и серьезно, так как это отразится на сложности кода и не для всякого приложения можно использовать одну и ту же стратегию. SQL Azure предоставляет встроенный механизм для шардинга данных - SQL Azure Federations. Подробнее про SQL Azure Federations: http://msdn.microsoft.com/en-us/library/windowsazure/hh597452.aspx
Развертывание
Разворачивать и заполнять БД можно с помощью TSQL, однако в большинстве случаев эти процессы выполняются на локальном сервере. После окончания работы над приложением БД загружается в облако. Для развертывания БД в SQL Azure можно использовать запрос Transact-SQL CREATE DATABASE в Microsoft SQL Server® Management Studio с помощью Generate Script Wizard. После этого можно выполнить запрос TSQL в SQL Azure для создания БД. Географическая локация SQL Azure указывается на уровне сервера, поэтому, для развертывания БД в определенный регион, вам необходимо создать новый сервер SQL Azure в этом регионе и подключиться к нему, после чего выполнить скрипт развертывания.
В этом руководстве мы предоставили обзор SQL Azure и описали основные возможности сервиса. SQL Azure - облачный сервис БД, предоставляющий гибкость разработки, виртуально неограниченную масштабируемость, экономичную и гибкую ценовую модель доставки. Архитектура сервиса предоставляет надежность, высокую доступность и безопасность, кроме этого, в архитектуре присутствует поддержка большинства актуальных интернет-протоколов, что упрощает развертывание и использование. Мы также рассмотрели некоторые сценарии использования SQL Azure в бизнесе, такие как хаб данных и архивную систему. Мы также немного рассмотрели то, что происходит "под капотом" модели SQL Azure. ↑ Return to Top
Alexander Belotserkovskiy edited Revision 1. Comment: added tags