Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Мы завершим рассмотрение развертывания приложений в 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. Стартовые задачи и дополнительные файлы
- Описывается использование стартовых задач (startup tasks) и в состав проекта включение дополнительных файлов
- http://blogs.technet.com/b/isv_team/archive/2011/07/26/3443549.aspx
- Часть 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-роли состоит из следующих основных этапов:
- Создание образа виртуальной машины
- Загрузка образа
- Создание сервиса
- Развертывание сервиса
- Сопровождение сервиса
- Обновление сервиса
Визуально данный процесс показан на следующей иллюстрации.
Рис. Жизненный цикл VM-роли
Рассмотрим каждый этап более подробно. Прежде чем начать создание образа виртуальной машины, убедитесь в том, что вы подписаны на бета-программу VM-роли. Это можно сделать из портала Windows Azure (https://windows.azure.com/) в разделе «Программы тестирования бета-версий».
Рис. Программа тестирования 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.
Рис. Установка 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
Рис. Включение поддержки VM-роли в Visual Studio
Скрит для 32- и 64-битной версии Visual Studio можно скачать по следующим адресам:
После включения поддержки VM-роли в Visual Studio необходимо выполнить следующие действия:
- Создать новый проект на Windows Azure и не добавлять в него никаких ролей.
- В Solution Explorer выбрать название проекта, нажать правую кнопку «мыши» и выполнить команду «Add | New Virtual Machine Role».
Рис. Добавление 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-роли будут выглядеть примерно так, как показано на следующих иллюстрациях.
Рис. Описание сервиса (Service Definition)
Рис. Конфигурация сервиса (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.
/АФ
Comments
Anonymous
August 12, 2011
Так-то здорово, только пока бесполезно, т.к. azure недоступен в РФAnonymous
November 04, 2011
Даже удивительно что столь старый материал, исходяший от компании Microsoft пестрит чудовищными ошибками которые никак не помогают справиться с простой казалось бы задачей закачки образа vhd в azure. Я прихожу к выводу что те кто подготовил этот текст и сюда поместил не более чем роботы которые тупо переводят старые материалы из англоязычного msdn. Очень хотел бы вам при случае сказать свое "фи" за бессмысленную и ничем не помогающу работу которую вы несомненно делаете и думаете что она кому либо полезна.