Stop manual deployment or scripting deployments to WebSphere App Server – there is a better way
Manual deployments suck
Lets face it, we’ve all had the “deployment weekend” nightmare. You plan for a half day of deployment, but it ends up turning into a day and half of wasted time because you’ve either missed something, deployed the wrong version, set the wrong environment parameter, or a late defect showed up that QA did not catch in the past week.Then you go home Sunday afternoon wiped out, and have to answer to your significant other (or your kids), why you were not at the event last night, or why you had to miss the kids game, etc. Manual deployments are error prone, weak, and frankly are a thief to your personal time.
Jython scripts work but are fragile
Hand scripting deployments to WebSphere application server using Jython (or JACL) can be time consuming, and are commonly fragile. As the application changes, so do the scripts that are used to deploy them. Then, if the developer who wrote them leaves the company (and you DO need a developer to maintain them), then how long do you think it will take to get a replacement up to speed? That is a skill that is hard to recruit.
Automate Deployment to WebSphere
While you may shake your head at purchasing a commercial product to do this, ask yourself this: “How much does it cost us in labor to do manual deployments?”, or “How much does it cost us in lost revenue if we screw up a manual deployment?” There is a tool we have been working with and have been deploying at our customers. Its IBM Urbancode. Its simple to use and understand, thus there’s no long ramp up time required to learn it. This means you can distribute the responsibility to kick of the builds across all the members of your team, and they won’t have to sacrifice a weekend to run it. We love this because it allows your development and operations group to:
- Reduce the amount of manual labor, resource wait-time, and rework by eliminating errors and providing self-service environments
- Increase frequency of software delivery through automated, repeatable deployment processes across development, test and production
- Deliver higher quality application releases with increased compliance through end-to-end transparency, auditability and reduced time to feedback
Oh, and while this post is in the context of Java/WebSphere, it also works on z/OS to deploy COBOL apps, Windows for .NET apps, Linux for LAMP apps and more. It also works with AWS, Softlayer, and more.