Azure: веб-сайт Java - PullRequest
       31

Azure: веб-сайт Java

1 голос
/ 05 февраля 2012

Я изучаю платформу Azure, но у меня возникают проблемы.

Вообще-то, я чего-то не понимаю ...

Я понимаю разницу между веб-ролью и рабочей ролью. Но как конкретно создать веб-роль для приложения Java?

Потому что при разработке Java-приложения для Azure в Eclipse мы должны скопировать / вставить Java-сервер (я взял tomcat7) + jdk. Я предполагаю, что это только для запуска Java-приложения внутри эмулятора.

Но при развертывании приложения на Azure в качестве веб-ролика ..... Загружает ли оно только пакет конфигурации war + файлы конфигурации xml (cscfg и другие) или также загружает сервер и jdk? Я попытался построить проект с параметром «Cloud» вместо параметра «Emulator», и он создал огромный файл cspkg размером 150 МБ ... Я серьезно не могу загрузить 150 МБ каждый раз, когда мне нужно обновить приложение ...

Почему нельзя просто загрузить файл .war? И если нам нужно загрузить дистрибутив сервера, то как настроить аварийное переключение и репликацию сеанса ??

Я, наверное, что-то упустил ...

Спасибо за ваши ответы


Редактировать:

На самом деле, из того, что я прочитал из Интернета, приложения Java не обрабатываются в Azure изначально, поэтому вы должны предоставить свой собственный сервер приложений (tomcat, glassfish и т. Д.) Внутри пакета, и сценарий запуска будет Запустите сервер с вашим приложением внутри. Вы должны загружать jre + двоичные файлы сервера + код вашего приложения каждый раз, когда вы хотите повторно развернуть новый пакет.

Нет встроенной поддержки репликации сеанса или чего-либо еще. Если вы хотите, чтобы сессия была «разделяемой» для нескольких экземпляров, вы должны использовать службу хранения таблиц для хранения информации о сессиях.

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

Следовательно, Java-приложение развертывается не как веб-роль, а как рабочая роль, где вы добавляете свой собственный сервер.

Веб-ролики предназначены только для приложений .NET и PHP.

Поправь меня, если я ошибаюсь.

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Спасибо за ваши ответы, ребята.

Возникает еще один вопрос: что происходит "под капотом" при развертывании новой версии Java-пакета?

Давайте представим, что Tomcat выпустил крупнуюДля исправления безопасности вам нужно использовать новую версию tomcat, либо встраивая ее в cspkg (heavyyyyy), либо, как вы (Дэвид), предлагая, сохраняя в blob (light !!) и, конечно, код Java снесколько обновлений.Вы развертываете этот пакет на уже запущенных экземплярах.

Что с ними происходит?Они перезагружаются с новым пакетом?Это порождает новые экземпляры и убивает текущий бег?Он убивает сервер запущенных приложений в каждом экземпляре и запускает новый внутри нового пакета?Что происходит с (непостоянным) локальным хранилищем (если используется как дешевый кеш)?Что происходит с используемыми сессиями (если они хранятся не в BLOB-объектах, а только в оперативной памяти)?

Есть ли в Azure какие-либо сравнительные / сравнительные таблицы различных java-серверов?(объем памяти, параллельные соединения и т. д.

Мои вопросы могут показаться странными, но в настоящее время я работаю с Google App Engine (и хочу перейти на Azure) и единственное действие, которое мне нужно сделать для развертывания /Чтобы обновить приложение, нужно нажать кнопку «Развернуть» в Eclipse. В настоящее время все еще довольно запутанно. Но на самом деле тот факт, что вам приходится загружать свой собственный JRE и собственный сервер приложений, дает большую свободу. Это приносит часть IaaSвнутри PaaS.

1 голос
/ 06 февраля 2012

Вы правы.В общем, вы также можете запустить java / Tomcat в веб-роли, но в веб-роли должен быть хотя бы один сайт внутри IIS (не привязывайте порт 80 к этому сайту, поскольку IIS и Tomcat не могут совместно использовать порт TCP).

Вы должны попробовать с Azure VM Role .В этом сценарии вы создаете виртуальный Macine локально со всеми системными требованиями (JRE, Tomcat, ...).Вы загружаете этот виртуальный образ в Azure как шаблон для своих ролей виртуальных машин.Теперь вы можете загружать только файлы приложений.

Вы также можете ускорить процесс загрузки / развертывания с помощью задачи запуска, которая загружает и распаковывает ваши JRE и Tomcat из хранилища BLOB-объектов. Azure Bootstrapper может помочь вам.

...