The 2nd meaning of cloud: Service Oriented Architecture
In part 1 of this blog piece, I pointed out that I see two main divergent definitions of ‘cloud’, and I discussed the first definition, hyperscale computing. While hyperscale is about simplifying hardware requirements, there is a 2nd dimension to ‘cloud’ that is Service Oriented Architecture (SOA).
As Joe McKendrick puts it, “People in the industry have spent years trying to hammer home the point that SOA is not about technology at all; it’s about building an architecture that effectively provisions business services when and where needed across enterprises.”
A little bit about SOA
SOAs divide the functionality of an application or platform into smaller services that are called upon as needed. And when a service is utilized, there is no telling what is going on behind the curtain. When you go to www.dell.com, you are using a service – the dell webserver. The webserver knows how to talk to your browser, and your browser knows how to talk to your webserver. And that’s all your browser needs to know. Is the webserver apache or IIS? Is it running on Linux? Is it Joyent? Is the hardware hosted at Dell’s facility? Is it a virtual machine or a physical server with an OS installed?
It could be any of these. And here’s the kicker: it could be ALL of them! Because of the way dell.com is designed, the first time you see a page it could have been created by a physical server running Linux. When you refresh the page, it could have been sent to you from a Joyent VM hosted at Joyent.com.
SOA, really? Isn’t SOA dead?
So why did I pick SOA as my 2nd definition? Because devices of all sizes are trying to figure out how to ‘get connected’, and SOA is the strategy that enables this. Amazon used to sell physical books, and then they started to sell the Kindle which relied on a supporting service to serve content. But Amazon didn’t stop there; now any android device can download Kindle books using the same service that supports the Kindle. There is not a software or content vendor on the planet that isn’t trying to figure out how to get a SaaS offering up today, and that’s because anyone who adapts to a SOA approach can leverage their work.
Why stop here?
Sure there are many definitions of cloud, but hyperscale and SOA seem to be the dominant themes. The reason I have separated these two definitions is they tend to draw different audiences. Hyperscale platforms are undeniably a large breakthrough, but in the end it is about which level in a system is responsible for ensuring reliability and scalability. On the other hand, companies making purpose built devices are trying to leverage the cloud to expand their product offerings and the capabilities of their existing products. By combining both hyperscale and SOA, you can get to just about anywhere you want in the cloud discussion, like standing up a new webservice using someone else’s hyperscale platform.
You can follow Josh on twitter (@joshneland).