Развитие платформы облачных вычислений Microsoft Windows Azure

Разработка приложений для новой версии Windows Azure

Показывать лекцию целиком

Цель лекции: Ознакомление с разработкой облачных приложений для новой версии Windows Azure средствами Visual Studio.NET.

Презентацию к лекции вы можете скачать здесь.

Введение. Visual Studio как основной инструмент разработки и запуска приложений для новой версии Windows Azure

Разработка облачных приложений, по сравнению с разработкой обычного консольного или Windows-приложения, является нетривиальной задачей, ввиду сложности архитектуры приложения и всей облачной системы Windows Azure. Приложение фактически представляет собой Web-сервис, который должен быть опубликован и развернут в облаке.

Разработчикам Visual Studio, тем не менее, удалось обеспечить столь удобную поддержку разработки облачных приложений, что она по сложности почти не отличается от разработки обычных приложений. Всю техническую работу по генерации большого объема рутинного кода и конфигурационных файлов, перекачке файлов на сайты облака и т.д. Visual Studio берет на себя.

Следует иметь в виду, что, в отличие от использования Windows Azure (которое может быть осуществлено с любого компьютера с Web-браузером), разработка приложений для Windows Azure предъявляет весьма высокие требования к компьютеру, операционной системе и рабочему окружению разработчика. Наиболее предпочтительна разработка облачного приложения на компьютере с Windows 8 или с Windows 7; последняя рассмотрена в лекции в качестве примера. Кроме ОС, для разработки необходимо инсталлировать на компьютер разработчика значительный объем программного обеспечения, точная спецификация которого опубликована на сайте windows.azure.com.

Итак, для разработки облачного приложения необходимо запустить Visual Studio, причем в специальном режиме – от имени администратора (рис 10.1).

(рис 10.1) Запуск Visual Studio от имени администратора

Создание проекта типа Windows Azure Project

Следующий шаг – правильный выбор типа проекта. В Visual Studio предусмотрен специальный тип проекта – Windows Azure Project, который и следует выбрать (рис 10.2).

(рис 10.2) Создание проекта WindowsAzureProject4 типа Windows Azure Project

Создание ASP.NET Web-роли

Теперь необходимо создать ). Напомним, что, по терминологии Azure, Web-роль – это Web-приложение, развернутое в облаке Azure.

(рис 10.3) Создание ASP.NET Web-роли

Создание ASP.NET – страницы облачного сервиса

Создадим ASP.NET – страницу нашего Web-сервиса, используя готовый шаблон ее кода, предоставляемый средой Visual Studio (рис 10.4). Напомним (см. лекцию 4), что в .NET Web-сервис представляется ASP.NET – страницей, файл с которой имеет расширение .aspx. В ASP.NET – странице указывается ее заголовок, язык, на котором она разработана, а также ссылка на так называемый Code-behind – файл кода на языке реализации C#, содержащий методы обработки событий, связанных с ASP.NET – страницей. Такое разделение на файл спецификации пользовательского интерфейса страницы и на файл его реализации удобно и соответствует принципам модульного программирования. Данная простая ASP.NET - страница выдает заданный текст – приветственное сообщение от новой версии моего курса по Azure (2013).

(рис 10.4) Создание ASP.NET – страницы облачного сервиса

Сборка (build) облачного сервиса

После cсоздания исходного кода ASP.NET – страницы в Visual Studio необходимо выполнить сборку (build) проекта. Рекомендуемый авторами Azure способ сборки в данном случае – выбор пункта Debug / Start without debugging (рис 10.5).

(рис 10.5) Сборка облачного сервиса

Запуск облачного сервиса на локальной машине на эмуляторе облака

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

В результате создается Web-страница на локальной машине (IP-адрес которой, как известно, равен 127.0.0.1), и данная Web-страница интерпретируется браузером, визуализируя текст нашего сообщения

(рис 10.6) Запуск облачного сервиса на локальной машине на эмуляторе облака

Подготовка к публикации сервиса в облаке

Теперь, для того, чтобы облачное приложение можно было вызывать через Web, по URL-адресу, который был бы автоматически присвоен сервису средствами Windows Azure, приложение должно быть представлен этап publish (публикация), на котором разработчик сервиса выбирает и сообщает среде Visual Studio директорию, где находится его проект WindowsAzureProject4, и выбирает пункт контекстного меню Publish (опубликовать). Вот и все, что требуется от разработчика, чтобы выполнить нетривиальные действия по публикации разработанного им приложения в облаке.

(рис 10.7) Подготовка к публикации сервиса в облаке средствами Visual Studio

Подготовка к развертыванию сервиса в облаке

Следующий этап разработки – ).

(рис 10.8) Подготовка к развертыванию сервиса в облаке

Директория, из которой происходит развертывание

При реальном развертывании в облаке необходимо будет указать, из какой директории (расположенной на локальной машине) фактически происходит развертывание сервиса (рис 10.9). Фактически развертывание означает, что разработанное облачное приложение (как сервис) будет доступно в Web. Пока на данном этапе мы получаем от среды Visual Studio информацию в виде запуска Windows Explorer о расположении поддиректории с сервисом, готовым к развертыванию (Publish) на локальной машине. В ней находятся два файла – файл с пакетом сервиса и файл конфигурации.

(рис 10.9) Директория, из которой будет происходить развертывание

Вход в облако и создание нового облачного сервиса

Для развертывания разработанного сервиса в новой версии облака Azure необходимо прежде всего войти в облако, выбрать пункт "Облачные службы" и выполнить действие "Создать"

(рис 10.10) Вход в пункт "Облачные службы" для создания нового сервиса

Создание нового облачного сервиса saf4

Облако предлагает нам заполнить страницу для создания облачного сервиса. Выбираем его имя – saf4, так что URL создаваемого сервиса будет иметь вид saf4.cloudapp.net. Также указываем территориальную группу (т.е. группу центров обработки данных), где будет фактически размещен сервис. Это ранее уже созданная нами территориальная группа saf.

(рис 10.11) Страница для создания нового облачного сервиса и указания его параметров

Новый облачный сервис saf4 создан

После создания сервиса saf4 переходим к странице, где теперь визуализированы два облачных сервиса – saf4 (новый сервис) и saf1 (предыдущий, созданный и развернутый нами ранее сервис) – рис 10.12

(рис 10.12) Новый облачный сервис saf4 создан

Попытка рабочего развертывания сервиса saf4

Как уже отмечалось, создание облачного сервиса – это лишь создание "места" для него, т.е. создание его URL-адреса и выбор территориальной группы ЦОД, где он будет размещен. Реальный сервис на этом месте пока не развернут. Следующая наша задача – развертывание сервиса в облаке. Кликнув на имени saf4, переходим к странице, изображенной на рис 10.13. Она предлагает нам вырианты: скачать один из SDK для разработки сервиса на каком-либо языке, либо выполнить рабочее развертывание уже реализованного сервиса. Выбираем второй вариант, так как реализация сервиса уже находится на нашем компьютере.

(рис 10.13) Попытка рабочего развертывания сервиса saf4

Страница для указания имени сервиса и его расположения для развертывания

Кликнув "Рабочее развертывание", переходим к странице, где требуется выбрать имя развернутого приложения и указать расположение файлов пакета и конфигурации. Кроме того, на странице предлагается выбрать опцию, при которой сервис будет развернут, даже если предусмотрен только один экземпляр Web-роли, а также опцию "Запуск рабочего развертывания". Рабочее развертывание – это и есть реальное размещение сервиса в облаке. Возможно также промежуточное развертывание в целях отладки. Вообще говоря, разработчики облака в целях повышения надежности рекомендуют создавать более одного экземпляра каждой роли, так как сервисный код должен надежно работать. Однако мы выбираем вариант с одним экземпляром Web-роли.

(рис 10.14) Страница для указания параметров сервиса для развертывания

Имя и локальное расположение сервиса указаны

На рис 10.15 представлена заполненная нами Web-форма, где указано имя рабочего развертывания сервиса и выбраны (с помощью информации, переданной нам средой Visual Studio через Windows Explorer) пути к файлам пакета сервиса и конфигурации на нашей машине:

(рис 10.15) Имя и локальное расположение сервиса указаны

Ограничение академической подписки: возможно лишь одно рабочее развертывание в каждый момент

При попытке развернуть сервис saf4 в облаке обнаруживаем ограничение академической подписки. Поскольку сервис saf1 уже был развернут в облаке, то система не выполнила развертывание второго сервиса saf4. Тогда удаляем рабочее развертывание сервиса saf1 (а изображена страница, визуализирующая наши облачные сервисы saf1 и saf4, где рабочее развертывание сервиса saf1 приостановлено, а рабочее развертывание сервиса saf4 успешно выполнено.

(рис 10.16) Рабочее развертывание сервиса saf1 приостановлено, а сервиса saf4 – успешно выполнено

Обращение к сервису по URL-адресу через браузер

Кликнув по URL-адресу развернутого сервиса saf4 на странице (рис 10.16), обращаемся к нашему сервису через браузер и убеждаемся в его работоспособности (рис 10.17):

(рис 10.17) Обращение к сервису по URL-адресу через браузер

Мониторинг сервиса

Теперь выполним мониторинг нашего нового сервиса. Для этого кликнем по его имени, а затем выберем пункт меню (сверху) "Мониторинг". Результат показан на рис 10.18 – выводится график, отображающий информацию о загрузке процессора в различные моменты времени.

(рис 10.18) Мониторинг сервиса

Экземпляры Web-роли сервиса в облаке

Выбрав пункт меню "Экземпляры", получаем информацию о единственном экземпляре Web-роли WebRole1 нашего сервиса, активном в облаке (рис 10.19):

(рис 10.19) Экземпляры Web-роль сервиса

Таким образом, мы прошли весь цикл реализации облачного сервиса в Visual Studio, создания места для сервиса в облаке, его рабочее развертывание в облаке, проверка его работоспособности и мониторинг. Использовались новые инструменты поддержки Windows Azure.

Резюме

Мы подробно рассмотрели в данной лекции, каким образом может быть разработан облачный сервис Azure с помощью Visual Studio, каким образом он развертывается в облаке и затем используется.

Имеется возможность разработки облачных сервисов с помощью SDK для самых разных языков и платформ.

Visual Studio 2012 имеет ряд новых возможностей для поддержки Windows Azure.

Желаю читателям успеха в разработке, публикации и распространении Ваших облачных сервисов в новой версии Windows Azure.

Ключевые термины

Проект – единица разработки программ в Visual Studio.

Сборка (build) – компиляция проекта в бинарный код.

Публикация проекта – создание конфигурационных файлов для его последующего развертывания в облаке.

Развертывание сервиса – перекачивание информации о нем на компьютеры облачного ЦОД.

Краткие итоги

Visual Studio – основной инструмент разработки облачного ПО для Azure. Для разработки требуется инсталляция большого объема инструментов на компьтере разработчика. Основные этапы разработки: создание проекта типа Azure service; сборка проекта; публикация проекта; локальная отладка сервиса на машине разработчика; развертывание сервиса; исполнение сервиса.

Имеется возможность разработки облачных сервисов с помощью SDK для самых разных языков и платформ, в том числе – для платформ для мобильных устройств.

Visual Studio 2012 имеет ряд новых возможностей для поддержки Windows Azure.

Набор для практики

Вопросы

  • Что такое Visual Studio?
  • Что такое проект (решение) в Visual Studio?
  • Какого типа проект создается для облачного сервиса?
  • Что такое сборка проекта?
  • Что такое развертывание сервиса?
  • Что такое публикация сервиса?
  • Что такое исполнение сервиса?
  • Что такое рабочее развертывание?
  • Что такое Web-роль?
  • Почему рекомендуется иметь более одного экземпляра каждой Web-роли в облаке?
  • Упражнения

  • Войдите в облако Azure и выполните все этапы разработки и публикации в облаке сервиса с помощью Visual Studio в соответствии с содержанием лекции.
  • Изучите Azure SDK для наиболее знакомого Вам языка, скачайте его, инсталлируйте и разработайте облачный сервис на этом языке. Разверните его в облаке средствами нового облачного интерфейса.
  • Темы для курсовых работ, рефератов, эссе

  • Visual Studio – инструмент для разработки облачных приложений (реферат).
  • Методы разработки и использования облачных сервисов Azure (реферат).
  • Обзор Azure SDK для рвзличных языков и платформ (реферат).
  • Литература

  • Документация по разработке облачных приложений в Windows Azure в среде Visual Studio. Портал http://windows.asure.com
  • Вернуться к учебному плану