Microsoft Windows Azure. Быстрый старт. Часть 5. Развертывание VM-роли

Мы завершим рассмотрение развертывания приложений в Windows Azure кратким обсуждением развертывания VM-роли – специализированной роли, позволяющей разработчикам использовать собственные образы виртуальных машины на базе Windows Server 2008 R2 для их запуска в инфраструктуре Windows Azure.

См. также предыдущие части цикла по развертыванию приложений:

  • Часть 1. Развертывание приложений. Часть 1
    • Описываются подходы к публикации приложений в Windows Azure, развертывание под эмулятором Windows Azure, развертывание в Windows Azure, процесс развертывания приложения
    • http://blogs.technet.com/b/isv_team/archive/2011/07/05/3439621.aspx
  • Часть 2. Развертывание приложений. Часть 2
    • Описывается создание сертификата, загрузка сертификата на портал Windows Azure, публикация с помощью Visual Studio, развертывание вручную, содержимое пакета развертывания
    • http://blogs.technet.com/b/isv_team/archive/2011/07/15/3441848.aspx
  • Часть 3. Стартовые задачи и дополнительные файлы
  • Часть 4. Внутри виртуальной машины Windows Azure
    • Приводится пример создания приложения для удаленного запуска команд на виртуальной машине, а также описывается настройка удаленного доступа к виртуальной машине Windows Azure
    • http://blogs.technet.com/b/isv_team/archive/2011/08/01/3444532.aspx

Примечание: На момент написания данного обзора (август 2011) VM-роль находилась в бета-тестировании, так что к моменту выхода финальной версии некоторые характеристики этой роли могут измениться.

VM-роль

В большинстве сценариев, веб-роли и прикладная роль, сконфигурированные с использованием стартовых задач (подробнее) являются более «правильным» решением по сравнению с использованием VM-роли. VM-роль дает разработчикам больший контроль над образом виртуальной машины, но при этом задача обновления этого образа (решаемая автоматически для веб-роли и прикладной роли на уровне инфраструктуры Windows Azure) должна выполняться ими самостоятельно. Как следствие, это увеличивает общую стоимость разработки, тестирования и сопровождения такого решения.

VM-роль следует использовать в тех сценариях, когда требуется развертывание приложений, занимающее длительное время и используется развертывание, требующее интерактивных действий. Также, VM-роль используется для запуска приложений, которые в настоящий момент невозможно перенести в модель Windows Azure (с использование веб-ролей и прикладных ролей), приложений, использующих дополнительные компоненты и т.п.

VM-роль поддерживает ту же самую программную модель, что и веб-роль и прикладная роль. Это, в частности означает, что для того, чтобы Windows Azure могла корректно обрабатывать ситуации со сбоями экземпляров роли, приложения не должны хранить состояния и не должны полагаться на сохранение данных на локальных дисках экземпляра роли. Поэтому, в VM-роли не поддерживается работа таких серверных приложений, как SharePoint Server, SQL Server, Small Business Server и Terminal Server, а отсутствие поддержки UDP-трафика означает, что Domain Controller (Active Directory) также не будет работать в VM-роли.

Жизненный цикл VM-роли

Жизненный цикл VM-роли состоит из следующих основных этапов:

  • Создание образа виртуальной машины
  • Загрузка образа
  • Создание сервиса
  • Развертывание сервиса
  • Сопровождение сервиса
  • Обновление сервиса

Визуально данный процесс показан на следующей иллюстрации.

05-01

Рис. Жизненный цикл VM-роли

Рассмотрим каждый этап более подробно. Прежде чем начать создание образа виртуальной машины, убедитесь в том, что вы подписаны на бета-программу VM-роли. Это можно сделать из портала Windows Azure (https://windows.azure.com/) в разделе «Программы тестирования бета-версий».

05-02

Рис. Программа тестирования VM-роли

Создание образа виртуальной машины

На этом этапе мы выполняем преобразование DVD с операционной системой в виртуальный диск (VHD) или использование существующего виртуального диска. Подробнее о создании виртуальных машин см. http://technet.microsoft.com/ru-ru/library/cc764277(en-us).aspx. Отметим, что в качестве готового образа виртуального диска можно использовать пробную версию Windows Server 2008 R2, которую можно загрузить по адресу http://download.microsoft.com/download/D/E/C/DEC012DC-C822-43C2-88EA-D53234930393/Windows%20Server%202008%20R2%20Enterprise%20Evaluation%20(Full%20Edition).exe.

После того как образ готов и загружен под Hyper-V, необходимо настроить серверную роль и установить несколько дополнительных компонентов:

  • Включить серверную роль «Web Server»
    • Запустить Server Manager через All Programs | Administrative Tools
    • Выбрать элемент «Roles», выполнить команду «Add Roles»
    • Выбрать роль «Web Server (IIS) »
    • В разделе «Role Services» убедиться, что все ключевые сервисы включены
    • Завершить конфигурацию роли сервера
  • Установить .NET Framework 3.5
    • Выбрать элемент «Features»
    • Выполнить команду «Add Features»
    • В группе « .NET Framework 3.5.1 Features» выбрать « .NET Framework 3.5.1»
    • Дождаться установки выбранных компонентов
  • Установить обновления и отключить автоматическое обновление
    • Выполнить команду «Start | All Programs | Windows Update»
    • Выполнить команду «Change Settings», выбрать опцию «Never check for updates (not recommended) »
    • Выполнить команду «Check for updates» и установить все доступные обновления
  • Установить Windows Azure VM Role Integration Components. К этим компонентам относятся:
    • Fabric Agent
    • Интерфейсы времени исполнения (Runtime Interface)
    • Средство конфигурации Remote Desktop
    • Компонент Azure Diagnostics
    • Драйвер Windows Azure Drive
    • Windows Azure Connect
  • Компоненты Windows Azure VM Role Integration Components входят в состав Windows Azure SDK (http://www.microsoft.com/download/en/details.aspx?id=15658)
  • После установки SDK компоненты Windows Azure VM Role Integration Components располагаются в каталоге C:\Program Files\Windows Azure SDK\v1.4\iso в виде образа диска с именем wavmroleic.

05-02-00

Рис. Установка Windows Azure VM Role Integration Components

После того как образ готов, его необходимо протестировать локально, чтобы убедиться в том, что все компоненты на месте, затем развернуть программное обеспечение, которое будет выполняться в VM-роли.

Загрузка образа

На этом этапе мы сохраняем образ виртуального диска в хранилище бинарных объектов Windows Azure Blob Storage. Загрузка образа в Windows Azure Blob Storage осуществляется с помощью утилиты командной строки csupload, которая входит в состав Azure SDK. Для выполнения этой команды запускаем Windows Azure SDK Command Prompt с повышенными привилегиями и выполняем следующую команду:

csupload Add-VMImage -Connection "SubscriptionId=[subscription_id]; CertificateThumbprint=[certificate_thumbprint]" -Description "[description]" -LiteralPath "[vhd_location]" –Name [vhd_filename] -Location "[azure_subregion]" -TempLocation %TEMP% -SkipVerify

где:

  • Опция ``Add`` - ``VMImage`` указывает на операцию добавления локального виртуального диска в хранилище ``Windows``Azure
  • Опция – ``Connection`` указывает параметры соединения с ``Windows``Azure``:
    • subscription_ id – идентификатор подписки, в рамках которой будет загружен образ виртуального диска
    • certificate_ thumbprint - это идентификатор management-сертификата, загруженного для указанной выше подписки
  • Опция – ``Description
    • Задает описание для данной загрузки
  • Опция –``LiteralPath
    • Задает местоположение образа на локальной машине или в сети
  • Опция ``–Name
    • Задает имя образа
  • Опция –``Location
    • Задает местоположение образа в ``Windows``Azure`` – необходимо указать суб-регион для размещения. Названия суб-регионов можно найти на портале ``Windows``Azure
  • Две последние опции нужны в тех случаях, когда у нас нет доступа на запись в папку с образом на локальном или сетевом компьютере
    • Опция –``TempLocation`` задает местоположение временной папки
    • Опция –``SkipVerify`` указывает на необходимость пропуска проверки образа – это может понадобиться при развертывании образа с 32-битной версии ``Windows`` 7

Для получения более подробной информации об опциях утилиты командной строки csupload запустите ее с опцией ``get`` - ``help`` – это выдаст список всех команд или ``get`` - ``help`` <имя_команды> `` (например ``get`` - ``help``add`` - ``vmimage`` ) для получения подробного описания команды ``add`` - ``vmimage`` .

Развертывание сервиса

На этом этапе, с помощью Visual Studio 2010 мы описываем сервисную модель и развертываем сервис. Чтоб сформировать конфигурационные файлы, можно использовать поддержку VM-роли в Visual Studio. Чтобы включить поддержку VM-роли в Visual Studio, следует внести изменения в реестр – записать следующую настройку:

[HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Windows Azure Tools for Microsoft Visual Studio 2010\1.0]

"VirtualMachineRoleEnabled"=dword:00000001

05-02-01

Рис. Включение поддержки VM-роли в Visual Studio

Скрит для 32- и 64-битной версии Visual Studio можно скачать по следующим адресам:

После включения поддержки VM-роли в Visual Studio необходимо выполнить следующие действия:

  • Создать новый проект на Windows Azure и не добавлять в него никаких ролей.
  • В Solution Explorer выбрать название проекта, нажать правую кнопку «мыши» и выполнить команду «Add | New Virtual Machine Role».

05-03

Рис. Добавление VM-роли к проекту

Далее, в панели свойств VM-роли мы указываем:

  • На вкладке «Virtual Hard Disk»
    • Сертификат для доступа к порталу Windows Azure. Это может быть тот же Management-сертификат, что и для развертывания других типов ролей из Visual Studio
    • Местоположение образа виртуальной машины в Windows Azure Storage
  • На вкладке «Configuration»
    • Число экземпляров виртуальной машины
    • Размер виртуальной машины (по умолчанию используется Small)
    • Необходимость поддержки диагностики (по умолчанию включена, нужно изменить тип хранилища в случае использования в виртуальной машине)
  • На вкладке «Settings»
    • Дополнительные конфигурационные настройки
  • На вкладке «Endpoints»
    • Порты, открываемые в виртуальной машине
  • На вкладке «Virtual Network»
    • Необходимость во включении Windows Azure Connect – для этого у вас должен быть активационный маркер (activation token), полученный на портале Windows Azure

Настройки для VM-роли будут выглядеть примерно так, как показано на следующих иллюстрациях.

05-04

Рис. Описание сервиса (Service Definition)

05-05

Рис. Конфигурация сервиса (Service Configuration)

После того как все сконфигурировано, выбираем в Solution Explorer название проекта, нажимаем правую кнопку «мыши» и выполняем команду «Publish». Далее – все как и при публикации других типов ролей – см. предыдущие посты в рамках данного цикла, перечисленные в начале данной публикации.

Сопровождение сервиса

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

В понятие «сопровождение сервиса» также входят такие операции, как перезагрузка образа (при необходимости), изменение образа и т.п.

Обновление сервиса

Под обновлением сервиса мы повторение перечисленных выше шагов с использованием нового образа операционной системы.

Желающие пройти весь процесс по шагам (для этого потребуется Windows Server 2008 R2 с включенным Hyper-V) – это займет порядка 2-х часов, могут выполнить лабораторную работу, описание которой находится по адресу http://msdn.microsoft.com/en-us/windowsazure/wazplatformtrainingcourse_vmrolelab_topic2.

На этом наше обсуждение различных вариантов развертывания в Windows Azure заканчивается. Последующие публикации в данном блоге будут посвящены другим вопросам, связанным с созданием приложений на платформе Windows Azure.

/АФ