Redefining redeploys

by Jevgeni Kabanov 

Thursday, 09 June 2011 16:00

Every application server features a redeploy button or command. Some will even go as far as gradually upgrade the whole cluster, running application versions side by side. But due to a basic limitation of the Java class loaders almost no one will press that button on a production cluster.

In this talk we will examine the basic limitations that cause most application to fail with an OutOfMemoryError after just a few redeploys. We will take a look at the common alternative, rolling restarts, and examine its advantages and shortcomings. We will also take a look at the in-app updates and future developments in this area.

Finally we will take a look at different approaches to deployment, especially the DevOps idea of continuous deployment and the basics of cloud deployment. We will examine how those can be achieved in Java with a combination of in-app updates and rolling restarts.