5.6.3. Hot Deploying Applications

When you run the git push command to upload code modifications, OpenShift Online stops, builds, deploys and restarts your application. This entire process takes time to complete and is unnecessary for many types of code changes. Hot deploying your application enables your changes to take effect without restarting the application cartridge, thus increasing deployment speed and minimizing application downtime.
OpenShift Online provides support for hot deployment through a hot_deploy marker file. If the marker is present, supported application cartridges automatically hot deploy when you run the git push command.

Table 5.4. Application types that can or cannot be hot deployed

Type of Application Hot Deploy
JBoss Application Server Yes
JBoss Enterprise Application Platform Yes
Tomcat 6 (JBoss Enterprise Web Server 1.0) Yes
Tomcat 7 (JBoss Enterprise Web Server 2.0) Yes
PHP Yes
Perl Yes
Ruby Yes
Python Yes
Node.js Yes
Zend Server Yes
Jenkins No
HAProxy No
DIY No

5.6.3.1. Hot Deployment Build Details

JBoss AS, JBoss EAP, Tomcat 6, and Tomcat 7
When you hot deploy JBoss AS, JBoss EAP, Tomcat 6, and Tomcat 7 applications, the Maven build is executed (either with Jenkins or without), but the server does not restart. Following the build, the JBoss HDScanner notices any modifications and redeploys them. If previously deployed artifacts are removed as part of the update, they are undeployed automatically.
PHP, Zend Server, Perl, Python, and Node.js
When you hot deploy PHP, Zend Server, Perl, Python, and Node.js applications, the application code is built (dependencies are processed and user build action_hooks are run) and deployed to the application server. The server does not restart. This is true for both Jenkins and non-Jenkins enabled applications. For Jenkins enabled applications, the build is performed on a Jenkins slave instance and then synced to the gear(s) where the application server is running.
Ruby
When you hot deploy a Ruby application, the Passenger restart.txt file is touched, causing the application server to serve the new code without the need for a full server restart. For further details on this process, view the Passenger Documentation.