ELBなどを使えばアプリケーションの異なるインスタンスを繋ぎ直すことでアップデートが出来ますが、1台のサーバ上でサービスを停止することなくアプリケーションの更新を掛ける方法です。
まず前提としてPlayをポートを変えて2つ起動します。それなりのリソースが必要です。
9000ポートで起動しているものをプライマリ、9001ポートで起動しているものをセカンダリとします。
vim /etc/httpd/conf.d/play.conf
<VirtualHost hoge.com:80> ServerName hoge.com <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from .hoge.com </Location> <Proxy balancer://mycluster> BalancerMember http://localhost:9000 BalancerMember http://localhost:9001 status=+H </Proxy> <Proxy *> Order Allow,Deny Allow From All </Proxy> ProxyPreserveHost On ProxyPass /balancer-manager ! ProxyPass / balancer://mycluster/ ProxyPassReverse / http://localhost:9000/ ProxyPassReverse / http://localhost:9001/ </VirtualHost>
status=+Hをつけることでこちらを待機系とすることができます。
9000ポートのほうが停止している時に9001の方にアクセスがふられるようになります。
https://www.playframework.com/documentation/ja/2.2.x/HTTPServer