In the past decade cloud computing has skyrocketed. What began as a limited set of computing services offered by an online retailer has become a highly sophisticated computing ecosystem that is rapidly becoming the de facto platform for enterprise IT.
During that decade, most enterprise IT groups approached cloud computing with caution and even suspicion, but today their stance is completely different. I’ve previously mentioned the JP Morgan survey of enterprise IT organizations about their application deployment plans, but it bears revisiting to understand just how important cloud computing is to their future. As Figure 1 illustrates, by 2020 -- four short years from now -- enterprises will deploy a full 41% of their application portfolios in public cloud environments:
Left unexamined were IT plans after 2020; in other words, does the 41% deployment figure represent a ceiling on cloud adoption or just a near-term milestone, with even larger percentages likely the further out we look? From my perspective, the latter alternative is probable, since there is little evidence that the benefits of cloud computing are somehow limited to less than half of all enterprise applications.
The wholesale adoption of cloud computing by enterprises carries many implications, but one implication is clear: all enterprises will use multiple cloud providers, and they must plan for how they will operate in a multi-cloud environment. Today, most enterprises are dealing with this reality on an ad hoc basis, but over the long-term they will require an organizational strategy to be successful.
Here are the three key steps enterprise IT organizations should take to prepare for their multi-cloud strategy:
Understand the differences
The venerable IPS model (Infrastructure/Platform/Software-as-a-Service) was helpful when initially promulgated: it helped people understand the concepts of cloud computing and outlined how it differed from traditional IT infrastructure.
An unfortunate by-product of the model is how many people interpret it: they assume that offerings within a specific category must be pretty much the same. So they conclude that there are few differences between, say, AWS’s security mechanisms and those of Azure.
Nothing could be further from the truth. Each cloud provider implements core computing functionality quite differently, and each offers quite different services within each category. AWS, for example, has an extremely rich set of instance types, offering types oriented toward different application profiles, e.g., instances with massive amounts of memory to facilitate memory-hungry real-time analytics applications. Microsoft offers a rich set of instance types, but they differ from AWS and are instantiated and managed in a different fashion from AWS. The same goes for Google as well.
So the first step in creating a multi-cloud strategy is to recognize that the providers differ and those differences will steer application deployment choices. It’s likely that developers will alter their application design and architecture choices to better integrate with the specific features of the chosen cloud provider. It’s also a given that application operations will vary according to the specifics of the chosen cloud provider.
Choose your cloud management strategy
Enterprises have two general cloud management strategies available to them:
- Use the cloud-provided consoles, command line interfaces (CLI), and APIs. These work well and expose the full functionality of the provider, but are limited to the individual provider. Worse, employee skills based on one provider’s management capabilities are not transferable to another provider, which means enterprises will end up with pools of cloud-specific skilled employees.
- Use a third-party management product that provides a single console, CLI, and API to users, and encapsulates the individual provider differences within the management product. This simplifies management and allows greater skills transfer across specific provider applications; the drawback is that third-party management products provide a generalized set of functionality that fails to enable users to take advantage of cloud-specific features. In other words, cloud management products take a lowest common denominator approach to this requirement, and limit the ability of the organization to create more innovative applications.
The third-party approach has an intuitive appeal, and appears to address lock-in concerns, but in practice the vast majority of IT organizations use the native management functionality of the individual cloud providers. I don’t expect this will change in the future, so the working assumption should be that the IT organization will need to develop skills across all of the likely cloud providers it will use.
Prepare your organization
Given the reality that IT organizations will use multiple clouds and their individual services and management systems, it means that they need to prepare to develop and run applications in each environment. In turn, this means IT organizations need to develop deep skills in each of the cloud providers they will use.
In the past, many organizations relied on individuals to develop their own skills via experimentation, online content exploration, and conference attendance. That was great when cloud use was limited. For the coming world of 41% application portfolio deployment, this approach suffers from two drawbacks:
- It creates an organization with inconsistent cloud computing foundation knowledge, technical skills, and best practices. Every person has his or her knowledge and the organization suffers as each application reflects the idiosyncrasies of the individuals who worked on it. This raises the long-term costs of running cloud-based applications, since money must be invested in bringing people up to speed to work on each application.
- It doesn’t scale, either in number of people trained or in the speed at which the training can be accomplished. Only by leveraging packaged training that can be delivered to large groups of people can IT organizations prepare quickly enough for the quickly approaching cloud-centric world. Relying on self-education means that IT organizations will not be ready soon enough for that world.
Cloud computing is enterprise IT infrastructure of the future -- the very near future. Enterprise IT groups must recognize that cloud computing will host nearly 50% of their applications in short order, and they don’t have time to waste in getting ready for the future.
That future will include multiple cloud providers and requires building skills for each. A structured training program that can educate large numbers of employees is fundamental to being ready to meet the multi-cloud future.