Jump to content

Cloud computing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 72: Line 72:
* [[Utility computing]]
* [[Utility computing]]
* [[Grid computing]]
* [[Grid computing]]
* [[Actor model]]
* [[Web operating system]]
* [[Web operating system]]
* [[Enomalism]]
* [[Enomalism]]

Revision as of 07:48, 14 May 2008

Cloud computing gained prominence in 2007 as a term used to describe massively scalable computing that is made available to end users over Internet Protocol or other access method (i.e. "as a Service"). The term derives from the fact that most technology architecture diagrams depict the Internet or IP availability by using a drawing of a cloud. The computing resources being accessed are typically owned and operated by a third-party on a consolidated basis in [Data Center] locations. Consumers of the "cloud" are concerned with services it can perform rather than the underlying technologies used to achieve the requested function.

In general, the label suggests that function comes from "the cloud" -- often understood to mean a public network, usually assumed to be the Internet -- rather than from a specific identifiable device. The label of "cloud computing" is not, however, identical with the business model of software as a service or the usage model of utility computing.

Within the general label, though, it is an easy error to assume that all clouds are created equal. This can lead to confusion and disappointment.

For example, virtualization of servers on a shared super-server can speed the deployment of new capability, since no new hardware needs to be installed, but the software stack that runs on the virtual server must still be configured and updated -- unlike the case with a multi-tenant software-as-a-service capability.

A computer cluster can offer cost-effective service in specific applications, but may be limited to a single type of computing node that allows all nodes to run a common operating system. Alternatively, the canonical definition of grid is one that allows any type of processing engine to enter or leave the system, dynamically, by analogy to an electrical power grid on which any given generating plant might be active or inactive at any given time.[1]

However, an electrical generator only needs to produce volts and amperes in synchrony with other units on the grid, while computing cycles are not nearly such an undifferentiated commodity. For example, a computing grid could include both general-purpose processors and specialized units such as a vector processor facility.

Also important to the notion of cloud computing is the automation of many management tasks. If the system requires human management to allocate processes to resources, it's not a cloud: it's just a data center.

The applications of cloud/utility computing models are expanding rapidly as connectivity costs fall, and as evolution of processor architectures favors the development of multi-core systems with intrinsically parallel computing hardware that greatly exceeds the parallelization potential of most applications. The economic incentives to share hardware among multiple users are increasing; the drawbacks in performance and interactive response that used to discourage remote and distributed computing solutions are being greatly reduced.

As a result, the services that can be delivered from the cloud are not limited to web applications, but may also include storage, raw computing, or access to any number of specialized services.

Common visualizations of a cloud computing approach include, but should not be considered to be limited by, the following:

Potential advantages

Potential advantages of any cloud or grid computing approach include:

  • Location of infrastructure in areas with lower costs of real estate and electricity.
  • Sharing of peak-load capacity among a large pool of users, improving overall utilization.
  • Separation of infrastructure maintenance duties from domain-specific application development.
  • Separation of application code from physical resources.
  • Ability to use external assets to handle peak loads (not have to engineer for highest possible load levels).
  • Not have to purchase assets for one-time or infrequent intensive computing tasks.

Architecture

File:Cloudcomputing.jpg
Diagram of cloud computing architecture.

The architecture behind cloud computing is a massive network of "cloud servers" interconnected as if in a grid running in parallel, sometimes using the technique of virtualization to maximize computing power per server.

A front-end interface allows a user to select a service from a catalog. This request gets passed to the system management which finds the correct resources, and then calls the provisioning services which carves out resources in the cloud. The provisioning service may deploy the requested stack or web application as well.

  • User interaction interface: This is how users of the cloud interface with the cloud to request services.
  • Services catalog: This is the list of services that a user can request.
  • System management: This is the piece which manages the computer resources available.
  • Provisioning tool: This tool carves out the systems from the cloud to deliver on the requested service. It may also deploy the required images.
  • Monitoring and metering: This optional piece tracks the usage of the cloud so the resources used can be attributed to a certain user.
  • Servers: The servers are managed by the system management tool. They can be either virtual or real.

Cloud storage

Cloud storage is a model of networked data storage where data is stored on multiple virtual servers, generally hosted by third parties, rather than being hosted on dedicated servers. Hosting companies operate large data centers; and people who require their data to be hosted buy or lease storage capacity from them and use it for their storage needs. The data center operators, in the background, virtualize the resources according to the requirements of the customer and expose them as virtual servers, which the customers can themselves manage. Physically, the resource may span across multiple servers. In some services, such as Nirvanix, the system may span multiple data centers or even continents.

Cloud services

Cloud services refers to web services offered via cloud computing.

  • 3tera, has created a network of partners with it's AppLogic system in the US, Asia and Europe who provide resources for developers to run their applications in the cloud.
  • Amazon.com is probably the first company to sell Cloud based services in the form of its Amazon Elastic Compute Cloud, a part of Amazon's web services platform. It provides computing capacity in the cloud to run applications.
  • Joyent provides a highly scalable on-demand infrastructure for running web sites, including rich Web applications written in Ruby on Rails, PHP, Python and Java. Joyent Accelerators are next-generation virtual computers that can grow and multiply (or shrink and consolidate) depending on the real world demands faced by your Web application. Currently 25% of Facebook's daily active application usage runs on Joyent and they just launched a program to provide infrastructure for OpenSocial developers.
  • Google App Engine enables developers to build web applications utilizing the same infrastructure that power Google applications.
  • Live Mesh is a platform designed to provide you with everything you need to build applications that take full advantage of the underlying services whether by modifying an existing application or building a new one.
  • Nirvanix, offers a storage delivery service used by developers for storing content and data and making them available worldwide at low latency.
  • Project Caroline is an open source program developing a horizontally scalable platform for the development and deployment of Internet services. The platform comprises a programmatically configurable pool of virtualized compute, storage, and networking resources.
  • Skytap is a virtual lab management solution available as a service over the Web. It enables application teams to on-demand provision and test multi-machine lab environments (including servers, networking, storage and software stacks) in the cloud.

See also

References

  1. ^ Foster, Ian (July 20, 2002). "What is the Grid? A Three Point Checklist" (pdf). Argonne National Laboratory & University of Chicago. {{cite web}}: Check date values in: |date= (help)