Those who know me know that I’m about the cloud, and I’m about using SOA to leverage the cloud. To me the two concepts are inseparable, meaning you can’t have a successful and efficient cloud implementation without the use of SOA. However, cloud computing and SOA are different concepts.
The trouble is that most of those in the emerging cloud computing space have experience in infrastructure planning and management, but not architecture, let alone SOA. Thus, without creating those solid links with the cloud and SOA, many end up in technology-driven cloud implementations that fall well short of providing the required value. Processes, applications and services are tossed out onto the cloud willy-nilly, without proper thought and planning.
A proven fact is that if you marry the use of cloud computing within the context of a SOA you’re likely to get to the proper cloud computing solution, including the provision of agility and extensibility, which is something that most enterprises lack. The core purpose of SOA is to provide structured architectural guidance to a loosely coupled architecture that’s better able to make use of cloud resources.
SOA fits with cloud computing. Consider that SOA is all about breaking existing and new systems down to their component parts, typically data, services and processes. These components are loosely coupled, and thus can exist anywhere outside or inside of the enterprise. Thus, you can mix and match system or architectural components that run on local servers, or on private or public clouds, selecting the best platform, cloud or not, to do the job.
At the heart of the issue is that many enterprises don’t focus on architecture or planning, but instead focus on the technology. SOA is something you do, not something you buy, so you can’t purchase a tool or sign up with a cloud provider and somehow bring SOA to your enterprise.
The focus on technology has gotten us into trouble over the years. In many respects we’re looking at the next generation of technology to get us out of the troubles created by the last generation of technology. Cloud computing won’t provide that solution. Instead the cloud can be just another way to create new silos within your enterprise, and the cloud can make your enterprise architecture more complex, thus less adaptable to required new business processes. In other words, you’ll be digging a much deeper hole by once again just tossing the most hyped technology at a problem.
The movement to the cloud should be around the fundamentals of SOA. Understand all of your existing and new IT resources at the primitive levels, including data, services, processes, rules, interfaces, etc. From there you consider all of these resources as services. You define them logically, and add them to a portfolio of services. Then you’re able to consider the platforms that will best host those services, and that’s when cloud computing comes in. Cloud computing is not a replacement for architecture but merely a platform alternative that happens to provide more effective and efficient places for processing.
SOA is the path, if cloud is your destination.