Cloud Architecture’s Missing Link
Have you been to a Cloud Computing conference lately? Maybe you’ve read an article or blog post on the topic? Perhaps you’ve joined a Cloud-related Webinar? Regardless, there is one common thread you’re likely to find across most Cloud Computing information sources: they are vendor-driven.
As we’ve discussed before, vendors love Cloud Computing, because it gives them a new way to sell their customers something they’ve already purchased in a different form. Software-as-a-Service, Infrastructure-as-a-Service, and Platform-as-a-Service are all vendor-centric trends where the vendors come up with warmed-over old hammers and then try to convince customers they have new nails. As a result, the vendor-centricity of today’s Cloud Computing world leaves enterprise practitioners scratching their heads, wondering where the real value lies.
It’s not just the vendors who spin their wheels on the topic of Cloud Computing. On the enterprise side, the focus is on the business benefits of the Cloud: the pay-as-you-go model combined with rapid, dynamic provisioning that responds to unpredictable fluctuation in demand for computing resources. Such consumption-based concerns lead to high-level discussions of Cloud Computing — “PowerPoint architectures” that fail to lead to workable Cloud-based solutions.
The result? CIOs and other IT executives are on board with the promise of Cloud Computing, but find themselves lost in the complexities of deployment in a Cloud environment. This confusion prompts them to call their favored vendor, who is only too happy to sell them the vendor-centric model for Cloud Computing that’s all the rage in the vendor-heavy conferences and blog posts.
Now, we’re not saying the vendors aren’t getting anything right. Purchasing a vendor-centric Cloud offering may very well meet your needs at the right price, and if so, then go for it. What we’re finding, however, is a broad understanding among many CIOs that over the years, vendors have oversold and undelivered on low-cost, fast, agile offerings. The move to the Cloud is meant to address those issues, so the last people you’d want to go to in order to deliver better, faster, cheaper are the very same vendors who gave you poorer, slower, and more expensive the last time around. Why trust them to get it right this time?
The Missing Link: Architecture
The missing link between the business benefits that Cloud Computing promises and the products on the market, of course, is architecture. Try this experiment: Google the phrase “cloud architecture” and see what you get. What you’ll find is information on how to architect a Cloud environment — in other words, how to build a Cloud, not how to leverage one. There’s plenty of information on the former, but very little on the latter.
From the enterprise perspective, however, leveraging Clouds as part of the broader enterprise IT context is at the core of getting value from them. What is a best practice-based approach to leveraging Cloud-based resources in the context of the existing IT environment to address changing business needs? The answer to that question is the Cloud Architecture that is the missing link for organizations struggling to piece together a vendor-neutral Cloud strategy.
Unfortunately, part of the problem is that we don’t have a good term for this critical part of the enterprise IT architecture story. Enterprise Cloud Architecture? Cloud Consumption Architecture? The vendors and Cloud providers have already co-opted the phrase “Cloud Architecture” to refer to how to build clouds, and as a result, today’s Cloud Architecture conversations involve either discussions of Cloud infrastructure, or at best, the pros and cons of public, private and hybrid Clouds.
But even if you know how to build the Cloud type that best suits your needs, how do you actually make use of it in the enterprise context? And furthermore, how can you be sure you selected the right type in the first place? The vendors, of course, will recommend the type that requires selling (or renting) you the most gear. But is that what you really want?
Here’s an example of what we’re talking about. Let’s say you have an existing legacy application that is still providing value, but there are new requirements for this aging on-premise app that include both new functionality as well as a new requirement to support unpredictable spikes in user demand. And of course, you’re on a tight budget, so you want to avoid over-provisioning any new on-premise infrastructure to meet the spiky traffic demand requirement. As a result, Cloud computing is now on the table.
There is a lot more for your architects to consider than whether or not to move to the Cloud, or what type of Cloud is appropriate. They have to consider how to deal with the existing legacy app. They have three basic options:
- Option 1: Leave the existing app where it is, but extend it by adding new capabilities in the Cloud.
- Option 2: Migrate the existing app to the cloud, eventually retiring the existing app altogether.
- Option 3: Expose the existing app as loosely coupled Services, and compose them with Cloud-based Services that are either already available to you or that you’ve built or purchased for this purpose.
If you’ve been following ZapThink for a while, you’ll probably recognize option 3 as a SOA-based approach. Lest you think that this article is another of our “what you really need is SOA” treatises, let me point out that option 3 isn’t necessarily the best option, regardless of whether you have a SOA initiative in place or not.
In fact, your architects must consider many different questions in order to make the appropriate decision, for example:
- What are the business process requirements that are driving this change? If there is a strong process ability requirement then the SOA approach may be warranted, but if the underlying requirement is more data-centric, then options 1 or 2 might be more efficient.
- What are the characteristics of the legacy app? How well does it lend itself to modularization and Service enablement, for example.
- What part of the new app is likely to experience the traffic spikes?
- What is the reuse potential for the planned Cloud-based capabilities?
- For the Cloud-based portion, should we consider public, private, or hybrid?
There will be a number of other considerations, but the list above provides a flavor of the sorts of considerations that should be part of your Cloud Consumption Architecture (or should we call it your Enterprise Cloud Architecture?)
This example is but one of many legacy modernization challenges that enterprises face, and whether or not to include Cloud-based approaches when addressing those challenges is all a part of Cloud Consumption Architecture. Furthermore, legacy modernization is but one category of challenges that enterprise IT shops face. How can Cloud approaches address, say, data management challenges, or business process optimization challenges, or customer relationship challenges, to name a few more? We have a lot of work to do before we can say we have a comprehensive answer to how best to leverage Cloud Computing in the enterprise.
The ZapThink Take
We identified option 3 as being the most clearly representative of a SOA approach, but as anybody who has taken our Licensed ZapThink Architect SOA Boot Camp knows, trying to distinguish between SOA and non-SOA is a pointless endeavor. Rather, SOA best practices are fast becoming a part of the fabric of Enterprise Architecture broadly speaking, even when we no longer identify some particular approach as being specifically Service-oriented.
So in fact, all three options are best placed in the context of SOA. That is, if your organization has already gone through the rigors of SOA, establishing a governance framework and a business Services abstraction layer, then Cloud consumption naturally follows from the best practices you have already been following. Is what you’re doing still SOA? It doesn’t matter. What matters is that you’re solving the problems of the business in the best way available, even when the vendors are trying to sell you a bill of goods. That was the key to SOA success, and it’s the key to Cloud Computing success as well.