Microsoft Windows Azure. Быстрый старт
В цикле статей «Windows Azure. Быстрый старт» мы приведем ряд практических примеров, которые позволят разработчикам быстро получить основные навыки работы с Windows Azure, Azure Storage и SQL Azure. Часть 1. Публикация приложений в Windows Azure В первой части цикла «Windows Azure. Быстрый старт» мы рассмотрим практические шаги по публикации приложения в Windows Azure. Для успешного выполнения всех описанных ниже шагов вам потребуется доступ к Windows Azure. Помимо этого, на компьютере, где вы планируете изучать Windows Azure, необходимо установить следующие программные компоненты:
Более подробно об этих компонентах, их установке и назначении см. в блоге по адресу https://blogs.technet.com/b/isv_team/archive/2010/12/27/3377315.aspx. После того как все программные компоненты успешно установлены, можно начинать знакомство с процессом создания и публикации приложений в Windows Azure. Начнем с того, что запустим Visual Studio 2010 (в нашем случае это будет Microsoft Visual Studio 2010 Ultimate) в режиме с повышенными привилегиями – Start | All Programs | Visual Studio 2010 | Microsoft Visual Studio 2010, нажмем правую кнопку «мыши» и выполним команду Run As Administrator. Примечание. Запуск Visual Studio с повышенными привилегиями позволит гарантировать отсутствие ошибок при выполнении различных операций как на локальном уровне, так и с Windows Azure. Если ваша учетная запись принадлежит к группе администраторов, Visual Studio можно запускать и в стандартном режиме, но лучше всегда запускать средство разработки с повышенными привилегиями во избежание возможных ошибок доступа к локальным или удаленным ресурсам. После этого в Visual Studio выполним команду File | New Project. В списке Installed Templates выберем язык программирования (в нашем примере это будет C#) и раздел Cloud. Укажем имя проекта – в нашем примере это будет WA_Publish. По умолчанию проект будет сохранен в пользовательском профиле в папке Documents\Visual Studio 2010\Projects. Выполненные нами действия показаны на следующей иллюстрации. Рис. Создание проекта на Windows Azure Нажмем кнопку «Ok» и перейдем к выбору компонентов нашего проекта (они называются «роли»). Выберем ASP.NET Web Role и нажмем стрелку вправо для добавления этой роли к нашему проекту. Выполненные нами действия показаны на следующей иллюстрации. Рис. Добавление роли Нажмем кнопку «Ok». В разметке страницы внесем ряд изменений – вместо стандартного текста вставим текст «Windows Azure Application» и элемент Label, который будет отображать идентификатор нашего приложения. Рис. Новая разметка для приложения В коде страницы добавим ссылку на сборку Microsoft.WindowsAzure.ServiceRuntime и обращение к свойству RoleEnvironment.DeploymentID для получения идентификатора нашего приложения: Рис. Код приложения Более подробно про пространство имен Microsoft.WindowsAzure.ServiceRuntime см. в блоге по адресу https://blogs.technet.com/b/isv_team/archive/2011/01/12/3379823.aspx и на сайте MSDN (https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.service-runtime.aspx) Развертывание под эмулятором Windows Azure Если теперь нажать кнопку Ctrl + F5 (эта команда приведет к запуску приложения без отладчика, так как на этом шаге нам пока нечего отлаживать), наше приложение запустится под локальным эмулятором Windows Azure (подробнее о локальном эмуляторе Windows Azure см. в блоге по адресу https://blogs.technet.com/b/isv_team/archive/2010/12/29/3377670.aspx) и мы увидим следующий результат: Рис. Запуск приложения под локальным эмулятором Отметим, что число, стоящее в скобках после слова Deployment может отличаться от показанного на иллюстрации – оно увеличивается после каждого развертывания приложения под локальным эмулятором. Как мы увидим ниже, идентификатор нашего приложения, запущенного в Windows Azure, будет отличаться от идентификатора, запущенного под локальным эмулятором – в Windows Azure это всегда будет GUID. Другой вариант определения факта запуска под локальным эмулятором или под Windows Azure – это проверка значения свойства RoleEnvironment.CurrentRoleInstance.InstanceEndpoints – в случае работы под локальным эмулятором, оно будет 127.0.0.1. Для этого код, используемый для отображения информации нужно заменить на следующий:
Закроем браузер, в котором отображалось наше приложение, и посмотрим на проект в Visual Studio. Обратим внимание на два конфигурационных файла – ServiceConfiguration.cscfg и ServiceDefinition.csdef. Файл ServiceDefinition.csdef содержит данные, используемые Windows Azure для хостинга приложения и указывает, какие роли нужны для приложения. Файл ServiceConfiguration.cscfg описывает число экземпляров каждой роли, используемой в приложении (подробнее об этом см. в блоге по адресу https://blogs.technet.com/b/isv_team/archive/2010/12/29/3377670.aspx). Для нашего упражнения никаких изменений вносить в эти конфигурационные файлы не требуется. Рис. Конфигурационные файлы приложения Мы готовы к публикации нашего приложения в Windows Azure. Для целей нашего упражнения разделим процесс публикации на два этапа – создание всех необходимых файлов на локальном диске и публикация этих файлов через портал Windows Azure. Далее выполним следующие шаги:
Рис. Вызов команды Publish Выберем опцию Create Service Package Only и нажмем кнопку «Ok». Рис. Диалоговая панель Deploy Windows Azure project В результате выполнения команды Publish с опцией Create Service Package Only в каталоге \Visual Studio 2010\Projects\WA_Publish\WA_Publish\bin Рис. Файлы для развертывания приложения Файл публикации представляет собой ZIP-архив с рядом файлов, подготовленных для развертывания в инфраструктуре Windows Azure. Ради любопытства мы можем открыть этот файл каким-либо архиватором. На самом деле, чтобы изучить реальное содержимое пакета развертывания нужно выполнить ряд дополнительных действий, о которых мы поговорим ниже. Рис. Содержимое пакета развертывания Развертывание в Windows Azure Наш следующий шаг на пути развертывания приложения – подключение к порталу Windows Azure (https://www.microsoft.com/windowsazure/). На первой странице следует выбрать команду Sign in to the Management Portal, затем – ввести свой Windows Live ID. Рис. Подключение к порталу Windows Azure. Шаг 1 Рис. Подключение к порталу Windows Azure. Шаг 2 После подключения к порталу Windows Azure в левой панели выберем группу «Hosted Services, Storage Accounts & CDN» и выберем подписку, с которой мы будем работать – у вас может быть более одной подписки, следует выбрать ту, у которой статус помечен как «Active». Нажмем кнопку «New Hosted Service» в левом верхнем углу экрана. Рис. Создание нового сервиса в Windows Azure В диалоговой панели Create a New Hosted Service укажем следующие данные:
Описанные шаги показаны на следующей иллюстрации. Рис. Атрибуты нового сервиса Первое, что мы увидим – это предупреждение о том, что наше приложение не будет покрываться Windows Azure Compute SLA: Рис. Предупреждение Windows Azure Compute SLA Данное предупреждение связано с тем, что компания Microsoft не может обеспечить выполнение Service Level Agreement (SLA) с уровнем доступности сервиса 99.95% в том случае, если развертывается только один экземпляр сервиса – высокая доступность обеспечивается только при наличии двух или более экземпляров. Так как мы развертываем приложение в демонстрационных целях, данное предупреждение можно проигнорировать. Практически ту же информацию можно получить и на портале Windows Azure в разделе Deployment Health. Рис. Предупреждение Windows Azure Compute SLA в разделе Deployment Health Нажмем кнопку «Yes» для продолжения процесса развертывания. Инфраструктура Windows Azure начинает процесс развертывания и конфигурирования нашего приложения на основании указанных при создании «облачного» приложения файлов. Процесс развертывания приложения По шагам этот процесс выглядит следующим образом (показаны состояния компонентов приложения, отображаемые на портале Windows Azure в процессе развертывания приложения):
Как мы отметили выше, по завершении процесса развертывания (он может занять 5-10 мин.) статус приложения становится Ready и для нашего приложения становится активным его DNS-имя, нажатие которого приводит к запуску приложения. Как мы отметили выше, идентификатор приложения отображается как GUID. Этот факт, а также URL-адрес указывают на то, что мы запустили приложение в «облаке». Рис. Работа приложения в “облаке” Наше упражнение завершим удалением всех созданных артефактов. Для этого выполним команду «Stop» для остановки нашего приложения и виртуальной машины, которая выделена для его работы, а затем – команду «Delete» для удаления конфигурации и пакета развертывания. В следующей части В следующей части мы рассмотрим другие способы развертывания приложений в Windows Azure. |