Transcript
Page 1: Azure - хранение данных в облаке

Windows Azure разработка в облаке и для облакаХранение данных в облаке

Page 2: Azure - хранение данных в облаке

Обзор модуляОбзор возможностей по хранению данных в Windows AzureОбзор облачных баз данных Azure SQLУправление базами данных в Windows AzureМиграция данных в облачные базы данныхВведение в хранилище Windows AzureРазграничение доступа к блобам и контейнерамМониторинг хранилища, настройка учетных записейФайлы Azure

Page 3: Azure - хранение данных в облаке

Хранение данных в AzureAzure SQLAzure Storage

BlobsDrivesTables Queues

Azure FilesDocumentDB

Page 4: Azure - хранение данных в облаке

Облачные базы данных Azure SQLОбзор облачных баз данных Azure SQLУправление базами данных в Windows AzureИнструменты для работы с Azure SQLМиграция данных в облачные базы данныхВосстановление и гео-репликация облачных БД

Page 5: Azure - хранение данных в облаке

Обзор Azure SQL DB

Page 6: Azure - хранение данных в облаке

Базы данных Azure SQL Управляемое решение для хранения данныхСовместимо с существующими инструментамиВысокая доступность, быстродействие и масштабируемость

Page 7: Azure - хранение данных в облаке

Уровни баз данных Azure SQL Актуальные

Больше не доступны

Basic Standard

Premium

Web Business

Page 8: Azure - хранение данных в облаке

Уровни баз данных Azure SQL Сравнение характеристик

Page 9: Azure - хранение данных в облаке

БД как сервис, или SQL Server на VM?

Page 10: Azure - хранение данных в облаке

БД как сервис, или SQL Server на VM?SQL Database

Стандартизированное, интероперабельное и масштабируемое решениеОграничения по размеру (в зависимости от уровня)Требует некоторых изменений в существующих приложенияхИдеальный выбор для новых облачных приложений

SQL Server на Azure VM

Высокая совместимость с традиционными СУБДИдеальный выбор для существующих приложений Требует поддержки и настройки для достижения масштабируемости

Page 11: Azure - хранение данных в облаке

БД как сервис, или SQL Server на VM?SQL Database

Легко делается доступной для любого сервиса Azure через порталМожно открыть для конкретного диапазона IP-адресов через портал

SQL Server на Azure VM

Для доступа снаружи виртуальной машины надо открыть портСервисы Azure не имеют никаких привилегий – просто внешние подключения

Page 12: Azure - хранение данных в облаке

Вопрос:В каких сценариях Вам больше подойдет SQL Server на VM?

Page 13: Azure - хранение данных в облаке

Управление облачными БД

Page 14: Azure - хранение данных в облаке

Создание экземпляра БД Azure SQL

Сервис баз данных SQL

Экземпляр сервера

Экземпляр базы

данных

Page 15: Azure - хранение данных в облаке

ДЕМОСоздание экземпляра базы данных Azure SQL

Page 16: Azure - хранение данных в облаке

Инструменты для работы с Azure SQLSQL Server Management StudioSQL Server Data Tools (SSDT)https://msdn.microsoft.com/en-us/mt186501 Visual StudioSQL Database Migration Wizardhttps://sqlazuremw.codeplex.com/ Azure Websites Migration Assistanthttps://www.movemetothecloud.net/ …

Page 17: Azure - хранение данных в облаке

SQL Server Management StudioДоступны многие инструменты, но это - классика

Сначала разрешите подключение для вашего IP-адреса. Это делается через портал – в настройках сервераИмя сервера можно посмотреть на портале – в информации о базе данных (кликабельно)Используйте аутентификацию SQL Server, имя и пароль, которые Вы задали при создании сервера

Page 18: Azure - хранение данных в облаке

Visual Studio Server ExplorerВозможности как у SQL Server Management StudioРедактор запросов, просмотр данных, …Базу можно открыть в SQL Server Object Explorer или на порталеМожет работать и с другими сервисами Azure

Page 19: Azure - хранение данных в облаке

Visual Studio SQL Server Object ExplorerУправление локальными и облачными базами данных

Доступен по правому клику в Server Explorer

Page 20: Azure - хранение данных в облаке

Visual Studio Cloud ExplorerДля работы с сервисами Azure, в том числе – базами данных и серверами БДБазу данных можно открыть на портале или в SQL Server Object Explorer

Page 21: Azure - хранение данных в облаке

Visual Studio Database ProjectsСоздание схемы БД и размещение ее в системе управления исходными кодамиПубликация базы данных на определенный экземпляр

Page 22: Azure - хранение данных в облаке

Инструменты миграцииSQL Server Integration Services помогут мигрировать в Azure с существующих серверов баз данныхSQL Database Migration Wizard анализирует существующую базу данных и генерирует скрипт для ее миграцииAzure Websites Migration Assistant использует SQL Management Objects для анализа существующей базы данных и ее миграции

Page 23: Azure - хранение данных в облаке

Восстановление и гео-репликация

Page 24: Azure - хранение данных в облаке

Возможности восстановленияИзбыточная инфраструктура в дата-центрах AzureСобственные возможности облачных БД

Page 25: Azure - хранение данных в облаке

Возможности восстановленияВстроенные реплики

Одна основная и две дополнительныхАвтоматические резервные копии (point-in-time recovery) – начиная с Basic

Полные – раз в неделю, дифференциальные – раз в день, логи – раз в 5 минут

Восстановление через порталПериод хранения резервных копий зависит от выбранного Вами сервисного уровня

Подробнее: https://azure.microsoft.com/ru-ru/blog/azure-sql-database-point-in-time-restore/

Page 26: Azure - хранение данных в облаке

Другие возможностиКопирование баз данных

Выполняется через порталЛюбые будущие транзакции к копии не применяются

Сервис импорта и экспортаИмпорт и экспорт BACPACK-файловВариант для тех уровней БД, которые не предоставляют автоматического резервного копирования Другие сценарии

Page 27: Azure - хранение данных в облаке

Возможности восстановления

Page 28: Azure - хранение данных в облаке

Гео-репликация облачных БДСтандартная – начиная с Basic

В том же регионеАктивная - для Premium*

Автоматически, асинхронно, при каждой транзакцииДо четырех копий базы данныхВ разных регионах для обеспечения гео-избыточности

Можно использовать как БД только для чтения в сценариях балансировки нагрузки

Пример: основная БД – используется приложением, реплика – только для построения отчетовПодробнее:

https://azure.microsoft.com/en-us/documentation/articles/sql-database-geo-replication-overview/

Page 29: Azure - хранение данных в облаке

Гео-репликация облачных БД

Page 30: Azure - хранение данных в облаке

Лабораторная работа А: Облачные БДУпражнение 1

Создание экземпляра базы данных Azure SQLУпражнение 2

Использование Entity Framework с базой данных Azure SQL

Расчётное время: 35 минут

Page 31: Azure - хранение данных в облаке

Сценарий лабораторной работыВаше веб-приложение готово к публикации, и Вы решили начать миграцию в Azure с создания облачной базы данных. Вы решили использовать инициализатор базы данных и Entity Framework Code First-подход для автоматизации создания базы с нужными Вам данными.

Page 32: Azure - хранение данных в облаке

Вопрос:В каких сценариях может быть полезно наполнить данными облачную БД черз ORM framework?

Page 33: Azure - хранение данных в облаке

Хранилище Microsoft AzureВведение в хранилище Windows AzureРазграничение доступа к блобам и контейнерамМониторинг хранилищаФайлы AzureЗагрузка и миграция данных в хранилище

Page 34: Azure - хранение данных в облаке

Обзор хранилища блобов

Page 35: Azure - хранение данных в облаке

Динамическая природа облака AzureОсновное отличие облака от других

видов облака –эластичностьМасштабирование вверх – добавление виртуальных

машинМасштабирование вниз – удаление виртуальных

машин

Следствие эластичности – данные на локальных дисках машин могут (будут) быть потеряныСервис хранилища предназначен для:

Хранения данных приложенийХранение данных Azure – пакеты, данные

диагностики, …

Page 36: Azure - хранение данных в облаке

Сервисы хранилищаBlobs

простые именованные файлы с метаданнымиDrives

NTFS-тома для приложений Azure (основаны на блобах)Tables

Структурированные хранилища. Содержат сущности- наборы свойств

QueuesОчереди сообщений для приложений

Программный доступ через Windows Azure Managed Library и Windows Azure Storage services HTTP-based API

Page 37: Azure - хранение данных в облаке

Учетные записи хранилищаПри отладке можно использовать Storage Emulator или Windows Azure Storage accountКлючи для доступа к данным хранятся в файле конфигурации (.scfg), их можно менять без повторного развертывания

<ConfigurationSettings>  <Setting name="DataConnectionString"            value="DefaultEndpointsProtocol=https; AccountName=MyAccountName;

AccountKey=512 Bit Shared Key" /></ConfigurationSettings>

Page 38: Azure - хранение данных в облаке

ДЕМОСоздание учетной записи хранилища

Page 39: Azure - хранение данных в облаке

Storage BlobsДля хранение больших объемов неструктурированных текстовых или бинарных данных:

Образы дисковВидеоКартинкиТекстовые файлы и логиЧто угодно

Блобы могут быть сгруппированы в логические, иерархические контейнерыМожно обезопасить блобы или сделать их доступными для анонимного пользователя

Page 40: Azure - хранение данных в облаке

Storage BlobsБлобыКонтейне

рыУчетная запись

contoso

imagesPIC01.jpg

PIC02.jpg

videos VID04.mp4

http[s]://<storage account>.blob.core.windows.net/<container>/<blob>

Page 41: Azure - хранение данных в облаке

Типы блобов

Page blobs

Block blobs

Page 42: Azure - хранение данных в облаке

Page BlobsКоллекция страниц по 512 байтОптимизированы для произвольного доступа и частого обновления

Хранилище дисков виртуальных машин в AzureВысокопроизводительное и надежное решениеРазмер может меняться путем добавления и удаления страниц

Изменения блоба могут переписать одну или несколько страниц

Немедленные изменения (immediately committed)

Ограничение по размеру – до 1 TB

Page 43: Azure - хранение данных в облаке

Block BlobsСерия блоков (каждый имеет свой block ID)

Блоки могут загружаться параллельно для ускорения работы с большим файломДля контроля правильности записи можно использовать хеш MD5Можно отслеживать прогресс загрузкиПока не загружен, блоб не записан (uncommitted)Когда все блоки загружены, можно определить порядок и «закоммитить» блоб

Оптимизированы для потоковых сценариев, работы с мультимедиа-даннымиОграничения по размеру – до 200 GB

Page 44: Azure - хранение данных в облаке

REST API для блобовБлобы – простейшая из всех REST-точек доступа к хранилищу

GET BLOBhttps://[account].blob.core.windows.net/[container]/[blob]

POST, PUT и DELETE доступны по такому же адресу (HTTP-методы)

К контейнеру можно доступаться с помощью параметра строки запроса restype

https://[account].blob.core.windows.net/[container]?restype=container

В конец адреса можно добавить токен Shared Access Signature (SAS) для доступа к защищенному блобу

Page 45: Azure - хранение данных в облаке

Управление доступом к хранилищу

Page 46: Azure - хранение данных в облаке

Права доступа к контейнеруТри уровня доступа к контейнеру:

Full public readПросмотр списка блобовЧтение отдельных блобовПолучение списка контейнеров невозможно

Public read for blobs only Чтение отдельных блобов

No public readНет доступа ни к блобам, ни к контейнерам,

невозможно получить список содержимого

Page 47: Azure - хранение данных в облаке

Права доступа к контейнеру

Page 48: Azure - хранение данных в облаке

Сигнатуры общего доступаТокен Shared Access Signature (SAS Token) это URI, который предоставляет доступ к защищенному контейнеру, блобу, очереди или таблице на определенный период времени

Доступ приложения к ресурсу без использования ключейИспользуется только с безопасными (HTTPS) запросамиМожет быть сгенерирован с такими параметрами:

Начальное времяВремя окончания периода доступностиУровень прав доступа (Read, Write, Delete, List, None)

Page 49: Azure - хранение данных в облаке

Структура Shared Access Signaturehttps://myaccount.blob.core.windows.net/sascontainer/

sasblob.txt?sv=2012-02-12&st=2013-04-29T22%3A18%3A26Z&se=2013-04-30T02%3A23%3A26Z&sr=b&sp=rw&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D

http://[account].blob.core.windows.net/[container]/[blob]?sv=[Storage Services Version]&?st=[Start Time]&se=[Expiry Time]&sr=[Resource]&sr=[Permissions Granted]&si=[nameofpolicy]&sig=[HMAC-SHA256 value]

Page 50: Azure - хранение данных в облаке

Хранимые политики доступаПозволяют управлять набором shared access signatures

Время жизни сигнатуры и права хранятся в политике, а не в URLМожно менять свойства политики и изменения сразу же применятся ко всем сигнатурам, соответствующим политикеМожно отозвать все сигнатуры, соответствующие политике

Контейнер, очередь или таблица могут иметь до пяти Stored Access PoliciesЭто рекомендованный подход к предоставлению доступа

Page 51: Azure - хранение данных в облаке

Генерирование сигнатур из политики// Get a reference to the container var container = blobClient.GetContainerReference(“files"); container.CreateIfNotExists();

// Create blob container permissionsvar blobPermissions = new BlobContainerPermissions(); blobPermissions.SharedAccessPolicies.Add("mypolicy", new SharedAccessBlobPolicy() { SharedAccessExpiryTime = DateTime.UtcNow.AddHours(10), Permissions = SharedAccessBlobPermissions.Read

});

blobPermissions.PublicAccess = BlobContainerPublicAccessType.Off;

Page 52: Azure - хранение данных в облаке

Генерирование сигнатур из политики// Set the permission policy on the container container.SetPermissions(blobPermissions);

// Get a reference to the container for the shared access signaturevar container = blobClient.GetContainerReference(“files"); container.CreateIfNotExists();

// Get the shared access signature to share with users string sasToken = container.GetSharedAccessSignature(new SharedAccessBlobPolicy(), "mypolicy“);

Page 53: Azure - хранение данных в облаке

Настройка учетных записей хранилища

Page 54: Azure - хранение данных в облаке

Content Delivery NetworkСтарый добрый CDN

Для существующей учетной записи можно настроить CDN -точку доступаКонтент будет кешироваться на серверах Azure, ближайших к пользователюДля облачного сервиса это тоже можно настроитьCDN-контент может быть получен из другого домена

Подробнее: https://azure.microsoft.com/en-us/documentation/articles/cdn-create-a-storage-account-with-cdn/

Page 55: Azure - хранение данных в облаке

Cross-Origin Resource SharingCross-Origin Resource Sharing (CORS) позволяет клиентскому коду делать кросс-доменные запросы

Браузеры и политики безопасности обычно не позволяют делать запросы такого вида

CORS – это расширение спецификации запросов/ ответов HTTP

Состоит из двух запросов (предварительного и основного)

CORS включен правилами на уровне учетной записи хранилища

CORS – это опцияПравила действуют как список разрешенных доменов, методов и заголовков

Подробнее: http://henry-chong.com/enabling-cors-cross-origin-resource-sharing-for-your-microsoft-azure-storage-blobs-etc

Page 56: Azure - хранение данных в облаке

Сторонние инструментыCloudBerry Explorerhttp://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx

Azure Storage Explorerhttps://azurestorageexplorer.codeplex.com/

Azure Management Studiohttp://www.cerebrata.com/

Cloud Portam http://www.cloudportam.com/

Page 57: Azure - хранение данных в облаке

Сторонние инструменты

Page 58: Azure - хранение данных в облаке

Сторонние инструменты

Еще? https://techmike2kx.wordpress.com/2013/08/23/10-tools-of-the-trade-for-your-windowsazure-environment/

Page 59: Azure - хранение данных в облаке

Файлы Azure

Page 60: Azure - хранение данных в облаке

Обзор файлового сервиса AzureСервис Azure Files предоставляет файловые «шары» (SMB), которые могут использоваться разными приложениямиSMB – это общий стандарт, так что приложения, работающие с «шарами» могут продолжить делать это и в облаке

Виртуальные машины могут подключаться к облачным «шарам» стандартным путемЛегкий способ миграции приложений в Azure

Page 61: Azure - хранение данных в облаке

Файловые «шары»Создаются через REST API или Windows PowerShellИспользуют протокол SMB 2.1Могут быть примонтированы в Windows как диск

Подробнее: https://azure.microsoft.com/ru-ru/documentation/articles/storage-dotnet-how-to-use-files/

Page 62: Azure - хранение данных в облаке

Лабораторная работа В: ХранилищеУпражнение 1

Реализация хранилища блобовУпражнение 2

Наполнение контейнера файламиУпражнение 3

Получение файлов из контейнераУпражнение 2

Настройка прав доступа к контейнеру

Расчётное время: 55 минут

Page 63: Azure - хранение данных в облаке

Сценарий лабораторной работыВам нужно место, где можно было бы хранить документы Word, генерируемые Вашим приложением. Вы решили хранить их в Azure как блобы, и защитить их от анонимного доступа.Также Вы хотите реализовать логику генерирования SAS-токенов для временного доступа к документам.

Page 64: Azure - хранение данных в облаке

Вопросы и ответыРекомендации

В ходе отладки лучше использовать LocalDB, в опубликованном приложении – БД Azure SQL

ВопросыКакие преимущества облачных баз данных Вы видите?Какие инструменты Вам доступны для работы с БД Azure SQL?Что такое SAS-токен, и какие параметры он имеет?Какие виды сервисов предоставляет хранилище Azure?


Recommended