Is cloud computing -- in which services are produced and consumed across entities -- paving the way for a massive wave of service oriented architecture adoption across businesses?
'Cloud is SOA done right'
I recently had the opportunity to join a lively panel discussion led by Phil Wainewright to ruminate over this question, and we came to a general conclusion that cloud, indeed, is making SOA an easier sell to businesses. The consensus seemed to be that cloud is helping to boost the advantages promised by service orientation to a firmer business footing.
Phil and I were joined by David Bressler, principal architect with Progress Software, and Ed Horst, vice president of product strategy for AmberPoint. (Listen to the 45-minute interactive panel discussion here, read the full transcript here.)
I know many of you will correctly point out that cloud and SOA are different entities, with SOA focusing on the architecture and cloud on delivery of services. But consider the ways cloud is turbo-charging SOA. In some cases, SOA proponents have been struggling for years to get things moving in the right direction, and cloud is providing some new oomph and vitality to the effort:
- Cloud (as SOA should be) is well understand, and often demanded, by the business
- Cloud (as SOA should be) is platform, language, and technology agnostic
- Cloud (as SOA should) provides greater visibility and transparency to actual IT costs
- Cloud (as SOA should) necessitates binding contracts between service providers and consumers
- Cloud (as SOA should be) is based on trust between service providers and consumers
- Cloud (as SOA should) originates from business requirements
As Phil -- who has been tracking developments in this space since launching LooselyCoupled.com almost a decade ago -- put it, "Cloud is SOA done right."
The panel kicked off with a discussion of the advantages cloud brings to the table, including service functionality across firewalls, more rapid delivery of information technology, and greater opportunities for integration. However, Phil pondered whether these are all the benefits that SOA was supposed to deliver.
Dave observed that cloud enables these advantages "through a way that allows you to use external providers to jump start that. "By doing that, it becomes much more component driven." Plus, actual costs of business and IT services are more visible. Often, he added, a lot of infrastructure inside the enterprise "is discounted because there's no clear or immediate benefit."
Both SOA and cloud "have the same benefits because they both are essentially -- fundamentally, architecturally, the same thing," Dave continued. "But that's where SOA leaves it -- as an architecture. Cloud is about external providers providing services and wrapping those things -- including the contract, the SLA -- and then delivering that to different constituents."
I pointed out that the ramp-up to SOA provided some foundation for the cloud experience, since "one of the big issues that many companies had to come to terms with in SOA is the establishing service level agreements, because they necessarily didn't know where the service was originating -- from another part of the enterprise, or crossing the firewall." reliability and scalability also needed to be guaranteed.
Ed noted, however, that whether its SOA or cloud, enterprise service consumers do typically have a handle on who is providing the service. "In a lot of the customer examples that we have -- telco, healthcare, those kinds of things -- they're still interacting with a well-known group of users," he pointed out. "It's not random, you-don't-know-who-you're-interacting-with kind of situation."
There are also lessons to be drawn from the SOA experience that can be applied to cloud computing as well, Ed said. For one, "start with a specific project that has some kind of reasonable boundaries to it, that's going to have daily business impact when it's done. You want something that has regular use." Also, Ed advised, "avoid the "boil-the-ocean architecture approach where we're going to get everything to be cloud before we really do anything in cloud -- we've seen that in SOA." He recounted how one company developed a 72-page book of specifications, looking at every possible policy consideration, before they even started working with an SOA methodology. "Those boil-the-ocean approaches probably fail more often than they succeed," he said.
The best approach for SOA -- and now for cloud -- is more of a hybrid strategy that focuses on specific projects, but employs a broad-brush architectural approach. "One of the more successful strategies I've seen is kind of a hybrid of kind of broad strokes as to where the overall architecture is going, where we really want to end up in two, or three, or four, or five years even -- but with some real practical realities around that initial project." Also, another lesson from SOA: "Govern early and often. You don't usually regret having done that early on -- but you oftentimes regret not having done it if you don't."
I added this thought to the conversation: if one was to be attending a conference ten years from now, "you will see that cloud did change the way we look at SOA and for a couple of reasons." First, through cloud computing, the business gained a better understanding of service orientation. "If you want to sell SOA to the business, pitch it as cloud."
Dave also raised the issue of cost structure, and how cloud -- for better or worse -- provides greater visibility into hidden costs that SOA does not address.
He illustrated the point this way:
"You and I are working in the same company. You have a service, I'm using that, we shake hands. 'Phil, throw an extra server in there because I'm going to add some capacity. How much capacity? I don't know yet. Okay, let's go play golf.' But now, I'm paying you to do the same thing as a cloud provider and I'm going to look at the bill. 'Ooh, how come there are two servers on the bill?' You might then go to your team say, 'find another service somewhere and put it in.'"
The cloud providers will provide their services at a specific cost, that's the actual cost plus whatever the margin may be. Whereas, internal IT has always been kind of subsidized. If you need a project, you get internal IT to put it together for you, and delivered for you, and a lot of those costs either were hidden, and were dispersed across the enterprise. Cloud is forcing organizations to look at the actual cost of service delivery and perhaps the alignment more with what the market will be.