Software deployment techniques used in Cloud for Java Applications

I had seen following deployment techniques used in Cloud for Java Applications

1. Hot Deployment (Partial Deployment / Quick Fixes / Live Fixes / Hot Fix / Dirty Fix)
When there is problem with one static component (JS/CSS/Image) this is the best technique.
People used to put class files, jsps too, but that too affects end user.

2. Hot Swap Deployment (Complete code swap, JVM Swap, VM Swap)
To achieve zero down time, we need to use commercial tools.
When there is no DB Changes, install new software on S2. Bring S2 to Up. In load balancer remove active S1 server and point to S2. This way S1 is passive and helps to bring it back, if there are any issues in S1 deployment.

3. Rolling Restart
When there are few servers (<5), it is easy to bring down one, install and bring it up. When we do one by one, we can minimize down time to end user without any new hardware.

4. Hard Stop Deployment (Bring all server(s) down and bring them back)
For major changes without backward compatibility, we need to stop all servers. Install and bring them back. There is huge down time and risks involved.

5. Promote Deployment
Many companies deploy software on many servers. For example Company A is deploying software on 100 servers. First they deploy on 1% servers. Test with target IP Address. If everything is fine they will promote same code to 5% of servers. They get feedback from users. Also there is another technique – switching the 5% of traffic irrespective of servers. This helps company to gain confidence on fixes/changes and also in users.

 

Ready to Use Products:

http://www.bmc.com/it-solutions/product-listing/bladelogic-application-release-automation.html

http://www.kwatee.net/index

Live Rebel: http://zeroturnaround.com/software/liverebel/

Control Tier: http://doc36.controltier.org/wiki/Main_Page

Deploy IT http://www.xebialabs.com/products/xl-deploy/#.U2LDtvldVrU

Puppet: http://puppetlabs.com/puppet/what-is-puppet

Chef https://wiki.opscode.com/display/chef/Home

Bean Stalk: http://beanstalkapp.com/features/deployments

 

Software Deployment: http://en.wikipedia.org/wiki/Software_deployment

System Deployment Tips and Techniques

http://www.ambysoft.com/essays/deploymentTips.html

-o-
Please contact me to get customized plan/software for your needs.

Thank you,
Bhavani P Polimetla

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s