Regular readers of my blog knows that I am a strong advocate of federated clouds as an antidote against monopoly in the cloud infrastructure market. As we move up the stack, it has become a norm to support multiple cloud providers on various infrastructure platforms like OpenStack (disclosure: my employer Red Hat is part of OpenStack project), CloudStack and other proprietary platforms. The use of the term multi-cloud is becoming part of marketing speak. In this post, I will briefly talk about my thoughts on the topic.
As infrastructure is getting commoditized with open source platforms lowering the barriers to the entry, we are seeing more and more cloud providers jumping into the market. Enterprises are moving from a more conservative private cloud strategy to a more advanced hybrid cloud strategy. The market has moved from a scenario where handful of cloud providers were expected to dominate to a more federated system of providers. Thanks to the recent revelations about how various governments are using the data stored with cloud providers, there is a growing realization among businesses all over the world that it is better for them to deal with their own governments than foreign governments. Even though some western pundits still bang their head on the idea of handful of cloud providers, the reality is a more federated future.
With the availability of choice comes less lock-in risks at the infrastructure layer, a big concern for most of the enterprises wanting to embrace cloud. However, with choice comes other difficulties including problems related to discovery, interoperability, etc.. We are seeing marketplaces springing up solving the discovery problem. We are also seeing cloud management players supporting orchestration and automation across multiple infrastructure platforms. Interoperability and application portability is fast becoming the focal point of industry discussions.
As we move up the stack, to Platform as a Service, there is a natural expectation for PaaS to support multiple infrastructure underneath. I am sure most of the PaaS providers will eventually move on to support multiple infrastructure platforms underneath. Let me briefly discuss various reasons why one would look for multi-cloud under PaaS:
- reduce lock-in risks
- performance reasons (eg: geo based performance needs)
- regulatory needs
When a PaaS provider talks about multi-cloud support, what is implied is the support for multiple infrastructure platforms so that applications are seamlessly ported from one to another and runs equally well in all infrastructure. It means that the platform treats all the infrastructure underneath as first class citizens. Treating all the infrastructure platforms as first class citizens is not an easy task and requires handling all the touch points rigorously. In the absence of such a support, it will create an infrastructure subclass under PaaS. Unless we have a PaaS platform that treats all the important infrastructure platforms as first class citizens, claims of multi-cloud is more of a marketing hype than any reality. Just ask the cloud management players how difficult it is to support orchestration and automation of VMs across multiple platforms. App containers is even more difficult to do it seamlessly.
This is one of the reasons why OpenShift (disclosure: I work for OpenShift) decided to use RHEL (also Fedora and CentOS) for the containers so that the apps can be seamlessly ported across multiple infrastructure platforms. All the apps on OpenShift can be ported to any infrastructure as long as it supports RHEL. In the absence of real multi-cloud support, I think OpenShift’s approach to containerization is a good way to start thinking about portability. We can be multi-cloud even before any PaaS provider start working on the touch points with multiple infrastructure platforms.
In short, multi-cloud support is a good thing but it cannot be just a marketing hype. If you are a CIO plotting a platform strategy with multiple infrastructure providers, it is important to look deep on any multi-cloud claims and make sure the infrastructure underneath is truly classless. #my2cents