Packaging and deployment

A lot of bad things can be said about the Java web programming environment. When it comes to packaging and deployment of code Java does stand out of the majority of the IT crowd. Standard package structures (with a jar, war or ear extension) and an embedded deployment descriptor (do I love this word). Deployment of these java packages is as easy as offering the package, application or servlet containers understand them. Configuration is kept outside of the package, in the container exposed through JNDI, or some custom solution in a database. So your package is deployable in any environment provided some pre requisites are met.

.Net packaging and deployment is less sophisticated but similar.

Compare this to most other products I have seen. Databases do have a ddl and dml scripts to create modidy and delete database information and structures. These scripts are up to you to write and maintain. Having worked with many applications I have seen every effort to keep consistent and accurate database scripts fail before the first anneversary of the application. Then the only reliable way to install a database is to obtain a copy of the production database or reverse engineer.

Many other software products are even worse. Mail servers? Good luck clicking away and documenting it. Biztalk deployment involves a lot of clicks, installations etcetera. Content Management Systems often lack a good way to deploy changes in one environment in another environment. And the list goes on and on.

The lack of proper packaging, deployment and configuration methods is a major weakness of many software products. One that hurts in the long run and is often overlooked when selecting software products.


%d bloggers like this: