How often do you deploy updates to your applications? How do you compare to other Rails applications?
At New Relic, we deploy updates to production applications about once a week. On average we do three more deploys during the week for bug fixes and optimizations. We also have a staging server where we test out production candidates, and we deploy to that an average of about 30 times a week.
We were curious about how we compared to other applications so we decided to survey our customers for their deployment patterns. RPM customers can do some additional configuration to keep track of deployments, allowing them to see in charts where deployments occurred, and depending on the product level, view the before and after statistics for the deployments. It’s a very valuable feature when you are trying to figure out whether a change to the application caused some unexpected change to your performance profile. Find out more.
We looked at the pattern of deployments to individual applications over the month of July for customers who have been tracking deployments since the beginning of the month. There were quite a few that only deployed once. The numbers went up to about 50 times per week, but the distribution was heavily weighted toward the less frequent deployments. The median number of deployments per week was 2.25, but the average was 5.15 times per week.
Keep in mind this includes all applications and doesn’t distinguish production apps from staging apps. The average number of applications being tracked for deployments was 1.5 per account (at New Relic, we track deployments for 3 applications).
If you look at the distribution, 87% of applications were deployed fewer than 10 times per week. The rest were deployed up to 50 times per week.
What did we learn from this? We learned we probably deploy at a higher rate than the average Rails application (we were above the median). I’d guess the ones that are deploying more than 10 times a week are probably staging or development environments, and our staging environment falls into that category comfortably.
In general I think this shows pretty clearly how far we’ve come since the rigid lifecycle model dominated, deploying with a frequency you’d probably never have considered in the ‘old days’. As software designers we use frequent updates as leverage responding to fast moving requirements and rapidly introducing fresh innovations. As consumers we reap the rewards of frequent updates with websites that keep up a steady stream of really useful features, evident in applications like Pivotal’s Tracker and ENTP’s Lighthouse.
How often do you deploy? To set up your Capistrano deploy.rb to track your deployments see our KB article on Capistrano integration.