Can any cloud catch Amazon Web Services? Part 1
While many hosting companies claim to have competitive offerings to Amazon Web Services, do they really? Well, it depends on how you look at it...
While there has been an incredible increase in the competitive landscape for various cloud computing services, one company stands out to me as unique in both its approach and its success. That company is Amazon, and their Amazon Web Services offerings.
Before you accuse me of being some kind of fanboy, I want to explain why I say this. And in part 2 of this series, I'll point out how this uniqueness will be challenged in the coming year or two. There is no guarantee that Amazon will be the dominant cloud capacity provider forever, but they deserve their props when it comes to what they have achieved to date, and how--at least for now--they continue to go about staying the leader.
For the most part today, Amazon is competing against hosting companies in the infrastructure-as-a-service (IaaS) market. To understand why Amazon's approach remains so successful relative to those other offerings, you have to look closely at their approach to the cloud relative to those competitors.
Most IaaS is built for operations, Amazon services are built for developers
Hosting companies generally deal with servers and people who operate servers. Yes, managed service offerings can move the conversation to those operating specific applications, but that is different than software development.
Even though cloud computing is an operations model, it is a model that requires applications to be architected a certain way--an architecture that most well-known software packages aren't very good at today. It is also a model that opens the door to whole new application categories that were just not cost effective to approach when everything had to be paid for whether it was used or not.
Both of those conditions require software developers to create the appropriate software to take advantage of cloud's benefits. This means that cloud's success depends on software development, and cloud solutions should target that market. Which is precisely what AWS has done.
Amazon gives developers control with "services as a platform" approach
Coding distributed systems is hard. It requires a huge amount of supporting software to make sure components and systems can communicate, coordinate, and survive negative events.
Amazon gets this, and it provides services that enable some flexibility of application architecture, while eliminating the headache of installing and operating the underlying systems. ElasticCache was the latest, but AWS RDS, S3, SQS, and others are examples of core infrastructure software elements that are now offered as an API to developers for a price.
Of course, developers have to do more work to coordinate scaling and failure recovery of their applications in this model, but they have tremendous control over their application architectures and operations.
Traditional hosters, on the other hand, are placing their bets on "platform as a service" (PaaS), which is a term largely associated with framework-centric development environments, in which developers write their code on top of a set of APIs that define the architecture of the application, and how that architecture deploys, scales, and recovers from failure. That's powerful, but it is also limiting for developers looking to push the boundaries of cloud models, as those boundaries are hard-set by the framework architecture.
Amazon doesn't wait for others to create necessary technologies
I think one reason that Amazon addresses the developer market so well is that they are developers themselves, while most hosting companies are data center operators. Thus, even with respect to core infrastructure automation technologies, Amazon hasn't waited for a known vendor to solve all of their problems, but have attacked solutions themselves head on.
This, in turn, allows them to focus on priorities as determined by their customers, as well as innovate new services that customers didn't even know they wanted. If the technologies exist, they will explore them, and maybe use one. However, for a systems software shop like AWS, often the faster, cheaper route is to create the service themselves, the way they want it.
Hosting companies, on the other hand, generally don't have large software development teams to create new services or address new markets.
Amazon understands economies of scale
Some time ago, Amazon's data center guru, James Hamilton, wrote a post ( ) explaining the importance of keeping systems busy to keep costs down. It was brilliant insight, and their maniacal push to find ways to sell capacity (both compute and storage) is one of their strongest advantages.
My favorite example of this is the AWS spot instances, in which users can purchase compute time at a variable price set by Amazon, with the condition that their VMs can be killed if the spot price goes higher than a limit set by the user. Why offer this plan, which clearly takes a fair investment in automation and management software to operate?
Aswhen it was introduced, the plan exists for a simple reason: to encourage people to consume capacity that might otherwise go unused for a variety of reasons. Even at a reduced rate, the capacity is cheaper to operate than to let lie dormant.
This is an argument that I thought hosting companies would understand immediately, but to my surprise I am not aware of any other cloud provider-operated spot market today. So, those providers appear to be at a disadvantage when it comes to squeezing revenue out of cloud servers and disks.
All of this probably makes it sound like I think Amazon's dominance is a foregone conclusion. I don't. In fact, what excites me about the cloud marketplace today is the number of initiatives that are creating challenges to the Amazon ecosystem. I'll explore those in part 2 of this series.