I came into the software world in the middle of the great operating system war, which pitted IBM, Microsoft, and other minor players against each other for dominance over the server operating system. The war was short but fierce, leaving Microsoft and Windows NT/3.1 in control of the market, and everyone else relegated to niche players. The rest as they say is history (that is until Linux started to gain momentum in the mid-2000s).
I’ve been assuming the cloud market would develop in a similar fashion to the 1990s server operating system market, with a few key vendors (i.e. Amazon, Microsoft, IBM and Google) locking horns to battle it out and one emerging as the dominant provider. But recently my eyes have been opened to a new possibility that previously had seemed far fetched to me: the heterogeneous cloud.
The Cloud Futures
I have historically heard my fellow cloud evangelists / analysts espouse one of the three prevailing visions for how the cloud market will evolve:
- Winner takes all - In this vision, a single cloud provider emerges as the dominant provider the majority of us use (i.e. the Windows of the cloud). While lesser clouds will still exist, their market share marginalizes them to targeted vertical markets.
- Brokered cloud - The brokered cloud envisions us moving work loads between multiple cloud providers to arbitrage the best price, performance and /or function. It predicts some level of homogeneity across clouds that allows companies to adopt two or more providers and seamlessly move between them as desired.
- Hybrid cloud - This future envisions organizations using private clouds for their always-on infrastructure with bursting / emerging workloads being pushed into the public cloud. This approach was made popular a few years back by Zynga, and is based on the presumption physical data centers will always be preferred over public clouds for deterministic workloads.
The Winner Takes All Future
As much as I can intellectualize the arguments for brokered clouds, I’ve never fully embraced them as the future of the cloud. The recent increase in diversity and differentiation as cloud providers have moved beyond AWS’s IaaS functional specification has made it even harder see a brokered future. For example, how does one broker a workload between AWS DynamoDB, Google Cloud Datastore and/or Microsoft DocumentDB? Even if these are high-level equivalents of each other, the switching cost of moving a workload between them makes it almost certainly logistically infeasible.
I will also confess to never having been a fan of the hybrid cloud for a simple reason: I don’t believe corporate IT can build and operate a cloud competitive with public providers such as Amazon, Microsoft and Google. This belief has only increased as I’ve watched the incessant innovation from cloud providers in the last few years contrasted with the lack of innovation from commercial and/or open source alternatives. One of the most extreme examples of the power of cloud provider economies of scale is the AWS M3 instance type, which uses a proprietary processor developed by Intel specifically for use by Amazon. Try to do that in your private cloud. ;)
So for several years my instinct has been that the cloud will evolve like the operating system market: with a single winner.
An Alternative: The Heterogeneous Cloud
This year at AWS re:Invent, I had my eyes opened to a fourth way in which the cloud can evolve: the heterogeneous cloud. A heterogeneous cloud allows an organization to combine the best of breed services from multiple cloud providers, accepting the vendor lock-in that comes with specific services in return for the benefit of their superior features. Unlike the brokered cloud model, it predicts the desire for arbitrage will be trumped by a desire for achieving an optimum and stable execution of a workload. But unlike winner takes all, it presumes the diversity of services being offered as providers move up the application stack will result in a differentiation of clouds at a service level that encourages us to embrace a multi-vendor solution.
For example, an organization might choose to use AWS EC2, AWS DynamoDB, Google BigQuery, Google DNS, AWS S3 and Azure Search for their heterogeneous cloud. In each case, the organization knowingly commits to specific services, accepting the vendor lock in exchange for the benefits that come from the selected service. In many ways this adoption cycle is a direct parallel to our physical data center past, with organizations standardizing on a single vendor for servers, routers, firewalls, and other products required to support their businesses.
The current impediments to a heterogeneous cloud include:
- Data transfer costs - Adopting the best of breed services from multiple cloud providers will require moving data securely in and out of clouds. This movement will increase the network egress costs.
- Cross-cloud private networks - If an organization adopts more than one provider for IaaS compute services, it will be necessary for data to move securely between virtualized compute in different networks on different clouds.
- Cloud management - The powerful benefits of cloud computing have come at a cost: our management systems have been unable to keep pace with the complexity of our cloud infrastructure. The heterogeneous cloud likely adds exponentially to the existing complexity gap.
While these may sound like daunting impediments, each has market movements that suggest their solutions are in the near to medium term future. For example, since Amazon eliminated all charges for network ingres a few years back, the cost of data transfer have been on a slow but steady decline (including 47% discount in network egress costs by Google in November). The same is occurring with cross-cloud VPNs, which are becoming increasingly common for enterprises that move data to and from their data centers / cloud using combined hardware and software VPNs. Finally, cloud management products and services have started to substantially commit themselves to the “complexity problem” of the cloud (e.g. CloudHealth), streamlining the management of complex infrastructure and making possible the ability to support heterogeneous clouds.
The heterogeneous cloud is both exciting and daunting. The excitement is driven by the powerful potential of a best of breed approach to cloud services; the daunting part is the complexity that will come with this type of adoption. But if we can solve for the impediments preventing this future, in return we may receive great innovation, an increased ROI from our clouds, and freedom of choice in selecting the right services for our organization.