Как стать автором
Обновить

Развертывание приложений Play! framework в Google AppEngine

Время на прочтение3 мин
Количество просмотров5.1K


Play! framework набирает популярность и на Хабре уже есть следующие топики:
Отличный Java MVC фреймворк — Play Framework
‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 1)
‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 2)
Мои 5 любимых фишечек в Play Framework

Одна из замечательных возможностей Play! — развертывание приложения в облачную инфраструктуру App Engine от Google.

На приложения, которые исполняются в GAE накладываются довольно жесткие (по сравнению с обычными Play! приложениями) ограничения, в основном, это связано с модулем сохранения данных (JPA / Hibernate). Для того, чтобы приложение без проблем заработало в GAE следует отказаться от JPASupport/Model хелперов и использовать только базовые возможности JPA.
Альтернативой также может стать использование модуля Siena.

В данном топике я пошагово опишу процесс развертывания приложения Play! в Google AppEngine.
Процесс установки и использования описан применительно к ОС Linux, но существенных различий при использования других ОС возникнуть не должно.

Абсолютные пути в примерах команд намеренно оставлены для наглядности. Установка проводилась в домашний каталог пользователя. При желании вы всегда можете добавить путь к Play! в PATH.

1. Загружаем последнюю версию фреймворка с сайта разработчиков


(также можно получить последнюю версию с github: www.playframework.org/code )

cd
wget download.playframework.org/releases/play-1.2.1.zip
unzip play-1.2.1.zip
cd play-1.2.1/


2. Загружаем AppEngine SDK for Java


wget googleappengine.googlecode.com/files/appengine-java-sdk-1.5.1.zip
unzip appengine-java-sdk-1.5.1.zip

3. Устанавливаем модули для работы с GAE и Siena


/home/albert/play-1.2.1/play install gae
/home/albert/play-1.2.1/play install siena

Отвечаем «y» на вопросы, дальше произойдет автоматическая загрузка и установка модулей.

4. Создадим учетную запись и приложение на appengine.google.com


(вход по учетной записи Google, необходимо подтвердить номер телефона, после чего вы сможете создать до 10 приложений AppEngine).
Подробнее с GAE можно ознакомиться тут: code.google.com/intl/ru/appengine

5. Подготовка приложения для развертывания


Чтобы не тратить время на описание процесса создания приложения Play! будем разворачивать приложение-пример из каталога /home/albert/play-1.2.1/modules/gae-1.4/samples-and-tests/lists-with-gae, которое поставляется вместе с модулем gae.

Так как приложение-пример создано с использованием устаревшей версии модуля siena, в конфигурационном /home/albert/play-1.2.1/modules/gae-1.4/samples-and-tests/lists-with-gae/conf/application.conf укажем путь к новой версии siena, для чего строку
module.siena=${play.path}/modules/siena-1.3
заменим на
module.siena=${play.path}/modules/siena-2.0.1

Убедимся, что приложение работает локально:
cd /home/albert/play-1.2.1/modules/gae-1.4/samples-and-tests/
/home/albert/play-1.2.1/play run lists-with-gae


При этом приложение запустится в режиме разработки (DEV mode) и мы сможем обратиться к нему по адресу localhost:9000/


6. Укажем идентификатор приложения AppEngine


В файле /home/albert/play-1.2.1/modules/gae-1.4/samples-and-tests/lists-with-gae/war/WEB-INF/appengine-web.xml
указываем идентификатор созданного в п. 4 приложения в на AppEngine


7. Выполним предкомпиляцию приложения


/home/albert/play-1.2.1/play precompile lists-with-gae
/home/albert/play-1.2.1/play war lists-with-gae -o /tmp/lists-with-gae.war


8. Собственно развертывание


/home/albert/appengine-java-sdk-1.5.1/bin/appcfg.sh update /tmp/lists-with-gae.war

Вводим email и пароль к учетной записи Google в которой мы создали приложение GAE и ждем пока завершится развертывание.


Также полностью развертывание (п. 7. и 8) можно выполнить одной командой:
/home/albert/play-1.2.1/play gae:deploy lists-with-gae --gae=/home/albert/appengine-java-sdk-1.5.1

9. Проверка работы приложения


Обращаемся по адресу нашего приложения (в примере appgoer.appspot.com ) и наблюдаем работающее приложение. Вместо appgoer следует указать ваш идентификатор.


На случай возникновения каких-либо трудностей все логи работы приложения доступны в админке GAE.


10. Let's Play!

Теги:
Хабы:
+31
Комментарии13

Публикации

Истории

Работа

Java разработчик
355 вакансий

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн