Ознакомление с типами проектов Visual Studio 2013 для облачных вычислений, созданием облачного проекта, его реализацией, отладкой, публикацией в облаке Microsoft Azure и использованием.
Лекция посвящена разработке облачных сервисов Microsoft Azure [27, 28] в интегрированной среде Visual Studio 2013. По умолчанию даже в самом полном варианте Visual Studio Ultimate облачные проекты (типа Cloud) в набор проектов не входят.
На рис 13.1 изображено создание облачного проекта.
(рис 13.1) Создание облачного проекта
Для того, чтобы это осуществилось, необходимо, после инсталляции Visual Studio, инсталлировать комплекс программ Azure SDK (номер версии 2.3 по состоянию на июнь 2014 г.). На рис 13.2 изображен список инсталлированных компонент Azure SDK. Общий объем скачивания - порядка 300 мегабайт.
(рис 13.2) Список инсталлированных компонент Azure SDK
Инсталлируем на наш компьютер Visual Studio 2013, затем - Azure SDK 2.3.
Теперь создаем в VS 2013 облачный проект на языке C# (рис 13.1). С помощью Visual Studio 2013 можно теперь разрабатывать и публиковать в Azure облачные сервисы. Для того, чтобы можно было разрабатывать также другие облачные продукты - например, мобильные сервисы, необходимы дополнительные инсталляции. Об этом - в следующих лекциях и лабораторных работах.
Продолжим создание проекта. Назовем его WindowsAzure4.
Очень важная деталь: для разработки облачного проекта среда Visual Studio должна быть вызвана .
(рис 13.3) Запуск Visual Studio 2013 от имени администратора в Windows 8
Более подробно: выполняется такая последовательность шагов. Переходим на стартовую страницу Windows 8 (с изображением плиток - tiles), на ней находим значок VS 2013, переходим в контекстное меню (правым кликом) и в нем выбираем Запуск от имени администратора. Контекстное меню в таких случаях отображается на месте панели инструментов.
В Windows 7 аналогичные действия реализуются несколько иначе: на панели инструментов находим значок VS 2013, правым кликом переходим в контекстное меню и в нем выбираем Запуск от имени администратора.
Если запустить VS 2013 не от имени администратора, то у нас не окажется достаточных полномочий даже для отладочного запуска сервиса на эмуляторе облака Azure, тем более для публикации Вашего сервиса в облаке.
Вернемся к созданию проекта. Итак, мы в среде VS 2013 от имени администратора. Нажимаем OK для создания облачного проекта.
Открывается окно для выбора роли проекта. Как вы уже знаете из моих курсов по Azure [27, 28], роль - это разновидность облачного приложения. Интуитивно термин роль в контексте Microsoft Azure достаточно точно отражает суть: роль - это разновидность облачного приложения с определенной функцией (ролью) в облаке и в данном проекте. Роль - это код приложения. Экземпляр роли - это экземпляр (запуск) приложения. Число экземпляров ролей - это число запусков облачного приложения. Число экземпляров ролей очень важно: оно фактически выражает степень надежности облачного сервиса. Как правило, рекомендуется иметь как минимум по 2-3 экземпляра каждой роли для большей надежности облака, поскольку облачный сервис - это серверный код, на который ложится большая нагрузка (например, к нему могут обратиться одновременно несколько миллионов пользователей облака). В Microsoft Azure различают следующие основные виды ролей: Web-роль - облачный Web-сервис, Worker-роль - фоновый процесс, реализующий какие-либо вычисления. В новой версии Azure в качестве одного из видов ролей рассматривается также виртуальная машина (VM-роль). В таком случае можно сказать, что Web-роли и Worker-роли могут работать в облаке в нескольких экземплярах (и это даже рекомендуется для надежности), а VM-роль, разумеется, существует всегда в одном экземпляре. Трудно было бы представить себе, если бы виртуальные машины клонировались во многих экземплярах: виртуальная машина - это весьма серьезный облачный ресурс, а надежность виртуальной машины обеспечивается другими средствами - серверной операционной системой, которая реализует данную VM на конкретном компьютере центра обработки данных (в настоящее время это Windows Server 2012 Release 2, либо Linux).
На рис 13.4 изображено окно выбора роли.
(рис 13.4) Окно выбора роли
Мы видим более детально, каковы разновидности ролей в новой версии Azure:
Таким образом, Web-роли реализуют различные виды Web-интерфейса, а worker-роли - обработку различных облачных ресурсов, совместно используемых экземплярами ролей.
Выбираем наиболее часто используемый вариант - ). Подчеркну, что сама роль еще не создана, но информация о виде роли была необходима для формирования конфигурационных файлов облачного сервиса.
(рис 13.5) Структура облачного проекта, отображенная в Solution Explorer
Рассмотрим более подробно структуру конфигурационных файлов и всех прочих файлов проекта, автоматически сгенерированных средой VS 2013. Имя созданного сервиса - WindowsAzure4. Среда создала для него три конфигурационных файла: ServiceDefinition.csdef.xml, ServiceConfiguration.Cloud.cscfg.xml и ServiceConfiguration.Cloud.Local.cscfg.xml - определение сервиса, конфигурация сервиса при запуске на локальном компьютере на эмуляторе облака и конфигурация сервиса для его развертывания в облаке. Для полноты привожу начальные состояния этих трех файлов.
ServiceDefinition.csdef.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
schemaVersion="2014-01.2.3">
</ServiceDefinition>
ServiceConfiguration.Cloud.cscfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName=" WindowsAzure4"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">
</ServiceConfiguration>
Файл ServiceConfiguration.Local.cscfg.xml идентичен предыдущему файлу.
Содержание файлов очевидно и особых комментариев не требует: в них указаны имя сервиса, ссылка на пространство имен для используемых в файлах XML-тегов, номера версий XML и XML-схем, ссылка на версию ОС.
Теперь создадим роль в данном проекте. Для этого в контекстном меню пункта ).
(рис 13.6) Окно добавления роли в облачный проект
Выбираем из двух вариантов ).
(рис 13.7) Окно New ASP.NET Project: Web Role1
В этом окне предлагаются варианты шаблонов для создания Web-роли:
Выбираем вариант Single Page Application, в котором создается Web-страница с возможностью регистрации на ней и последующего входа по зарегистрированному имени. Для управления страницей используются скрипты на языке JavaScript, которые генерируются автоматически средой VS 2013.
После генерации всех файлов проекта выполним отладочный запуск созданной Web-страницы на эмуляторе облака, входящем в состав версии Visual Studio, расширенной инструментами Azure SDK.
Для этого выбираем в среде VS 2013 пункт меню Internet Explorer, в виде жирной зеленой стрелки, направленной вправо, появившийся в среде под пунктом меню Debug.
Среда выполняет сначала сборку (компиляцию) облачного проекта. Затем она запускает эмулятор облака, о чем информирует специальным сообщением.
На эмуляторе облака новая страница запускается под традиционным локальным URL-адресом http://127.0.0.1:2289, со специальным номером порта. Если среда VS 2013 была вызвана не от имени администратора, то для такого запуска не хватает полномочий.
Для публикации сервиса в облаке рекомендую сначала создать "пустой" сервис в облаке Azure (см. курс [28]). Входим в облако со своей подпиской, логином и паролем и создаем в нем сервис под именем saf-service. Все детали описаны в [3].
Пустой сервис используем, чтобы опубликовать и развернуть в облаке созданную нами реализацию Web-страницы. Для этого на вкладке Solution Explorer входим в контекстное меню на имени роли WebRole1 и выбираем действие Publish (опубликовать в облаке).
Перед публикацией среда VS 2013 требует от нас войти в облако с соответствующими логином и паролем. После входа в облако среда получает информацию о том, что в нем под нашей учетной записью имеется пустой сервис , по нему мы впоследствии можем обратиться и визуализировать страницу через любой Web-браузер. Особо подчеркну, что новая версия среды VS 2013 является гораздо более удобной для публикации сервисов в облаке, чем предыдущая - VS 2010, с которой я достаточно много работал, в том числе и над созданием и публикацией облачных сервисов. В предыдущей версии среда требовала в явном виде указания конфигурационных файлов сервиса .csdef и .cscfg и запоминания директории, в которой они размещены на локальном компьютере. Теперь, в версии VS 2013, этого не требуется: среда сама "понимает", откуда взять конфигурационные файлы, что гораздо удобнее.
Публикация в облаке может занять продолжительное время, в зависимости от скорости Интернет-коннекции. В моем примере она заняла около получаса. При этом создается и поддерживается в актуальном состоянии специальная вкладка для вывода информации из облака, в том числе - информации о созданных и испольуемых учетных записях хранения (Azure Storage Accounts [28]) и т.д. Таким образом, в среде VS 2013 в процессе публикации в облаке создается как бы окно в "облачный мир", через которое пользователь имеет возможность получать необходимую информацию, связанную с публикацией сервиса.
Наконец, сервис опубликован и развернут в облаке, о чем среда выдает соответствующее сообщение.
Теперь можно либо войти в облако через его портал http://manage.windowsazure.com и убедиться, что наш сервис создан и развернут.
Также возможно, зная URL-адрес публикации, вызвать браузер и визуализировать новую страницу в нем. На рис 13.8 изображен результат визуализации страницы в браузере Google Chrome (данный браузер взят просто для примера, чтобы убедиться, что и в нем все работает).
(рис 13.8) Результат визуализации страницы в браузере Google Chrome
Также после публикации сервиса в облаке среда VS 2013 генерирует и записывает в директории облачного проекта следующие конфигурационные XML-файлы:
ServiceDefinition.csdef - спецификацию интерфейса сервиса в стандарте WSDL; ServiceConfiguration.Cloud.cscfg и ServiceConfiguration.Local.cscfg - число экземпляров Web-роли (1).Среда VS 2013 предоставляет удобные возможности для разработки облачного сервиса Microsoft Azure, его публикации и развертывания в облаке. Предварительно, до создания облачного сервиса, требуется инсталляция инструментального комплекса Azure SDK. Сервис создается в виде Web-роли, т.е. облачного Web-приложения. При создании используется целый ряд шаблонов кода для разных вариантов создания сервиса, в том числе - шаблона одностраничного сервиса, который и использован в лекции. Рекомендуется до публикации сервиса в облаке предварительно войти в него и создать "пустой" сервис, что гарантирует выделение облачного URL-адреса. Затем сервис публикуется в облаке непосредственно из среды. В нужный момент среда запрашивает облачный логин и пароль и обеспечивает "окно в облако" на момент публикации в нем сервиса. В целом возможности среды VS 2013 по созданию облачных сервисов, даже в сравнении с предыдущими версиями среды, производят просто ошеломляющее впечатление своим удобством, логичностью и надежностью. Еще раз подчеркнем, какую замечательную работу выполнила корпорация Microsoft по развитию среды Visual Studio, что особенно проявляется именно в облачных проектах.
| - инструментальный программный комплекс для поддержки разработки облачных сервисов в среде Visual Studio 2013; http://manage.windowsazure.com - портал Microsoft Azure. | |
| - конфигурационный файл определения облачного сервиса, после публикации в облаке преобразуемый в спецификацию WSDL-интерфейса. | |
| - конфигурационный файл для развертывания сервиса в облаке; содержит число экземпляров Web-роли. | |
| - конфигурационный файл для запуска сервиса на локальном компьютере на эмуляторе облака; содержит число экземпляров Web-роли. | |
| - виртуальная машина, развернутая в облаке Azure. | |
| - облачный сервис с Web-интерфейсом, развернутый в облаке Azure. | |
| - фоновый вычислительный процесс, развернутый в облаке Azure. | |
| - запуск облачного Web-сервиса с целью его последующего использования. | |
| - создание Web-сайта с URL-адресом специального вида в домене облака Azure с целью его последующего развертывания. |
Среда VS 2013 предоставляет удобные возможности для разработки облачного сервиса Microsoft Azure, его публикации и развертывания в облаке. Предварительно, до создания облачного сервиса, требуется инсталляция инструментального комплекса Azure SDK. Сервис создается в виде Web-роли, т.е. облачного Web-приложения. При создании используется целый ряд шаблонов кода для разных вариантов создания сервиса, в том числе - шаблона одностраничного сервиса, который и использован в лекции. Рекомендуется до публикации сервиса в облаке предварительно войти в него и создать "пустой" сервис, что гарантирует выделение облачного URL-адреса. Затем сервис публикуется в облаке непосредственно из среды. В нужный момент среда запрашивает облачный логин и пароль и обеспечивает "окно в облако" на момент публикации в нем сервиса. В целом возможности среды VS 2013 по созданию облачных сервисов, даже в сравнении с предыдущими версиями среды, производят просто ошеломляющее впечатление своим удобством, логичностью и надежностью. Еще раз подчеркнем, какую замечательную работу выполнила корпорация Microsoft по развитию среды Visual Studio, что особенно проявляется именно в облачных проектах.
Презентация к данной лекции: VS_2013_Course_13.pptx.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.