Continuous deployment at flipkart Pankaj Kaushal Photo credit: http://www.flickr.com/photos/bomb_tea/
Old school deployment Check out svn
Point docroot to new svn
Place copies on all servers
One server at a time
Check if it works
Fear of the tar Site breaks unexpectedly
many downtimes everyday
most related to deployments
Deployments Module X is no longer working. Foostat widget is now displaying php instead of rendering html.  All images are gone Blah blah tab shows sometimes and disappears sometimes I get blank screens I'm sure I deployed on all four servers Forgot to restart foo backend service If anything can go wrong, it will.
Discourage deployments in the interest of stability?
or
Allow deployments to happen  as fast as they need to?
Flipkart releases
Deployment should be a non-event
Flipkart deployment procedure Step1:  svn copy  -m “ deploying to prod ”  trunk/ prod/2011-07-08-10:00/
Step2: there is no Step 2
How?
You don't need magic
1.  Continuous integration
1.  Continuous integration integrate frequently  against a controlled source code repository Multiple integrations per day
2.  Multiple Environments
2.  Multiple Environments Integration environments are replicas of production  All components of the system are available  Duplicate the production environment as much as you can
3.  One step build
 
4.  One step build and deploy
 
 
Continuous integration Is not a tool, neither is it the result of a tool
It's a philosophy
You don't need lots of money or fancy tools
We use a bunch of shell scripts to do this
Use existing Free software Debian
Subversion
SSH
Puppet
 
Continuous integration
Integration Environments
Packaging
Configuration
Automated Builds and Deployments
 
Building with Continuous Integration Step1: check out trunk/mainline
Step 2: build feature/ fix bug
Step 3: Commit to mainline/trunk
Step 4: Commit to eng/ Integration environment builds automatically
Continuous integration
Integration Environments
Packaging
Configuration
Automated Builds and Deployments
 

Continuous deployment-at-flipkart