УДК 004.738.52:004.455.2Windows Azure
ББК 32.973.2-018.2
Т30
Редкар Теджасви, Гвидичи Тони
Т30 Платформа Windows Azure: пер. с анг. Слинкина А. А. – М.:
ДМК Пресс, 2017 . – 656 с.: ил.
ISBN 978-5-97060-559-2
Эта книга посвящена одной из самых развитых современных
облачных платформ — Windows Azure. Вы узнаете не
только об основных концепциях облачных вычислений, но и
на реальных примерах увидите, как можно применить технологию
Windows Azure в собственных задачах. Во втором издании
рассматриваются такие новые возможности, как доступ
к удаленному рабочему столу, кэширование динамического
содержимого и безопасная доставка содержимого по SSLзащищенному
соединению.
Платформа состоит из трех основных частей: собственно
Windows Azure, Windows Azure AppFabric и SQL Azure. В этой
книге на конкретных примерах показано, как использовать
различные компоненты, по отдельности или вместе. Демонстрируются
рекомендованные приемы интеграции этих технологий
с существующими системами.
УДК 004.738.52:004.455.2Windows Azure
ББК 32.973.2-018.2
Все права защищены. Любая часть этой книги не может быть воспроизведена
в какой бы то ни было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку
вероятность технических ошибок все равно существует, издательство
не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возможные
ошибки, связанные с использованием книги.
ISBN 978-1-4302-3564-4 (анг.)
ISBN 978-5-97060-559-2 (рус.)
Copyright © by Tejaswi Redkar
and Tony Guidici
© Оформление, ДМК Пресс
Стр.5
Содержание
Благодарности ................................................................... 19
Об авторах ........................................................................... 21
О техническом рецензенте .............................................. 23
Предисловие к русскому изданию ................................ 24
Введение ............................................................................. 25
Глава 1
Общее описание платформы Windows Azure .............. 26
Введение в облачные службы ............................................. 27
Отраслевая терминология ............................................. 28
Типы облаков ............................................................. 30
Определение терминов ............................................. 32
Поставщики облачных служб .......................................... 32
Переход к облачной парадигме........................................... 33
Экосистема облачных служб ............................................... 35
Поставщики служб ......................................................... 35
Производители ПО ......................................................... 36
Независимые поставщики ПО ........................................ 36
Посредники .................................................................... 37
Предприятия .................................................................. 37
Облачная стратегия Microsoft ............................................. 37
Обзор платформы Windows Azure ........................................ 39
Архитектура вычислений на платформе Windows Azure ... 42
Windows Azure ..................................................................... 44
Служба вычислений ....................................................... 48
Роль Web ................................................................... 49
Роль Worker ............................................................... 50
Стр.6
6
Содержание
Роль VM ..................................................................... 52
Windows Azure Connect ............................................... 53
Служба хранения Windows Azure ..................................... 55
Управление .................................................................... 58
SQL Azure ............................................................................ 60
Windows Azure AppFabric ..................................................... 64
Ценообразование на платформе Windows Azure .................. 67
Портал управления – займемся подготовкой ...................... 72
Windows Azure Marketplace DataMarket ................................ 74
Типичные сценарии использования платформы Windows
Azure ................................................................................... 76
Базовые сценарии ......................................................... 76
Корпоративные сценарии .............................................. 78
Сценарии для независимых поставщиков ПО ................. 79
Резюме ............................................................................... 81
Библиография .................................................................... 81
Глава 2
Служба вычислений Windows Azure ............................... 82
Служба вычислений ............................................................ 82
Сетевые компоненты ................................................. 83
Blade-серверы ........................................................... 84
Гипервизор Windows Azure ......................................... 84
Структурный контроллер ........................................... 84
Операционные системы ............................................ 84
Среды исполнения приложений ................................. 85
Модель службы.......................................................... 85
Роли приложений ...................................................... 85
Домены обновления и неисправности ............................ 87
Домены в контексте приложения ............................... 89
Безопасность службы вычислений ................................. 90
Разработка служб для платформы Windows Azure ............... 91
Структура Windows Azure API .......................................... 92
Среда разработки .......................................................... 92
Windows Azure Tools for Visual Studio ........................... 92
Типы проектов в Visual Studio ..................................... 93
Настройка роли ......................................................... 96
Что позволяет проект, созданный Visual Studio ......... 102
Отладка в Visual Studio ............................................. 104
Стр.7
Содержание
7
Сборка пакета службы ............................................. 107
Инструментальные средства Windows Azure SDK .......... 111
Модели служб .............................................................. 112
Файл ServiceDefinition.csdef ..................................... 112
Управление сертификатами .................................... 122
Локальное квазиоблако ................................................ 126
Эмулятор хранилища ................................................... 128
Диагностика ..................................................................... 129
Протоколирование ....................................................... 132
Настройка прослушивателя трассировки................. 132
Задание местоположения хранилища ...................... 133
Запуск службы диагностики ..................................... 134
Разработка служб Windows Azure с межролевой
коммуникацией ................................................................. 137
Цели ............................................................................ 137
Добавление диагностики и межролевой коммуникации ... 137
Модель службы........................................................ 138
Роль Worker ............................................................. 141
Роль Web ................................................................. 145
Запуск службы HelloAzureCloud .................................... 146
Публикация в облаке Windows Azure ............................. 148
Просмотр журналов IntelliTrace ................................ 154
Подключение к удаленному рабочему столу ............ 156
Географическая распределенность .................................. 157
Разрешение территориальной группировки ................. 159
Управление службами Windows Azure ................................ 159
Структура API управления службами ............................ 161
Программирование с использованием API
управления службами .................................................. 162
Цикл разработки службы Windows Azure ............................ 165
Рекомендации по архитектурному проектированию ......... 167
Резюме ............................................................................. 168
Библиография .................................................................. 169
Глава 3
Хранилища Windows Azure,
часть I – BLOB-объекты и диски ................................... 170
Классификация хранилищ ................................................ 171
Архитектура службы хранения .......................................... 174
Стр.8
8
Содержание
Хранилище BLOB-объектов .............................................. 176
Ограничения хранилища BLOB-объектов ..................... 177
Архитектура хранилища BLOB-объектов ........................... 178
Учетная запись в службе хранения Windows Azure ......... 178
Контейнеры .................................................................. 179
BLOB-объекты .............................................................. 180
Типы BLOB-объектов .................................................... 181
Страничные BLOB-объекты ..................................... 181
Блочные BLOB-объекты ........................................... 181
REST API ........................................................................... 183
Запрос ......................................................................... 183
Глагол HTTP ............................................................. 183
URI запроса ............................................................. 183
Параметры URI ........................................................ 184
Заголовки запроса .................................................. 184
Тело запроса ........................................................... 187
Ответ ........................................................................... 187
Код состояния ......................................................... 187
Заголовки ответа ..................................................... 187
Тело ответа .............................................................. 187
StorageClient API ........................................................... 188
StorageClient API для хранилища BLOB-объектов ..... 189
Операции с учетной записью ............................................ 196
Пример программы .......................................................... 200
Операции с контейнерами ................................................ 203
Операция Create Container ........................................... 206
Операция Set Container Metadata ................................. 208
Операция List Blobs ...................................................... 211
Операции с BLOB-объектами ............................................ 218
Операция Put Blob ........................................................ 219
Операции Put Block и Put Block List .......................... 225
Операция Get Blob........................................................ 228
Операция Copy Blob ..................................................... 231
Content Delivery Network (CDN) .......................................... 234
Диски Windows Azure ......................................................... 237
Общие сведения .......................................................... 238
Операции с дисками .................................................... 239
Локальное создание диска ...................................... 241
Загрузка диска ........................................................ 244
Монтирование диска ............................................... 245
Стр.9
Содержание
9
Создание и монтирование диска из экземпляра
роли ........................................................................ 245
Создание мгновенного снимка диска ...................... 246
Сценарии использования дисков Windows Azure ........... 247
Сценарии использования хранилища BLOB-объектов ....... 249
Загрузка больших объемов данных .............................. 250
Хранилище как облачная служба .................................. 250
Интеграция с корпоративными доменными
учетными записями ................................................. 251
Классификация хранилищ ....................................... 252
Шифрование и дешифрирование ............................ 253
Корпоративная синхронизация файлов ........................ 253
Резюме ............................................................................. 255
Библиография .................................................................. 255
Глава 4
Хранилища Windows Azure, часть II – очереди .......... 256
Ограничения очередей ..................................................... 257
Архитектура хранилища очередей .................................... 258
Учетная запись в службе хранения Windows Azure ......... 259
Очереди ....................................................................... 259
Сообщения .................................................................. 260
REST API ........................................................................... 261
Запрос ......................................................................... 261
Глагол HTTP ............................................................. 262
URI запроса ............................................................. 262
Параметры URI ........................................................ 262
Заголовки запроса .................................................. 262
Тело запроса ........................................................... 264
Ответ ........................................................................... 264
Код состояния ......................................................... 264
Заголовки ответа ..................................................... 264
Тело ответа .............................................................. 265
StorageClient API ........................................................... 266
StorageClient API для хранилища очередей .............. 266
Операции с учетной записью ............................................ 270
Операции с очередями ..................................................... 275
Операция Create Queue ................................................ 276
Операция Set Queue Metadata ...................................... 279
Стр.10
10
Содержание
Операции с сообщениями ................................................ 281
Операция Put Message ................................................. 283
Операция Get Messages ............................................... 286
Асинхронный API ............................................................... 291
Сценарии использования очередей .................................. 294
Сценарий 1: коммуникация между ролями Web
и Worker ....................................................................... 294
Сценарий 2: распределение нагрузки между
ролями Worker .............................................................. 295
Сценарий 3: интероперабельная система обмена
сообщениями ............................................................... 296
Сценарий 4: гарантированная обработка ..................... 297
Резюме ............................................................................. 299
Библиография .................................................................. 299
Глава 5
Хранилища Windows Azure, часть III – таблицы ........ 300
Архитектура хранилища таблиц .................................... 301
Учетная запись в службе хранения Windows Azure .... 301
Таблицы ................................................................... 301
Сущности ................................................................ 302
Свойства ................................................................. 302
REST API ....................................................................... 307
Запрос..................................................................... 308
Ответ ....................................................................... 311
Библиотека службы данных ADO.NET
(и библиотека .NET Client) ........................................ 314
StorageClient API ...................................................... 315
Пример табличной модели ........................................... 318
Операции с учетной записью........................................ 324
Операции с таблицами ................................................. 324
Операция Create Table ............................................. 325
Опрос таблицы ........................................................ 329
Операции с сущностями............................................... 333
Операция Query Entities ........................................... 334
Операция Insert Entity .............................................. 343
Операция Merge Entity ............................................. 348
Средства аналитики хранилищ ......................................... 352
Протоколирование ....................................................... 353
Метрики ....................................................................... 355
Стр.11
Содержание
11
Включение средств аналитики хранилищ ..................... 356
Хранилище таблиц и SQL Azure ......................................... 357
Сценарии использования хранилища таблиц .................... 358
Сценарий 1: чтение счетчиков производительности
из хранилища таблиц ................................................... 358
Сценарий 2: разбиение результирующего
на страницы ................................................................. 362
Резюме ............................................................................. 364
Библиография .................................................................. 365
Глава 6
Роль VM и Windows Azure Connect ................................ 366
Роль VM ............................................................................ 366
Достоинства и недостатки роли VM .............................. 367
Сценарии ..................................................................... 368
Создание образа виртуальной машины ........................ 369
Компоненты интеграции роли Windows Azure VM .......... 370
Подготовка системы ................................................ 370
Координация между образом и средой Windows
Azure ........................................................................ 371
Установка сертификатов .......................................... 371
Создание локальных ресурсов хранения ................. 371
Установка компонентов интеграции ......................... 372
Программа подготовки системы .............................. 373
Загрузка образа в Windows Azure .................................. 373
Просмотр образа на портале управления ................ 374
Создание размещенной службы и определения
службы .................................................................... 374
Создание пакета и разрешение удаленного
доступа .................................................................... 376
Развертывание размещенной службы ..................... 377
Windows Azure Connect ...................................................... 378
Windows Azure Connect и шина служб ............................ 379
Подготовка Windows Azure Connect ............................... 380
Активированные конечные точки, группы и роли .......... 381
Установка и активация конечной точки Azure
на локальной машине ................................................... 381
Протоколы и порты .................................................. 383
Активация Windows Azure Connect для роли .................. 384
Создание групп Connect ............................................... 386
Стр.12
12
Содержание
Резюме ............................................................................. 387
Библиография .................................................................. 387
Глава 7
AppFabric: служба управления доступом ................... 388
Что такое цифровое удостоверение? ................................ 388
Что такое утверждения? .................................................... 390
Модель удостоверений на основе утверждений ................ 393
Сценарии использования службы управления доступом ... 396
Сценарий 1: облачное корпоративное приложение ...... 396
Сценарий 2: приложение, обслуживающее несколько
предприятий ................................................................ 399
Сценарий 3: облачная служба независимого
поставщика ПО ............................................................ 403
Получение маркеров от ACS ......................................... 405
Портал управления службой ACS ...................................... 405
Подготовка пространства имен службы ACS ................ 406
Поставщики удостоверений ......................................... 409
Active Directory Federation Services 2.0 (ADFS 2.0) ..... 409
Глобальные поставщики удостоверений .................. 412
Проверяющая сторона ................................................. 417
Группы правил .............................................................. 419
Сертификаты и ключи................................................... 419
Подписание маркера ............................................... 419
Создание собственного сертификата ...................... 421
Шифрование маркеров ........................................... 422
Дешифрирование маркеров .................................... 423
Удостоверения служб ................................................... 423
Администраторы портала ............................................. 423
Служба управления ...................................................... 424
Интеграция с приложениями ........................................ 425
Страницы входа ....................................................... 425
SDK и документация ................................................ 428
Ссылки на конечные точки ....................................... 428
Программирование приложений, интегрированных
со службой ACS ................................................................ 429
Пассивная федерация с ACS ........................................ 430
Веб-приложение: несколько поставщиков
удостоверений, пользующихся ACS ............................. 430
Стр.13
Содержание
13
Конфигурирование ACS с помощью портала
администрирования ................................................ 430
Добавление поставщиков удостоверений ................ 431
Добавление проверяющего приложения ................. 431
Создание групп правил и правил преобразования
утверждений ............................................................ 431
Модификация проверяющего приложения
для интеграции с ACS .............................................. 432
Добавление поставщика, работающего по протоколу
WS-Federation ............................................................... 434
Проектирование утверждений
для проверяющей стороны ...................................... 436
Проектирование правил ACS ................................... 436
Авторизация на основе утверждений ....................... 437
Резюме ............................................................................. 441
Концепции и терминология............................................... 441
Поставщик удостоверений ........................................... 442
Проверяющая сторона ................................................. 442
Маркер безопасности (SAML-маркер) .......................... 442
Служба маркеров безопасности (STS) .......................... 442
Запрос на получение маркера безопасности
(Request for Security Token – RST) ................................. 443
Ответ на запрос на получение маркера безопасности
(Request Security Token Response – RSTR) .................... 443
Утверждение ................................................................ 443
Федерация удостоверений .......................................... 444
Windows Identity Foundation (WIF) .................................. 444
Active Directory Federation Server (ADFS 2.0) .................. 445
Web Resource Authorization Protocol (WRAP)
и Simple Web Token (SWT) ............................................. 445
Библиография .................................................................. 446
Глава 8
AppFabric: шина служб ................................................... 447
Немного предварительной информации… ........................ 447
Сервисная шина предприятия (ESB) ................................. 449
Безопасность и управление доступом .......................... 450
Инфраструктура связи ................................................. 450
Корпоративная схема именования ............................... 450
Стр.14
14
Содержание
Контракты интерфейсов ............................................... 451
Эволюция сервисной Интернет-шины (ISB) ...................... 451
Служба ретрансляции .................................................. 454
Введение в шину служб AppFabric ..................................... 455
Безопасность ............................................................... 456
Интеграция с ACS (аутентификация
ретрансляции) ......................................................... 457
Защита сообщений .................................................. 460
Служба именования ..................................................... 461
Реестр службы ............................................................. 464
Среда обмена сообщениями ........................................ 466
Привязки шины служб AppFabric .............................. 468
Буфер сообщений ................................................... 470
Очереди и темы ....................................................... 471
Программирование с использованием шины служб
AppFabric .......................................................................... 471
Пример: служба ProAzure Energy .................................. 473
Привязка NetOnewayRelayBinding ................................. 476
Контракт AppFabric .................................................. 477
Реализация службы ................................................. 479
Привязка службы ..................................................... 480
Защита ретрансляции ............................................. 482
Защита сообщений .................................................. 484
Конечные точки службы ........................................... 488
Размещение службы ................................................ 489
Проектирование клиента ......................................... 490
Запуск приложения ................................................. 492
Привязка NetEventRelayBinding .................................... 492
Контракт AppFabric .................................................. 496
Реализация службы ................................................. 496
Привязка службы ..................................................... 497
Защита ретрансляции ............................................. 497
Защита сообщений .................................................. 498
Конечные точки службы ........................................... 498
Размещение службы ................................................ 498
Проектирование клиента ......................................... 499
Запуск приложения ................................................. 500
Привязка NetTcpRelayBinding ....................................... 501
Контракт AppFabric .................................................. 505
Реализация службы ................................................. 507
Привязка службы ..................................................... 508
Защита ретрансляции ............................................. 508
Стр.15
Содержание
15
Защита сообщений .................................................. 509
Конечные точки службы ........................................... 510
Размещение службы ................................................ 510
Проектирование клиента ......................................... 511
Запуск приложения ................................................. 512
HTTP-привязки ретрансляции ...................................... 513
Привязка WS2007HttpRelayBinding ........................... 515
Привязка WebHttpRelayBinding ................................ 519
Буфер сообщений............................................................. 526
Программирование работы с буфером сообщений
в приложениях ............................................................. 528
Создание политики буфера сообщений ....................... 528
Создание и удаление буфера сообщений ................ 529
Отправка сообщений в буфер .................................. 530
Получение сообщений из буфера ............................ 530
Пример приложения, работающего с буфером
сообщений .............................................................. 531
Обмен сообщениями на шине служб AppFabric:
очереди и темы ................................................................. 532
Очереди шины служб AppFabric ........................................ 533
Сравнение очереди шины служб AppFabric и хранилища
очередей Azure ................................................................. 535
Темы шины служб AppFabric.............................................. 535
Правила подписки ........................................................ 537
SQLFilterExpression .................................................. 537
CorrelationFilterExpression ........................................ 537
Программирование очередей и тем шины служб .............. 537
Клиентский .NET API ..................................................... 537
Пространство имен Microsoft.ServiceBus ................. 537
Пространство имен
Microsoft.ServiceBus.Messaging ............................... 539
Основные компоненты среды обмена
сообщениями .......................................................... 540
Создание и отправка сообщений ............................. 541
Обработка проблематичных сообщений и отказ
от обработки............................................................ 544
REST API ....................................................................... 545
Защита REST-запросов средствами службы ACS ..... 545
Очереди: команды для работы с сообщениями ........ 547
Очереди: команды управления ................................ 548
Темы и подписки: команды для работы
с сообщениями ........................................................ 551
Стр.16
16
Содержание
Темы: команды управления ...................................... 554
Правила: команды управления ................................ 559
Резюме ............................................................................. 561
Библиография .................................................................. 561
Глава 9
AppFabric: кэширование ................................................ 562
Сравнение кэширования AppFabric с другими
технологиями кэширования .............................................. 564
Подготовка кэша AppFabric ............................................... 564
Клиенты кэша AppFabric ................................................... 564
Ссылки на сборки ......................................................... 565
Настройка клиента кэша .............................................. 565
Настройка клиента кэша с помощью
конфигурационного файла приложения ................... 565
Настройка кэша из программы ................................ 568
Программирование кэша AppFabric ............................. 570
Поставщик состояний сеансов ASP.NET ............................ 571
Включение поддержки состояния сеансов в кэше
AppFabric ..................................................................... 572
Включение кэширования вывода ASP.NET в кэше
AppFabric .......................................................................... 573
Резюме ............................................................................. 574
Библиография .................................................................. 574
Глава 10
SQL Azure ........................................................................... 575
Обзор SQL Azure ............................................................... 575
Архитектура SQL Azure ...................................................... 577
Инфраструктурный уровень ......................................... 578
Платформенный уровень ............................................. 578
Уровень служб .............................................................. 578
Клиентский уровень ..................................................... 579
Поддерживаемые функции и ограничения SQL Azure ........ 579
Средства базы данных ................................................. 580
Средства прикладного уровня ...................................... 581
Стр.17
Содержание
17
Средства администрирования ..................................... 581
Доступ к данным в SQL Azure ............................................ 581
Ближнее подключение ................................................. 582
Дальнее подключение .................................................. 583
Начинаем работу с SQL Azure ............................................ 583
Создание сервера SQL Azure ........................................ 585
Создание базы данных SQL Azure ................................. 587
Подключение к базе данных SQL Azure ......................... 589
Подключение из SQL Server Management Studio ....... 590
Подключение с помощью программы Database
Manager ................................................................... 597
Подключение с помощью SQLCMD .......................... 600
Подключение с помощью ADO.NET .......................... 602
Разработка служб Windows Azure с использованием
SQL Azure .......................................................................... 606
Описание службы ......................................................... 606
Бизнес-процессы в системе управления спросом ........ 607
Техническая архитектура .............................................. 609
Проектирование базы данных о шлюзах и тарифах ...... 609
Создание базы данных proazuredemres .................... 611
Создание таблиц базы данных ................................. 612
Создание хранимых процедур ................................. 613
Загрузка тестовых данных ....................................... 617
Оптимизация запросов SELECT ............................... 619
Синхронизация таблицы тарифов ............................ 623
Проектирование шлюза ........................................... 623
Запуск службы управления спросом Dem-Res ......... 625
Стратегии переноса базы данных ..................................... 626
Перенос определения данных ...................................... 627
Перенос данных ........................................................... 628
Перенос бизнес-логики ................................................ 629
Перенос приложений ................................................... 630
Стратегии управления ростом базы данных ...................... 631
Отчеты в SQL Azure ........................................................... 633
Пример отчета ............................................................. 633
Создание отчетов ......................................................... 634
Определение источника данных .............................. 634
Определение запроса ............................................. 635
Развертывание отчетов ........................................... 635
Стр.18
18
Содержание
Сравнение с SSRS ............................................................ 636
Служба Data Sync .............................................................. 637
Дизайн Data Sync .............................................................. 638
Параметры синхронизации .......................................... 638
Резюме ............................................................................. 638
Библиография .................................................................. 639
Предметный указатель ................................................... 640
Стр.19