Skip to content
March 6, 2012 / ahriman hpc mode

Windows Azure и Java. Ч.1. Hello World.

Для разработки на Java для платформы Windows Azure необходимо иметь:

1) Java Developer Kit не ниже 1.6 (под 1.7 данное руководство не тестировалось)

2) Windows Azure SDK.

3) Необходимые библиотеки Java. Можно скачать и подключить к проекту либо вручную, либо с помощью Maven, либо установив плагин к Eclipse. Ссылки: http://msdn.microsoft.com/en-us/library/windowsazure/hh690953(v=vs.103).aspx

4) Аккаунт Windows Azure.

5) Дистрибутив Tomcat 7-й версии.

Имея все 5 позиций, вы можете начать разрабатывать ваши проекты либо переносить уже существующие в облако.

В данном руководстве будет использоваться среда разработки Eclipse Indigo (http://eclipse.org) с установленным плагином.

1. Установка плагина.

После скачивания и распаковки Eclipse запускаем среду разработки. Перед нами появляется рабочая область среды разработки. Вызываем Help=>Eclipse Marketplace и вводим в строку поиска (рис.1).

image

Рис.1. Рабочая область Eclipse Indigo.

В появившемся окне Install вводим адрес репозитория http://dl.windowsazure.com/eclipse в соответствующее окно ввода (Work with), после чего нажимаем Add (рис. 2.).

image

Рис.2. Добавление репозитория проекта плагина Windows Azure.

В нижнем окне после загрузки списка содержимого репозитория возникнет выпадающую “ветку” Windows Azure Toolkit For Java. В данной ветке содержится два основных проекта – Microsoft JDBC Driver 3.0 for SQL Server (для работы с хранилищем, в том числе SQL Azur) и собственно пакет плагина. Отмечаем всю ветку и нажимаем Next.

В зависимости от скорости Интернета и доступности репозитория загрузка может занять до нескольких минут (рис. 3).

image

Рис.3. Установка плагина.

После загрузки необходимых метаданных появится окно настроек (рис 3.1.).

image

Рис.3.1.

Нажимаем Next и в следующем окне соглашаемся с лицензионным соглашением, после чего нажимаем Finish.

После установки плагина вам предложат перезагрузить Eclipse. Согласитесь.

——————-

1. Альтернатива. Подключение библиотек вручную.

В данном руководстве мы будем вручную подключать библиотеки. Для этого необходимо скачать соответствующие библиотеки и зависимости со страницы http://msdn.microsoft.com/en-us/library/windowsazure/hh690953(v=vs.103).aspx.

Создаём в Eclipse Java-проект (рис.4.).

image

Рис.4. Создание Java-проекта.

Вводим необходимые сведения в появившемся диалоговом окне. Достаточно ввести имя проекта (рис.5.).

image

Рис.5. Настройки проекта.

Нажимаем Next. На странице Java Settings переходим на вкладку Libraries и нажимаем External JARs.

image

Рис.6. Добавление библиотек.

Выбираем скачанные с сайта JAR (рис.7.).

image

Рис.7. Выбор библиотек.

Нажимаем Finish.

Java-проект с подключенными библиотеками, необходимыми для работы с Windows Azure, создан.

—————————

2. Создание Java-проекта.

Для создания нашего проекта сначала необходимо создать Java-проект. Для этого нажмите в Eclipse CTRL+N и выберите Dynamic Web Project.

image

Рис. 8.

На странице настроек нового проекта введите соответствующие данные – выберите веб-сервер (в нашем случае это Tomcat 7.0), название проекта. Нажмите Finish.

image

Рис.9. Настройки проекта.

Структура вашего приложения должна выглядеть как на рис.10.

image

Рис. 10. Структура проекта.

Основная папка, которая нас интересует – WebContent. В ней мы будем хранить наш основной JSP-файл.

Щелкните правой кнопкой мыши на папке WebContent и нажмите New=>JSP File. В появившемся диалоговом окне введите имя файла Index.jsp и нажмите Next. На странице Select JSP Template выберите шаблон проекта New JSP File (html) и нажмите Finish.

image

Рис.11. Выбор шаблона для JSP-файла.

Введите в появившемся окне редактора в контейнере <body> Hello Azure:

<body>
Hello Azure.
</body>

Нажмите CTRL+S для сохранения изменений.

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

Для создания Java-проекта Windows Azure нажмите в Eclipse CTRL+N и найдите вкладку Windows Azure, после чего два раза кликните на Windows Azure Project, чтобы инициировать создание проекта (рис.12).

image

Рис. 12. Создание Windows Azure проекта.

Откроется окно настроек создаваемого проекта. Обратите внимание на уже существующие настройки, после чего нажмите Finish – для первого проекта мы можем ограничиться настройками по умолчанию (рис.13).

image

Рис. 13. Настройки проекта Windows Azure.

Теперь нам необходимо экспортировать пакет Java-проекта. Для этого кликните правой кнопкой мыши на проекте AzureLocApp и нажмите Export=>WAR File. В появившемся диалоговом окне нажмите Browse и выберите папку approot проекта Windows Azure (рис. 14.).

image

Рис.14. Экспорт пакета проекта.

Далее нам необходимо положить JDK и Tomcat в папку approot облачного проекта. Для этого просто заархивируйте соответствующие папки в ZIP и положите их в папку approot (рис.15.).

image

Рис. 15.

Теперь нам необходимо настроить скрипт запуска всей нашей инфраструктуры в облаке. Для этого раскройте папку samples в облачном проекте и выберите текстовый файл, соответствующий tomcat7, после чего скопируйте его содержимое в файл startup.cmd (рис.16).

image

Рис. 16.

Замените SET WAR_NAME=HelloWorld.war на SET WAR_NAME=AzureLocApp.war.

Соберите проект – Project=> Build Project. В окне в нижней части среды разработки должен появиться лог сборки (рис. 17). Убедитесь, что сборка прошла без проблем. Возможно, вам придется вручную запустить Windows Azure Emulator, иначе возможно появление ошибок.

image

Рис. 17. Ошибка эмулятора.

image

Рис.17. Лог без ошибок.

Перейдите в папку вашего проекта и запустите RunInEmulator.cmd (рис.18).

image

Рис. 18.

После того, как вы запустите файл, произойдет развертывание проекта в локальный эмулятор вычислений Windows Azure. Откройте графический интерфейс локального эмулятора вычислений (рис 19,20).

image

Рис. 19.

image

Рис. 20. Интерфейс эмулятора вычислений.

Нажмите на WorkerRole1 и выберите 0. Это экземпляр нашей роли (рис. 21).

image

Рис. 21. Лог экземпляра роли.

Вы должны увидеть статус Busy. В это время запускается веб-сервер. Если он сразу не запустился, подождите – это занимает какое-то время.

После запуска веб-сервера (рис. 22) зайдите в веб-браузере на http://localhost:8080/AzureLocApp, чтобы увидеть нашу страницу (рис. 23).

image

Рис. 22. Успешный запуск веб-сервера.

image

Рис. 23. Веб-страница в локальном эмуляторе вычислений.

 

4. Развертывание проекта в облако.

Мы протестировали проект и он работает. Теперь необходимо выложить его в облако. Для этого мы проведем небольшую настройку конфигурации и затем загрузим его в аккаунт Windows Azure.

Щелкните правой кнопкой мыши на облачном проекте Windows Azure и нажмите Properties. В окне свойств перейдите на вкладку Windows Azure (рис. 24).

image

Рис. 24. Настройка облачного проекта для развертывания в облако.

На вкладке Windows Azure выберите Deployment to cloud. На вкладке Remote Access снимите галочку – таким образом вы отключите удаленный доступ к вашей роли, что сейчас не нужно, так как это связано с загрузкой сертификата безопасности. Закройте окно конфигурации и пересоберите проект (Project => Build All). В этот момент будут созданы необходимые для развертывания в облако файлы, находящиеся в папке deploy вашего проекта.

Залогиньтесь на портал управления Windows Azure под своим аккаунтом.

Создайте вычислительный сервис, который будет выполнять код вашего приложения. На левой панели нажмите Hosted Services и нажмите кнопку New Hosted Service, расположенную в меню.
 
В диалоговом окне Create a new Hosted Service выберите вашу подписку из выпадающего списка Choose a subscription.

Введите имя сервиса в текстовое поле Enter a name for your service и укажите URL, введя соответствующее значение Enter a URL prefix for your service, например, <yourname>guestbook, где <yourname> должно быть уникальным именем. Windows Azure использует это значение для создания URL точек входа в сервис.

Примечание: Портал производит проверку доступности и соответствия правилам имени. Если имя не пройдёт проверку, будет выведено сообщение об ошибке.

image

Рис. 25. Добавление нового сервиса.

Как вы видите, нам доступно развертывание нашего сервиса в облако сразу же при создании сервиса-контейнера. Нажмите Browse Locally для обоих файлов и найдите их в папке deploy вашего проекта.

image

Рис. 26.

При нажатии OK вам будет выведено предупреждение о том, что для выполнения SLA необходимо как минимум два экземпляра для роли. Нажмите Close и Ok.

Дождитесь окончания развертывания роли. Во время развертывания происходит весь процесс установки вашего приложения: ищется свободное оборудование, сервис загружается на портал, создаётся и разворачивается виртуальная машина, на неё загружается сервис, после чего происходит инициирование событий OnStartup и Run – в событии OnStartup запускается веб-сервер и JDK, необходимые для выполнения нашего приложения, в событии-методе Run происходит основная логика приложения. Обратите внимание, что приложение занимает достаточно много мегабайт, поэтому загрузка, скорее всего, займет минут 20-30.

image

Рис. 27.

Убедитесь, что развертывание прошло успешно и имеет статус Ready.

image

Рис. 28. Успешное развертывание.

Перейдя на уровень развертывания (azurejavatest), обратите внимание на панель свойств справа. В нем доступно DNS-имя развертывания. URL выглядит как <guid>.cloudapp.net, где <guid> – некоторый случайный идентификатор, отличающийся от адреса, который получит приложение при развертывании в реальной среде. Хотя ячейки развертывания и разделены между собой, физических различий между ними нет – все определяется тем, куда подключен балансировщик нагрузки. Попробуйте перейти по ссылке. В том случае, если вы сконфигурировали все правильно, вам должна быть выведена страница вашего сайта. Если появляется окно администраторской панели Tomcat, попробуйте добавить в ссылку имя вашего приложения и указать непосредственно имя файла, допустим:

http://fe744ac908e24c4dafbc2afce3c7f5da.cloudapp.net/AzureLocApp/NewFile.jsp

Определив корректность работы приложения с помощью тестового развертывания, можно переводить его в реальное развертывание. При развертывании приложения в реальной среде Windows Azure перенастраивает балансировщики нагрузки, обеспечивая доступ к приложению по URL реального развертывания.
1.    В Hosted Services выберите сервис и нажмите в меню Swap VIP

2.    В диалоговом окне Swap VIPs нажмите OK для перемены местами тестового и реального развертываний.

Нажмите на ссылку DNS name для открытия сайта в реальном развертывании в новом окне браузера и обратите внимание на ссылку в адресной строке браузера.

Примечание: Если вы получаете при входе на сайт DNS-ошибку 404, подождите пару минут и попробуйте еще – возможно, DNS-имя ещё не готово. Windows Azure создает DNS-имена динамически и применение этих изменений может занять несколько минут.

Даже если развертывание находится в статусе suspended, Windows Azure всё ещё держит выделенные для каждого экземпляра виртуальные машины в рабочем состоянии, таким образом начисляя за них счёт. После окончания тестирования приложения вам необходимо удалить развертывание из Windows Azure во избежание дополнительных затрат. Чтобы удалить выполняемое развертывание, перейдите в Hosted Services, выберите ячейку развертывания с сервисом, тестовую или реальную, и нажмите в меню Stop. После остановки сервиса нажмите в меню Delete для удаления сервиса.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: