Jetendo CMS rsync deployment enhanced

  Follow me: Follow Bruce Kirkpatrick by email subscription Bruce Kirkpatrick on Twitter Bruce Kirkpatrick on Facebook
Sun, Dec 01, 2013 at 5:40PM

Jetendo CMS now has a new cache clearing mode where only the CFML components and functions are recreated, which takes much less time then re-building the other complex data structures in the cache.

This mode was created to make deployment of new code faster and more complete.   I believe Railo had problems with permgen growing infinitely even with Java Agent enabled if you have any CFC / functions that stay in Application scope during a class change.

Additionally, it is now possible to deploy the core Jetendo CMS application from the test server to one or more target servers with a single click.

This new deploy process also clears the CFC / function cache at the same time.

The whole automated process takes just 11 seconds 2 seconds going from test server to my live server.  Update 12/2/2013: I had a dns configuration mistake that was causing this to be much slower.  Now it's nearly instantaneous!

It relies on Rsync, and this means it's very reliable / fast since rsync only sends what has changed, uses compression and the communication is done securely via SSH.  Rsync is also configured to delete any extra files on the remote server.  Leaving old code on the server is generally bad since it may have security problems.  This deployment system helps you keep your server clean.

The system is also setup to automatically fix any filesystem permission problems that occur during the transfer.

Because rsync is using the --delay-updates option, none of the partially upload files can be read by the web servers during the transfer.  It does a fast atomic rename after they are uploaded.  This makes it much safer then FTP which easily causes corruption / temporary errors.

Compare this to using FTP or HTTP approach to deploying source code code, and you'll find it save a lot of time, and errors.    It's very hard to use FTP in a team environment when you want to upload individual changes and you don't know what the rest of your team has changed.   Jetendo's integration with Rsync and Git help you get a guarantee that the source code on the server matches the source code in your repo, and it does it much faster then FTP synchronization tools can.

In the future, this will be more useful when Jetendo officially supports High Availability Clustering.

Bookmark & Share