The term “cloud computing” is a big fad right now. Lots of people use this term without a really solid definition of what it is. I’ve been thinking about it a lot lately, and a personal definition that I’ve been using a lot more is “horizontal computing services”.
Horizontal computing services refers to system architecture components that allow a software service to operate. For instance, data storage, processing power, network access are all examples of horizontal layers in an application stack that allow web software/services to operate. They’re common whether you’re running a photo-sharing site, a news aggregation site, or a video sharing site.
Maintenance of these layers is generally not scalable as a web service grows. In many cases, the maintenance of a horizontal computing service is outside the core competency of the organization that requires it.
Horizontal computing services remove this friction for application level developers. By abstracting these services, companies can focus their resources on excelling on application development.
There is a broad, long tail market available for horizontal computing service providers. The current main players in the market are Amazon, IBM, Google, Microsoft, Yahoo!, Akamai, Apple, etc. We’ve seen each of these companies release products that endeavor to capture some portion of the horizontal computing service market.
There are a couple of reasons that these companies are the ones to jump into this market, as opposed to newer, start-ups in the space. These are all giant companies who have established some form of these services to solve problems for their own internal purposes. The work that’s been done to date has largely been the open-sourcing, or exposing of these services that are used internally by these companies to the rest of the world to take advantage.
Another reason is that the cost of establishing one of these services in inevitably quite high up front, and is unlikely to be achieved by initial private investment. The cost of operating such large and massive services over time is going to mean diminished margins as well. I would be surprised if in 5 years there are any more than 3 or 4 major players in each of the horizontals mentioned above.
As a result, any player that is going to try and establish itself in this market over the next 5-10 years is going to have to differentiate itself in order to succeed. Here are four key traits that will allow providers to stand out to consumers:
- Metric granularity. Presumably, the primary business model for horizontal services will center around utilization. The more a user utilizes a service the more they will have to pay. Extremely granular reporting and metrics on usage will be valuable to a user to determine how they can utilize the service efficiently.
- Free for entry level usage. Basic level usage of a service should be free. A key to long term market domination will be to allow developers to use the services for free, and begin talking money when low thresholds are hit. Free services will be tested out and played with by developers more. And once they start developing a tool for a service, they are more likely to stick with it.
- Utilize object-oriented principles. Overloading, extensibility, modularity. These are key principles of object-oriented programming, and should be key elements for a horizontal computing service. A service provider can develop a robust API, but they should allow application developers to inject their own specific logic into the service level API by making it extensible for the developer. This has the advantage of flexibility and power for the application developer, and may lure them into the unwitting position of locking themselves into your system.
- Services need to be interoperable. Amazon’s storage service is compatible with Google’s processing service, and this is the way it should be, even though Amazon offers a competing service. It allows the developer to build their application for hte best-of-breed services. An all-or-nothing locked-in service stack is little more than a distributed dedicated server with metered pricing.
What else do “cloud” computing services need to offer, both to set themselves up as the platform of choice for the next generation of applications, but also to set themselves apart amongst their competitors?