Опубликован: 28.01.2014 | Доступ: свободный | Студентов: 2256 / 259 | Длительность: 14:33:00
Лекция 6:

Хранение и обработка данных с Windows Azure Storage и Windows Azure SQL Databases

Введение в Windows Azure SQL Databases

Windows Azure SQL Databases – это облачный сервис баз данных, основанный на технологиях, использующихся в классическом SQL Server. Windows Azure SQL Databases предоставляет доступную глобально инфраструктуру и функциональность базы данных как сервис (Database As A Service). Основанный на облачных технологиях сервис Windows Azure SQL Databases, предлагает большое количество характерных преимуществ, включающих быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. С точки зрения разработчика, Windows Azure SQL Databases предлагает знакомую реляционную модель программирования и методы доступа к данным и простые варианты развертывания, которые уже используются разработчиком. Как и любой облачный сервис, Windows Azure SQL Databases устраняет проблемы с инфраструктурой, тем самым предоставляя разработчикам больше свободы. С точки зрения IT, Windows Azure SQL Databases предлагает надежное и безопасное облачное решение, которое может быть интегрировано локальной инфраструктурой, с гибкими механизмами контроля и управления. Ключевым достоинством сервиса является простота масштабирования решения. При возрастании требований есть возможность горизонтального и вертикального масштабирования.

Знакомая модель разработки

При разработке локальных приложений с использованием SQL Server разработчики используют для взаимодействия с источником данных различные клиентские библиотеки (протокол TDS). Windows Azure SQL Databases имеет аналогичный интерфейс TDS, поэтому разработчики могут использовать те же самые инструменты и библиотеки в процессе создания клиентских приложений с использованием данных в облаке.

Windows Azure SQL Databases оперируют стандартными терминами, за исключением того, что "контейнером" верхнего уровня, который должен быть создан, является сервер Windows Azure SQL Databases. Внутри каждого сервера Windows Azure SQL Databases могут быть созданы стандартные объекты SQL Server - таблицы, представления, хранимые процедуры, индексы и т.д. Подобная модель позволяет использовать существующую архитектуру реляционной БД и Transact SQL и упрощает процесс миграции существующих приложений в Windows Azure SQL Databases. Для задач миграции существует набор утилит, упрощающих процесс (например, встроенная функция SQL Server Management Studio или AzureMW). Серверы и базы данных Windows Azure SQL Databases являются виртуальными объектами, не соответствующими физическим сущностям.

Редакции Windows Azure SQL Databases

В свободном доступе для разработчика имеется две редакции баз данных Windows Azure SQL Databases, которые можно свободно менять на портале управления либо с помощью SQL-запроса: Web и Business. Основная разница между редакциями заключается в максимально доступном размере каждой базы данных в данной редакции (Web – до 5 ГБ, Business – до 150 ГБ). Каждая из редакций несёт собственное назначение – например, базы данных Web-редакции подходят скорее для проектов, которые оперируют небольшим количеством данных, базы данных Business-редакции предназначены для корпоративных баз данных, которым необходимые большие объёмы хранилища.

В июле 2013 года было объявлено о дополнительном предложении Windows Azure SQL Databases Premium, в рамках которого предлагается использование более мощных ресурсов для обслуживания серверов Windows Azure SQL Databases. Это предложение подразумевает под собой предоставление пользователю эксклюзивно зарезервированных под его нужды ресурсов. Использование базы данных редакции Premium позволяет пользователям масштабировать программную инфраструктуру основываясь на пиковых нагрузках без того, чтобы учитывать при этом важную особенность облачных ресурсов – разделяемое использование одних и тех же ресурсов несколькими клиентами. Подобное предложение значительно упрощает разработку или миграцию локальных приложений в облако, которые проектируются с учётом пиковых нагрузок, и дает пользователю возможность масштабировать зарезервированные мощности таким образом, чтобы они удовлетворяли потребностям настоящего времени – например, в случае сезонных нагрузок приложению может понадобиться больше ресурсов; приложению необходимо большое количество ресурсов (CPU, RAM, IO) для выполнения операций с эксклюзивным доступом к ресурсам; приложение выполняет большое количество параллельных операций (запросов к базе данных); приложению должна гарантироваться минимальная латентность, и т.д. В таблице ниже сведены максимальные резервируемые мощности редакции Premium на стадии Preview.

Размер Ядер CPU Потоков Активных сессий IOPS RAM (GB)
P1 1 200 2000 150 8
P2 2 400 4000 300 16

Миграция в Windows Azure SQL Databases

При миграции или разработке гибридной инфраструктуры с использованием Windows Azure SQL Databases разработчик может оставить клиентское приложение в локальной инфраструктуре и перенести только данные, к которым можно получить доступ с помощью библиотек доступа к данным . Однако, если используется подобная архитектура, необходимо учитывать проблемы с задержками, которые происходят в связи с географической удалённостью и коммуникационной инфраструктурой, которые могут привести к более сложному коду в приложении. Рекомендацией в данном случае может служить перемещение логики доступа к данным в Windows Azure, таким образом приложение, использующее данные, находится там же, где и данные, в том же центре обработки данных. Например, в Windows Azure может быть расположен Web-интерфейс приложения.

Синхронизация данных

Сервис Windows Azure SQL Databases позволяет решать задачи по синхронизации данных. Например, в центральной базе данных в центре обработки данных на стороне клиента хранятся критичные данные, сотрудники же организации используют приложение, которое работает на мобильных устройствах, и хранилище данных в SQL Server Express. В целях безопасности администратор организации не имеет права открывать брандмауэр на локальном центре обработки данных. В этом случае, с помощью сервиса Windows Azure SQL Databases разработчик может обеспечить безопасное и полностью синхронизированное решение, создав базу данных в Windows Azure SQL Databases, провайдера Sync Framework для центра обработки данных, который позволит синхронизировать информацию между центром обработки данных и базой данных в Windows Azure SQL Databases, и второго провайдера Sync Framework для мобильных устройств сотрудников, который позволит синхронизировать информацию между этими устройствами и данными в Windows Azure SQL Databases.

Серверы SQL Azure

Каждый аккаунт Windows Azure может содержать несколько серверов SQL Azure. Эти сервера не являются экземплярами SQL Server, но являются абстракцией, использующейся для единой точки администрирования множества серверов. Каждый сервер включает в себя логины (аналогично SQL Server) и может быть расположен в регионе, указанном пользователем.

Для создания и управления сервером баз данных используется портал управления Windows Azure.

Создание нового облачного сервиса

увеличить изображение
Рис. 8.1. Создание нового облачного сервиса

База данных Windows Azure SQL Databases

Каждый сервер Windows Azure SQL Databases может содержать до 148 баз данных. Каждый сервер содержит служебную базу данных master. В базах данных можно создавать стандартные объекты: таблицы, представления, индексы, хранимые процедуры и т.д. База данных может быть создана на портале управления аналогично созданию сервера. Фактически, пользователю доступно только операция только создания – далее присутствует выбор, необходимо ли использовать существующий сервер или создать новый.

Создание новой базы данных в Windows Azure SQL Databases

увеличить изображение
Рис. 8.2. Создание новой базы данных в Windows Azure SQL Databases

Базы данных реплицируются в центре обработки данных, что обеспечивает автоматическую обработку ошибок и балансировку нагрузки. Данные, хранящиеся в базе, распределяются между множеством физических серверов внутри определенной пользователей для сервера географической локации. Таким образом для приложений различного уровня достигается высокая доступность и масштабируемость.

Архитектура доступа к данным

База данных Windows Azure SQL Databases работает по стандартному протоколу TDS. TDS используется также в SQL Server, таким образом, приложения, использующие SQL Server, могут быть подключены к базе данных Windows Azure SQL Databases. Для этого, однако, необходима поддержка Secure Sockets Layer (SSL).

Подробнее про архитектуру Windows Azure SQL Databases можно прочитать в специально посвященном этому вопросу документе по адресу http://rutechnet.blob.core.windows.net/files/SQL_Azure_Database.pdf.

Модель безопасности Windows Azure SQL Databases

Многие базы данных содержат важные данные, поэтому необходимо правильно осуществлять контроль доступа, который особенно сложен в мультитенантном приложении, использующимся пользователями из различных организаций. Принципы безопасности Windows Azure SQL Databases аналогичны SQL Server с SQL Server Authentication:

  • Логины SQL Server: аутентификация доступа к SQL Azure на уровне сервера.
  • Пользователи БД: Выдача доступа на уровне БД.
  • Роли БД: Объединение группы пользователей и выдача прав доступа на уровне БД.

SQL Azure Databases использует стандартный протокол SQL Server Tabular Data Stream (TDS), при этом разрешены исключительно зашифрованные коммуникации. В SQL Server 2008 было введено новое средство: прозрачное шифрование данных (transparent data encryption, TDE), позволяющее полностью шифровать данные с минимальными усилиями. На данный момент SQL Azure Databases не поддерживает шифрование на уровне базы данных. Следует заметить, что в настоящее время SQL Azure Databases доступен только через TCP-соединения и только через порт 1433, поэтому необходимо учитывать возможности шифрования ADO.NET и сертификаты. Второе средство защиты SQL Database Azure - брандмауэр SQL Azure Databases, которым изначально блокируется весь доступ к серверу SQL Azure Databases. Попытки подключения до соответствующей настройки будут безуспешны. Брандмауэром Windows Azure SQL Databases можно управлять через портал Windows Azure SQL Databases или напрямую в главной базе данных с помощью хранимых процедур, таких как sp_set_firewall_rule и sp_delete_firewall_rule.

При первой попытке управления созданным сервером портал Windows Azure предложит автоматически добавить IP-адрес пользователя в список разрешенных.

Добавление IP-адреса пользователя в список разрешенных

увеличить изображение
Рис. 8.3. Добавление IP-адреса пользователя в список разрешенных

Как и в любой реализации SQL Server, управление пользовательскими учетными записями — еще один аспект, который нужно контролировать. Благодаря этим средствам Windows Azure SQL Azure является высокозащищенной управляемой платформой для приложений в облаке.

Между SQL Server и SQL Azure Databases в контексте безопасности существует список различий:

  • Microsoft SQL Server поддерживает аутентификацию Windows Integrated с использованием параметров доступа из Active Directory; SQL Azure Databases поддерживает только SQL Server Authentication.
  • Microsoft SQL Server и SQL Azure Databases используют одинаковую модель авторизации на основе пользователей и ролей, создаваемых в каждой базе данных и связываемых с логинами пользователей.
  • Microsoft SQL Server имеет стандартные роли уровня сервера, такие как serveradmin, securityadmin и dbcreator, однако в SQL Azure Databases этих ролей нет. Вместо этого в SQL Azure Databases доступна роль loginmanager (создание логинов) и dbmanager (создание и управление базами данных). Эти роли могут быть привязаны к пользователям в базе данных master.
  • Доступ к SQL Server и Windows Azure SQL Databases происходит по протоколу уровня приложения Tabular Data Stream (TDS), защищённому протоколом SSL, через порт TCP/1433. Использование SSL опционально для Microsoft SQL Server и обязательно для Windows Azure SQL Databases.
  • В SQL Server контроль доступа на основе IP должен быть осуществлен на уровне хоста или сети, с использованием брандмауэров. В Windows Azure SQL Databases есть встроенный брандмауэр, ограничивающий весь доступ к серверу Windows Azure SQL Databases до определения клиентов компьютеров, имеющих право доступа. Брандмауэр выдает доступ, основываясь на IP-адресе каждого запроса.
  • SQL Server предоставляет шифрование в режиме реального времени всех хранящихся данных на страничном уровне с использованием функциональности Transparent Data Encryption (TDE). Подобное шифрование не поддерживается в Windows Azure SQL Databases.

Масштабирование баз данных

Каждая база данных ограничена размером в 150 ГБ (в том случае, если используется режим Business). Для хранения более чем 150 Гб данных разработчик должен реализовывать механизм партиционирования или шардинга данных. Шардингом называется методика, используемая разработчиками для увеличения производительности, масштабирования и снижения стоимости в тех случаях, когда, например, приложение использует модель данных с четкими критериями индексирования, например, хранящие и обрабатывающие данные о продажах (дата и время). В этом случае методика шардинга может помочь оптимизировать и масштабировать решение, позволяя также параллельно обрабатывать данные - приложения могут располагать несколько партиций данных на несколько наборов вычислительных ресурсов и обрабатывать данные одновременно.

Windows Azure SQL Databases предоставляет встроенный механизм для шардинга данных - Windows Azure SQL Databases Federations. Подробнее про SQL Azure Federations: http://msdn.microsoft.com/en-us/library/windowsazure/hh597452.aspx

Заключение

Возрастание количества и сложности хранимых данных приводит к неизбежной проблеме нехватки ресурсов для осуществления их хранения. В сценарии, в котором важна производительность при доступе к таким данным, необходимо реализовывать сложные механизмы масштабирования, производить настройку, поддерживать работоспособность построенной инфраструктуры. Windows Azure предоставляет два типа хранилища, которые можно использовать в различных ситуациях и инфраструктурах (включая гибридные): Windows Azure Storage и Windows Azure SQL Databases. Windows Azure Storage предлагает три сервисы – таблицы, блобы и очереди – которые являются масштабируемыми, долговечными механизмами, реализующими глобально-доступное хранилище данных. Windows Azure SQL Databases является решением, позволяющим реализовывать более сложные сценарии хранения данных, в том числе реляционных.

Руслан Муравьев
Руслан Муравьев

Сайт dreamspark пишет что код истек :(

Andriy Zymenko
Andriy Zymenko

Этот курс требует оновления https://portal.azure.com/#create/hub здесь нет пункта Web Site в разделе Compute. К тому же для создание трубуется подписка