Cloud Computing: Difference between revisions

From P2P Foundation
Jump to navigation Jump to search
Line 82: Line 82:
#[http://aws.amazon.com Amazon AWS]
#[http://aws.amazon.com Amazon AWS]
#Microsoft also annouced plans for a cloud service, named [http://en.wikipedia.org/wiki/Live_Mesh Live Mesh], with an orientation towards device-wide synchronisation (computers, mobile and gaming devices).
#Microsoft also annouced plans for a cloud service, named [http://en.wikipedia.org/wiki/Live_Mesh Live Mesh], with an orientation towards device-wide synchronisation (computers, mobile and gaming devices).
== Managed and scalable hosting providers ==
#google appengine
# joyent


== Behind the scenes : distributed P2P technology ==
== Behind the scenes : distributed P2P technology ==

Revision as of 01:33, 6 May 2008

Definition

From the Wikipedia article on cloud computing :

"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

The art of scaling

Cloud Computing only provides the basic means. It's up to the user to efficiently use and allocate them in proportion to the demand, which is denominated as scaling.

An important research effort concerning allocation strategies, error handling, availability clustering is ongoing.

Scalability is a desirable property of a system, a network, or a process, which indicates its ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged.

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

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 metrics transformation

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

  1. Virtualization
  2. Utility Computing

Press

  1. The High Scalability blog is a technical resource about Web2.0 scaling and contains analysis of popular services [past?] scaling issues (e.g.: youtube case)
  2. Google and the Wisdom of Clouds
  3. Consumer Cloud Computing

Cloud Computing providers

  1. Gandi
  2. Amazon AWS
  3. Microsoft also annouced plans for a cloud service, named Live Mesh, with an orientation towards device-wide synchronisation (computers, mobile and gaming devices).

Managed and scalable hosting providers

  1. google appengine
  2. joyent

Behind the scenes : distributed P2P technology

Unsurprisingly, this is often P2P technology that powers the underlying resource allocation mecanisms.

  • Amazon S3 (the storage service) is powered by the Dynamo distributed data store.
  • The Hadoop project (also see http://en.wikipedia.org/wiki/Hadoop) is a Free Java software framework that supports data intensive distributed applications running on large clusters of commodity computers. [1] It enables applications to easily scale out to thousands of nodes and petabytes of data. Hadoop was inspired by Google's MapReduce and Google File System (GFS) papers.
  • Allmydata.com's internal software Tahoe is powering the storage service is an Open Source secure, decentralized, fault-tolerant filesystem.

Storage providers

  1. AllmyData.com

Scaling consulting firms

Some consulting companies specialize in the art of scaling, and tend to adopt Open Source business models:

  1. Enomaly has released Open Source tools
  2. Itridea Open Sourced scalr], its "fully redundant, self-curing and self-scaling hosting environment utilizing Amazon's EC2"
  3. Joyent offers so-called "accelerators", which are Google AppEngine-similar hosting services. Since scaling problems mostly come from social networks, one can find free Facebook and OpenSocial accelerators

Del.icio.us user bookmarks

* http://del.icio.us/fthiery/scalability