Continuous Deployment With Virtualization and Cloud: An Idea for Startups
If you have a new hire, do you want him/her to push code into production system on the very first day? You may be OK with this sometimes. What if it’s a trading system with real money involved? More often than not, you come up with a different answer.
On Wednesday night, I attended a seminar organized by SDForum SAM SIG at LinkedIn headquarter. Pascal-Louis Perez and David Fortunato from Kaching.com engineering team gave a great talk on how they streamlined their software development process to the extent that they normally release 20 times a day to their production system. It’s quite a safe process that it’s OK for a new hire to push code on day one.
kaChing is an online platform that connects investors with outstanding investment managers. We are a technology driven company, which has adopted lean methodologies from the start, and has achieved a 5-minute commit-to-production cycle. Continuous deployment is a way of life and is integral to our engineering culture.
In this talk, we will present our system’s architecture and discuss our service oriented platform dubbed kawala (in the process of being open sourced on http://code.google.com/p/kawala). We will describe the mechanics of an automated release from check-in to production: clean build with full regression testing in less than 3 minutes, packaging and deployment by automatically redirecting traffic using ZooKeeper for coordination, health checks and immune system to monitor the release. Finally, we will talk about planned evolutions and the next challenges we face in our infrastructure.
The idea seems crazy but I think it represents the trend of service software. It requires extensive infrastructure and expertise to support this extreme process. Unfortunately you have to build it by yourself today because there is no integrated solution.
Technology wise, virtualization and cloud computing definitely provides good supporting infrastructure that makes the continuous deployment more flexible, controllable and cost effective. This is a very promising area for any startup to build an out of shelf product/solution that supports continuous deployment using virtualization/cloud computing.
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to Email or RSS, and follow on Twitter.

Kaching is an interesting application in itself, but its great to know whats going on at the development side.
[...] facilitate this continuous integration and deployment, you would like to use some automation framework as I mentioned earlier. Besides the application [...]
I believe that CD is more than an idea for startups. I think that it’s the way of the future for most enterprise IT. There are issues about getting the chargeback infrastructure in place, and putting the testing around the legacy systems, but the costs are minimal compared to the benefits of downsizing ops, and slashing capex on technology and facilities. (50% increase in the 25% of the IT budget that’s dev. vs 50% reduction in the 75% of the budget that’s run).