What do service-oriented architecture (SOA) and the cloud share?
David Linthicum: Cloud computing really is a way to do SOA. It's an architectural option as you build service-oriented architecture. At its essence, service-oriented architecture is an architecture pattern. In other words, it's basically a way of doing something; it's a way of approaching architecture and looking at systems as sets of services and rebuilding those services in such a way that they're able to change very easily as the business changes. That gives you the whole agility aspect of service-oriented architecture.
In other words, we can host the services either on premise, or we can host them now with the capabilities in cloud-based services such as Amazon, 3tera, Microsoft and other emerging technologies. So that's where the links are.
Do many people come first to cloud and don't necessarily see that connection with SOA?
Linthicum: What I see is a lot of people that are building service-oriented architectures in the cloud and not even knowing they're doing it. So in other words, they're just leveraging systems that leverage services and they're building mashups and composites out on these cloud-based systems and leveraging all these various services on the back-end systems and just these wonderful applications that are completely living on the Internet. When you look at the architecture, there's not a lot of forethought that went into building those things. But they are service-oriented architectures nonetheless -- or are at least using service-oriented architecture patterns.
Your book mentions that some companies we associate with cloud -- Amazon and perhaps Google -- took a services approach to how they pioneered it.
Linthicum: Every one of those guys uses Web services-based APIs to communicate with his infrastructure. So when you deal with Amazon, you're dealing with a collection of APIs [application programming interfaces]. When you deal with Microsoft, you're dealing with a collection of APIs -- and other providers as well. So they have a service-oriented approach to leveraging their system out of the gate. They may not understand how it's leveraged in the context of a service-oriented architecture -- you can have just a bunch of services and not have a service-oriented architecture. But they're really setting service-oriented architecture up for success. So people within their on-premises systems, as they're reinventing their enterprises, are looking to address their main systems and their main business processes as sets of services.
The cool thing about moving to the cloud is the cloud is already set up to address their infrastructure as sets of services. Service-oriented architectures [in the cloud] are essentially architectures that are able to span from on-premise to cloud-based platforms. So putting configuration layers and process layers on top of those services and those things can live on premise, on the cloud or both.
And so we're getting into what I call the blurring of architectures these days, where it's very difficult to tell where existing on-premise architecture stops and the cloud begins. I think that's going to be the way it works going forward. It's not going to be this mass migration onto the cloud. It's going to be a kind of very gentle and gradual movement into cloud computing as the services we're utilizing shift from on premise out to the cloud. And the lines between on-premise systems and cloud-based systems start to blur. From the end user's perspective they don't know whether they're on cloud-based systems or on-premise systems or on a mixture of both. And I think that's what we're heading to. We're going to leverage a mixture of both.
Your book says that cloud computing could devastate enterprise IT as it's known, much as the Web did. Why do you think cloud can accomplish what its predecessor, grid, didn't?
Linthicum: Cloud computing is really not just a way of doing computing. It's a different model to leverage computing resources, so we're not talking about changing any aspects of computing. We're talking about still using storage and still using databases and still using application development and processing and testing. Nothing really changes in the world of cloud computing other than the way we consume the service.
Linthicum: Right. One of the things…that I tell people when I lecture on cloud computing is, "Don't focus on what has changed; focus on what is the same." I think that you'll find cloud computing is a lot less scary that way. All Amazon does is provide us with different ways to leverage existing technology that we're leveraging on premise: So "Storage as a Service," "Database as a Service" -- specifically, for example, the new [Amazon] RDS system -- and the ability to do processing as a service or the ability to consume major enterprise applications such as CRM [customer relationship management] systems like Salesforce.com.
It's just a different way of consuming the same technology. And instead of hosting it on premise and having to pay for the hardware and software and people to maintain it we're able to do it on a subscription [basis], which makes it much more affordable and a lot more efficient as we move our enterprise processes and change our enterprise software. So it's an opportunity to become more efficient, cost-effective, and able to utilize our computing resources better.
It's an opportunity but that doesn't mean it's a natural fit. That doesn't mean you're going to automatically move in that direction by using cloud computing. You have to understand how it exists in the context of architecture and service-oriented architecture is the best fit there.
So where is cloud computing a fit?
Linthicum: I think there are rules of thumb. Typically, cloud computing is going to be a fit when the applications and processes are largely independent or loosely coupled. If they're tightly coupled, it's very difficult to…move bits of them on premise and bits of them out into the cloud. If that coupling exists, then you're going to have to decouple them first.
Second would be when the points of integration are well defined and everything exists as an API and we know how to get information into a system and out of a system. Obviously if we're going to move aspects of our core enterprise systems out onto the platform of the cloud, we're going to [need] some way to integrate and share that information back into the on-premise systems.
Another aspect is when a lower-level security will work just fine. Cloud computing is not insecure, but it is not a place where you would put state secrets.
Another one would be when the core internal enterprise architecture is healthy. Cloud computing is not going to fix your architecture. So if your architecture is bad, by adding cloud it's just going to make it worse and more complex.
When cost is an issue -- in other words, you're trying to do more with less -- and that's an issue a lot of people are facing these days. IT budgets are being slashed. Instead of spending $5 million on a data center modernization effort, perhaps look at cloud computing as an architectural option.
And then finally, when applications are new. Legacy applications have a tendency not to be good candidates for cloud computing because there is just so much that has to be done to take those applications and put them on the platform to cloud. It just isn't cost-effective in most cases.
Generally speaking, these are the way to look at when cloud computing is going to be a fit for you.
As you wrote the book, what did you learn?
Linthicum: I discovered that there is evolution here, not necessarily a revolution. It enables larger enterprises to become much more effective with the resources that they currently have. That doesn't mean that they're going to be effective. I think we've had opportunities to become much more effective in the past with different technological changes and in many instances we just didn't take advantage of them.
Service-oriented architecture, to a large extent, is one of those. It just tended to be a little more complex than people wanted to deal with.
The other thing I discovered is that this is definitely leveling the playing field. There are startups that I've been consulting with or that I consulted with in the past that are able to build their infrastructure for a fraction of what it would take a startup to build their infrastructure just 10 years ago. So for $100,000 they're able to get enough computing power to build a complete R&D development environment and support 30 or 40 people in the organization --and that's for a couple of years -- where that would be a $2 million investment from some venture capital to put in there. So you're getting these smaller organizations that are able to make a huge impact in the marketplace with very little money because cloud computing provides the computing resources that only the big guys could afford in the past.
Also, the technology within the world of cloud computing is being driven in large part by innovation.
So ultimately, the cloud computing vendors who are going to win this game are the guys that are going to be more innovative around the ability to provide these services out of the cloud. And I think that competition and the speed of movement and also the speed in which you can change cloud vendors that you're utilizing within the organization is going to drive a tremendous amount of value in this space going forward.
Jack Vaughan is the editor at SearchSOA.com. Contact him at email@example.com.