Cloud Computing
Definition
From the Wikipedia [1]:
"Cloud computing is a computing paradigm shift where computing is moved away from personal computers or an individual server to a “cloud” of computers. Users of the cloud only need to be concerned with the computing service being asked for, as the underlying details of how it’s achieved are hidden. This method of distributed computing is done through pooling all computer resources together and being managed by software rather than a human."
http://en.wikipedia.org/wiki/Cloud_computing
A nice overview of what a Cloud should be (as described by John M Willis):
- Primary Characteristics
* It uses commodity-based hardware as its base. The hardware can be replaced anytime without affecting the cloud. * It uses a commodity-based software container system. For example, a service should be able to be pulled from one cloud provider to any other cloud provider with no effect on the service.
- Secondary Characteristics
* Virtualization engine * Abstraction layer for the hardware, software, and configuration of systems * Pay as you go with no lock-in * Support * Dynamic horizontal(global) and vertical(resources) scaling * Autonomic computing (automated restarts, automated resource expansion and contraction). * Flexible migration and restart capabilities
Business/consumption models based on Cloud Computing
Cloud Computing drives to on-demand resource allocation thus scaling. The different players adopt different approaches, sometimes leading to further layering/atomization in the service stack.
Models
Platform as a service: Amazon AWS example
The Amazon AWS service provider lets individuals (mostly, start-ups) consume on-demand storage space, cpu power (using virtualization), and more recently simple database and storage volumes. This allows to easily perform high-computation tasks, or host high-demand webservices.
Clients are billed based on usage service (mostly, data transfer and cpu time) on a monthly basis, and can even profit from a reseller-like status (using the DevPay service).
Software as a service
Since the previously described example offers only basic "building blocks" (although some of the internal Amazon services can rely on them as well), the result is that innovation is let to the users.
The Mogulus.com streaming provider is a first example of professional-oriented, value added webservices based on cloud computing: it lets anyone create it's own web television, with professional features.
Managed, scalable hosting
Another approach is to manage scaling from end to end, and "only" offer simple, generic web hosting. Users (developers) only upload applicative code without having to worry about scaling concepts. This, however, tends to lack flexibility and tie the application to it's hosting platform.
Google recently unveiled Google AppEngine which relies and integrates on comparable tier services (storage, database and existing Google services such as gmail).
New business models
Licensing models can then switch from a per-user/machine model to a per-usage model. In short, basic resources (e.g. data transfers) can be overcharged as licensing fee. Early examples are the Wowza Streaming Server or RedHat paid Amazon EC2 virtual images. Note that this models are compatible with Open Source software, where it is the integration work that is billed.
Billing-wise, the "transformation" also gets to the pricing model and usage metric, which can be then more suited to the intended service (presumably, viewer hours), both for the provider and the consumer.
References
Wikipedia articles
Press
Cloud Computing providers
- Gandi
- Amazon AWS
- AllmyData.com NOTE: the internal software http://allmydata.org/trac/tahoe powering the storage service is Open Source
- Microsoft also annouced plans for a similar service, named Live Mesh, with an orientation towards device-wide synchronisation (computers, mobile and gaming devices).