If you’re building software, it’s important to pick the right operating system on which to run it. There are operating systems for mobile devices, data centers, desktops, nuclear reactors and embedded hardware. Pick the wrong one, and you’re bound to have problems.
The cloud is no different. A cloud “operating system” gives developers a set of underlying resources, and choosing the right one is critical.
Clouds make two things easier. First, they simplify operations by outsourcing them to people who are better at that stuff than you are. And second, they speed development by incorporating stuff like authentication, enrollment, messaging and storage. Every cloud is a mix of these two, and as a result, there is a daunting variety of choices.
Some clouds are comprehensive, but in return you give up flexibility. Salesforce.com has its own programming language; but you’re going to use it for extending CRM apps. Anything you build on Ning “knows” it wants to be a social network. And while Rollbase lets you build more kinds of application, its licensing ensures that you’re building them for a team, not the consumer Internet as a whole. I call this a “development cloud.” Most platform-as-a-service offerings fit into this category. The key differentiator between different development clouds is the richness of the services they put at your disposal.
Other clouds provide only the fundamentals but let you do what you like. Amazon Web Services gives you “virtual bare metal” machines and some general-purpose storage and message systems, but you have to scale up yourself. In return, you can do whatever you want: Write a game, build an email client or put up a store. This is an “operations cloud.” It’s often described as hardware-as-a-service. The key differentiator among infrastructure clouds is how easily and cost-effectively you can scale capacity while maintaining the performance and availability your users require.
Most clouds are a mixture of development and operations outsourcing. Understanding these two dimensions is essential if you want to pick the right cloud. Otherwise, you get the cloud equivalent of using Windows to run your stove: One blue screen of death and dinner’s ruined.