Showing posts from February 4, 2010

Scaling deployments

Most of the newer, successful, web startups have one thing in common. They release smaller changes more often. Being in operations, I am often surprised how these organizations manage such a feat without breaking their website. Here are some notes from someone in flickr about how they do it. The two most important part of this talk is the observation that Dev, Qa and Operations teams have to slightly blend into each other to achieve deployments at such a velocity, and the fact that they are not afraid to break the website by deploying code from trunk. DonĂ¢€™t be afraid to do releases Automate infrastructure (hardware/OS and app deployment) Share version control system Enable one step build Enable one step build and deploy Do small frequent changes Use feature flags (branching without source code branching) Always ship trunk Do private betas Share metrics Provide applications ability to talk back (IM/IRC)   - build logs, deploy logs, alert m