So last Friday I was invited to be part of a panel session with my fellow Microsoft'ees Nigel Watson and Chris Vidotto, hosted by MOSSIG's Tim Wragg.
The panel was asked to consider the impact of emerging and developing platforms, such as the cloud and next generation mobility, on current platforms such as Sharepoint Server.
During the session I was asked how would I describe "the cloud". Now, I've spent a fair bit of time thinking about this question myself, and have gone between a number of ideas, but at that point, all I could think off was "Think of the cloud, as the mother of all servers!".
Now, I admit I am a simple man, but before you tip your cup of Quietly Camomile over while scrambling for the comment button, let me tease this out.
For me, there are a couple of reasons why I think the cloud is just a big server.
Firstly, if we go back to that time in desktop computing where there was no such thing as client/server, everything just ran on one machine. As people started to work together in an organisation, they started to need a central place to keep stuff, so came the network computer and client/server was born. Developers then made decisions around where to deploy certain components of a solution based on whether it was required by one user or required my many. We're back at this point again, only the reach needs of users is extending past the firewall, and the problem of where to deploy shared services is upon us again. Developers are now faced with the problem of where to deploy components of a solution that are needed by one, by many within the organisation, or by many outside the organisation. They need a server somewhere outside their organisational network where they can put their components, but preferably somewhere accessible by their other collaborators. For me, this server is the cloud.
The other aspect is the cloud is not the same as the Internet. The reason for this is that the cloud as a commercial technology concept has the attribute of ownership attached. Therefor, the Microsoft Cloud is different from anyone else's cloud, because unlike the Internet, which is more like public infrastructure, we determine what our cloud does or doesn't do, what is installed or not, who gets access and not.
Finally, the cloud is more than just a bunch of packaged services. The cloud, like a server, has an inherent architecture and set of capabilities, but the fun begins when developers exploit these capabilities to create brand new capabilities.
For me, as a simple person, the way I see the cloud now is really an extension of my server, but for the Internet. If it's to work, it needs to be a seamless extension, one where I simply decide that the characteristics of my solution require an environment that does not reside within my organisations sphere of control, where scalability must happen on demand and reliability is the same whether one or one million users are loaded.
Now, the key here is that the cloud is going to mean something different for everyone. A developer working in-house, a consultant at a Systems Integrator, an architect building bespoke software or an engineer working for a product company, are all going to have different factors that influence their needs and influence their decision to leverage the cloud.
Main thing is, everyone's gonna need one... I hope! ;)