Another post in the realm of dynamic platforms, and this time my thoughts are on deployment.
I have been working on a large web application, that is now in production.
The project before this one was on a large stack (WebSphere) and the deployment was a nightmare.
In development we had simple war’s and developers were all setup with expanded versions so they weren’t wasting time ziping up changes for a simple text change :)
However, the deployment issues were another story. They needed to be ear’d and run through a million checks on this, that, and a bit of the other.
We had to have our build system scripted to handle this all, and there were constant problems.
From that, I am now on a system where there are no such beasts as EARs. You just have good ole files and directories that the server looks too. Development is pretty much the same as deployment (bar a few optimizations that are taken care of via environment).
To jump between releases we can easily change a symlink and we are moved. An issue? we can move right back. No need to deploy/redeploy/undeploy in containers.
Bah I hear you scoff. What about all of the tools for deployment! How mickey mouse is this file based crud!
We have nice scripting via tools like Switchtower, which handles deployment very nicely indeed, and is easy to extend to do you will.
Lighter, and yet simple. Switchtower is still new-ish, so it may not do everything that you need in your deployment world… but it is getting there.