XML and XSLT
Resin provides a wide variety of custom packaging and deployment options.
Custom web-app with .war file
In this scenario, you want to configure a web-app with a specific root-directory and specify the location of the .war file. As usual, when Resin sees any changes in the .war file, it will expand the new data into the root-directory and restart the web-app. This capability, gives sites more flexibility where their directories and archive files should be placed, beyond the standard webapps directory.
<resin xmlns="http://caucho.com/ns/resin"> <cluster id=""> <host id=""> <web-app id="/foo" root-directory="/var/www/foo" archive-path="/usr/local/stage/foo.war"/> </host> </cluster> </resin>
Resin can deploy multiple versions of a web-app simultaneously, simplifying any application upgrades. The old version of the web-app will continue to receive old sessions, while the new version will get the new requests. So any user will see a consistent version as the web site update occurs with no downtime required.
The versioning requires <web-app-deploy>, i.e. it works with the webapps directory. The versioning is numerically-based, allowing dotted notation, to determine the most recent version. A simple deployment process might useto upgrade from . A more complicated one might use to upgrade from .
Theattribute of the <web-app-deploy> enables versioning:
<resin xmlns="http://caucho.com/ns/resin"> <cluster id=""> <host id=""> <web-app-deploy path="webapps" versioning="true"/> </host> </cluster> </resin>
Deploying to a live server without interruption
It may be possible to deploy a web application to a live server without interruption to service if certain conditions are met.
Resin allows you to have a backup instance running. The idea is that this backup instance of Resin takes over if your primary Resin instance goes down.
If you are using a load balancer to distribute your load to multiple primary servers, each primary server has a backup server.
You can use this feature to deploy to a live server without interruption of service.