David Linthicum wrote yesterday in ebizq that cloud computing proponents seem to be avoiding the S-Word. Although most people recognize that cloud computing needs to leverage SOA, no one wants to talk about it. As Dave says, "The trouble with architecture is that it's almost as popular as the kid in the classroom that reminds the teacher to assign homework."
I guess it's time for me to be unpopular.
Dave's assessment is spot on: Using cloud computing without a sound architectural context is dangerous. Organizations that blithely run off and deploy applications in the cloud without considering SOA principles will find themselves in worse shape than before.
SOA is not a popular topic these days. (Remember? SOA is Dead. Moldering, rotting corpses are never particularly popular.) But just because it's dead, that doesn't mean we don't need it. And SOA is particularly important to cloud computing.
If you want an application to exhibit cloudy characteristics, the traditional n-tier application architecture that we're all so comfortable with is just not going to cut it. If the application isn't designed to scale, it won't scale any better just because you've deployed it in the cloud. It all comes down to architecture:
- How should you factor the application?
- How do you use resources more efficiently?
- How do you ensure a shared-nothing architecture?
- How do you support multi-tenancy?
- How do you enable dynamic lifecycle management?
- How do you support consumption-based pricing?
- How do you enable your cloudy application to interoperate with your terrestrial applications?
SOA's core design principles (separation of concerns, loose coupling, and encapsulation) are fundamental to cloudy design. We also need to develop new patterns to support cloudy characteristics. And this is a primary focus of our research in 2010.
If you're interested in learning more about application architecture and cloud computing, come join your peers at Catalyst this year. We're meeting in Prague on 19-22 April, and in San Diego on July 26-30.