Friday, November 6, 2009
The current view of cloud computing is one where processing and data storage is moved onto a set of services accessed over a network and served up to a number of small and/or lightweight clients.
The benefits of such a model are often touted in terms of potential cost reduction and ubiquity of access for users and small businesses. Cheaper, more mobile client hardware, less localized fixed infrastructure costs, simpler management and update, extensible resources, potential for global access etc.
There are also some significant issues with the traditional characterization of cloud computing including ubiquitous and consistent connectivity, potential performance issues, richness and controllability of the experience delivered, security, and balkanization of services and information.
So why do the clouds have to be so large? Any system architect will tell you that design is a constant tradeoff between simplicity through the centralization of resources, the cost tradeoffs in resource sharing, verses driving complexity to the edge to achieve performance and more localized and richer experience; and that management of data ultimately becomes an issue of trust rather than one of technology.
A differentiated viewpoint on cloud computing would allow, support and embrace the inclusion of smaller clouds operating at different levels in the system working in concert with larger clouds.
With appropriate infrastructure the the clouds themselves then become a composable fabric of computing, processing, storage and other services enabling the architectural tradeoffs required to support effective pervasive computing. For example a cloud formed by devices in a room create a basis for entertainment (locative context), the cloud formed by the chance meeting of two individuals provide the potential for collaboration and sharing even commerce (social context). This doesn’t invalidate the existing vision and notions of cloud computing it extends this notion maintaining a balance between iron in the sky and local resources. The devil is in the details requiring a new platform that allows the creation (dynamic) and integration of computing elements at the local and global level. It will require a new set of tools, born out of the current web based tools that allow solutions to be created (authored) and deployed across the cloud infrastructure.
Even with the current vision of cloud computing, it is unlikely that there will be one cloud. Major computing vendors are all rushing to the pump and creating their cloud vision and deploying infrastructure this will create a balkanized services landscape with the same integration barriers that exist today in service oriented infrastructures and large web based communities. Other factors such as information security will naturally drive towards a more fragmented cloud computing view. So I ask the question again why do the clouds in cloud computing have to be so big?