Well over a year ago, I realized that cloud computing cycles were “perishable goods”, just like empty airline seats, empty hotel rooms, unsold event tickets, wilted flowers, or spoiled fish. Modern business has developed sophisticated auction markets to efficiently allocate these resources, and it seemed only a matter of time before the same thing would happen to cloud computing cycles.
I shared the idea with my friend Jay Moorthi. He got it immediately and we developed the idea together, and jointly filed a patent application on an exchange for cloud computing resources. This exchange would collect pricing information and characteristics of the resources from a large number of cloud providers, and allocate those resources among parties wishing to consume those resources. Typically, the resources include computation cycles, storage, and bandwidth. Whether I want to use a particular provider may also depend on other factors, such as PCI compliance, a good reputation, or network latency.
But a patent application is a technology, not a product. Jay and I set out to identify a market that would benefit from this new model of cloud computing: identify a provider with the lowest cost and translate the computation into that provider’s framework. For example, if I built a pure Xen VM I wanted to run a computation on, I could translate it into an AMI to run on Amazon’s EC2, or a KVM to run on one of their competitors. We didn’t even have to build the translators: Qemu, for example, already does this. Being agnostic of the provider frees a cloud computing consumer to choose the lowest price on the market.
Which applications would benefit most from this model? A few criteria emerged: low storage and bandwidth requirements, occasional usage, and flexibility with time of day. We considered a number of applications of cloud computing, and integration testing emerged as the most compelling. A typical code base is relatively small and doesn’t require a large data store. Nightly tests can often be run at any point between about 10pm and 6am, when cycles are cheapest, and scheduled when spot prices are especially low. Moreover, testing benefits significantly from parallelization, and is generally easy to break up into independent chunks. This means that tests that formerly ran for an hour on a build whitebox in the server room can run, on demand, within minutes in the cloud – all at lower TCO.
Segmenting the market further, we realized that Ruby on Rails continues to grow as a robust, scalable web framework and currently lacks a high quality cloud-based CI service that includes not only unit testing but browser integration testing. We’ve spoken with a dozen Rails practitioners who have articulated this pain point, and many of them are lined up to help us deliver a product that makes running tests fast and easy. The first version of TDDium (taking the tedium out of TDD) is a framework to run RSpec, Shoulda, and Selenium tests in parallel in the cloud, eliminating the dependency on dedicated testing hardware and saving Rails developers hours per month waiting for unit test runs to complete.
Once we identified the product we wanted to build, we set out to build a great team. We recognized that a solid full-time cofounder materially improves the chances of a fledgling company’s success. Because I am pretty busy with Blueleaf, I wasn’t able to join Jay in this capacity, so I introduced him to my friend and former colleague William Josephson. William is finishing a Ph.D. in computer science at Princeton and a storage expert, and he’s already made huge contributions since joining us a few weeks ago. We’ve also earned the support of a local angel investor who has multiple large-scale successes under his belt. He’s a fantastic mentor and, in his words, “cruel taskmaster” that keeps the team focused on delivering value every single week. With his financial support, we’ve been able to hire East Agile whose fantastic value for money and expertise in TDD and BDD for diverse Ruby on Rails applications complement our team.
Solano Labs has been making tremendous progress turning ideas into reality, and I couldn’t be more pleased with our progress. We’re demoing the first version of TDDium on Tuesday (March 8, 2011) at boston.rb, the Boston Ruby group. Hope you can make it!