Randy Bias, VP of Technology Strategy at cloud provider GoGrid, wrote an interesting blog post entitled Cloudcenters are Data Centers in the Sky. I recommend reading the full excellent post from Randy, but I'll give a quick recap.
Randy argues that there are essentially two kinds of Infrastructure-as-a-Service (IaaS) providers. An example of one is Amazon Web Services, which Randy calls an Infrastrcuture Web Service, defined as:
...a robust ecosystem of services form which you can use any or all of in order to build your application, getting the traditional benefits of Cloud Computing such as self-service, pay-as-you-go, and massive scalability.
Randy then addresses the key strengths and weaknesses of this approach, specifically in regards to AWS:
Unfortunately, every service [provided by AWS] is based on an Amazon standard, not an industry standard. S3 is not accessible via CIFS or NFS. EC2 provides Xen hosting, but image management and storage is completely custom. SQS does not use any standard queuing or messaging protocols such as JMS or STOMP. SimpleDB now has an ‘SQL-like’ interface, but is essentially a 100% ground up creation of Amazon.
A major advantage of using the Amazon approach however is that greenfield applications developed from scratch have a very powerful set of vetted, scalable services, that can be used to build that application. This means avoiding the intrinsic and extrinsic costs associated with deploying a separate queuing or database system.
The second kind of IaaS, according to Randy, is a "cloud center". He explains:
[Cloud centers] provide the same kinds of tools that all datacenter and server operators are already accustomed to, but with all the traditional advantages of cloud (i.e. self-service, pay-as-you-go, and scalability). Instead of creating completely new paradigms, cloudcenters are a methodology by which you, the customer, can have a virtual datacenter hosted ‘in the sky’.
- If there is a market for more "data center-like" infrastructure, I think Amazon could address it in a year or less
- As developers begin to design for the cloud, taking advantage of existing service-oriented architectures to do so, those infrastructure Web services begin to be more and more important. If those services aren't available from the Internet itself on an infrastructure-independent basis, cloud centers may find themselves offering similar services to AWS in just a few years.
In other words, James is saying that if indeed these are two distinct categories, what will happen in the market over time is that on the one hand Amazon will move towards the GoGrid approach if it sees market demand for it; and on the other hand, so-called "cloud centers" will start offering more web services of the sort Amazon does today, thereby completely blurring the lines between the two categories.
The Cloud Provider Spectrum
I would take James' argument farther, and say that what he describes is already the case today. Instead of looking at it as discreet categories, we should be it as a spectrum, as in the diagram below.
The more we move to the right-end of the spectrum, we are looking at services that provide raw infrastructure, and therefore give us more flexibility. The more we move towards the left of the spectrum, we are looking at higher level services, which give us of ease-of-use and time-savings due to the fact that we don't have to build the entire stack ourselves.
We can now place different cloud providers on the spectrum. Although AWS may be further to the left than GoGrid, it has other cloud providers to its own left, such as Google App Engine. And even further to the left is Force.com. And further to the left is Salesforce.com.
AWS is an interesting case, though. As Randy himself points out, you don't have to use the higher level services such as SimpleDB and SQS. You can stick to EC2, EBS and S3 which are fairly low-level services. That means that AWS covers a wide range of the spectrum.
The Standards Question
In addition to the issue of the level of services offered by each cloud provider, Randy brings up an issue that I view as a separate one, which is how proprietary or standards-based is the service. The two are not directly tied together. For example, instead of providing SQS with a proprietary API, Amazon could have chosen a queue service that uses JMS or some other standard. It's still a higher level service than wat GoGrid provides, but it is not proprietary (of course each specific JMS implementation will have some proprietary elements to it, as is the case outside the cloud).
Including standards-compliance, you can move the picture from a one-dimensional spectrum to a two-dimensional matrix.
This is a very rough -- and very arguable -- attempt to map the various vendors I mentioned above, but I also added companies such as
Stax.net and
Heroku. The reason these companies are of particular interest here is that they demonstrate that it is possible to provide higher-level services, while sticking to standard programming models and frameworks (Stax.net for Java and Heroku for Ruby-on-Rails).
The Consumerization of Infrastructure
Another issue that Randy brings up is that Cloud Centers are more IT Staff friendly -- as they look & feel more like a traditional data center -- while Infrastructure Web Services (i.e., AWS) are more developer-friendly. I am not saying that traditional data center management practices are necessarily going away quite yet, but I do see one of the key value propositions of cloud computing as the elimination of the (visible) need for IT administration, and the empowering of developers at the IaaS and PaaS level, and end users at the SaaS level, to access IT infrastructure with no middle men. The trend has been referred to by Gartner as Consumer-Led IT and by others as the "consumerization of infrastructure".
Again, I think there is still a very strong need in the market for the low-level services that a GoGrid provides, but that the trend is to move higher level, and frankly, GoGrid is actually already a leader in that trend and doing a great job at it.