The term “cloud sprawl” seems to be uttered a lot these days. This is due largely to the fact that most enterprises have moved to a multi-cloud deployment approach, using many cloud brands and models.
While this is desirable, in many instances, there are good and bad aspects to leveraging either a multi-cloud approach, or a heterogeneous approach. The core question that many enterprises ask is: How much cloud heterogeneity is a good thing? Also, when does heterogeneity bringing too much complexity and risk?
For the most part, those enterprises that attempted to maintain homogenous IT infrastructures lost the battle a long time again. As we placed our bets on IBM, Oracle, Microsoft, and other big enterprises software players, something more compelling eventually came along.
Today most of the Global 2000 supports largely heterogeneous IT architectures, although many find that mix of hardware and software vendors a bit of a mess and very difficult to manage.
Those on the homogenous side of the argument would state that standardizing on specific databases, servers, operating systems, and networks is the way to go. They are easy to manage, you have only a few “throats to choke,” and they just simplify the world for those tasked with operating enterprise IT. That’s one side of the argument.
The other side of the argument is that heterogeneity means you’ve picked best-of-breed solutions, and that you’re able to consistently mix and match technology to optimize solutions for the business. You have hundreds of throats to choke, but if any technology provider disappoints, you simply swap them out for a better player. Since they only have a tactical role, your IT solutions are no worse for the wear.
Cloud computing faces a similar set of arguments, now that enterprises are deploying and relying on clouds. On the one side, there are those who are going with a single “strategic” provider, which is typically AWS these days. The argument is that they are the de facto standard, in that they own a much greater share of the market than the other players. Thus, they must have solutions that work, and that must mean they are lower risk and thus probably lower cost.
While this is not the first time that enterprises moving to new technology have faced the whole homogeneous versus heterogeneous question, the movement to cloud computing brings some new challenges and some confusion. Clouds are, indeed, platforms, but they are also platforms that provide common resources that other cloud brands may share.
Most cloud providers can offer any number of the same brands of operating systems, databases, storage systems, and development environments, on-demand, as a service. Thus, you select a cloud brand, which is a platform that hosts those resources, as well as the resources that may be found in many other clouds. You can see why it gets confusing.
For example, in Figure 1, we show Cloud A and Cloud B. While these are different brands of public clouds, they provide the same resources, including operating systems and databases. Thus, while you leverage heterogeneous public clouds (or multi-clouds), you actually leverage the same resources within each cloud. However, the management tools, and APIs which control the allocation and governance of resources, will likely be very different.
Figure 1: Heterogeneous cloud solutions leverage different cloud brands, but may provide common OSs, development environments, and databases. Thus, they are multi-clouds, therefore heterogeneous. However, they provide common resources, making them somewhat homogenous.
Examples of these types of services include database services such as Oracle and MySQL that are supported by any number of public cloud providers, or operating system resources such as Linux and Windows. For instance, in the recent PaaS review I did for Gigaom (out soon), it was clear that most of the public PaaS providers, including AWS, Google, and Red Hat, are pushing to add many of the same development and database resources. So, if you’re leveraging MySQL on two or more cloud providers, it’s clearly a multi-cloud, but isn’t it also homogenous? It’s really both.
Back to the question: How much of cloud heterogeneity is good? How much is bad? The reality is that leveraging clouds, specifically, public clouds, allows you to mix and match services without committing to any particular cloud. Indeed, you can have as many as needed, place them behind a good cloud management platform, and pick and choose the services you need that are the best fit and most cost effective. If architected correctly, it should matter not which cloud provider is hosting those services. If it does matter, then the best provider gets the business.
So, the answer to the question is, if you’re leveraging cloud computing, you’re typically going to leverage more than one public cloud, and may have one or two types of private clouds as well, unless you’re a very small and simple business. Most Global 2000 companies will have 4 to 6 public IaaS providers in their architecture, as well as 2-3 PaaS providers, and dozens of SaaS providers. This approach provides the best way to leverage the best resources (many of the same resources), at the best cost. If we’re calling that heterogeneous, than that’s the best approach moving forward.