Jump to content

Cloud computing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 1: Line 1:

{{cleanup}}
{{cleanup}}
{{cleanup-spam}}
{{Confusing|date|date=April 2008}}
{{Confusing|date|date=April 2008}}
'''Cloud computing''' is a new (circa late 2007) label for simplification of the data center by leveraging virtualization technologies to reduce complexity. This complexity is reduced by homogenizing environments. Consumers of the "cloud" are '''concerned with services it can perform rather than the underlying technologies used''' to achieve the requested function.
'''Cloud computing''' is a new (circa late 2007) label for simplification of the data center by leveraging virtualization technologies to reduce complexity. This complexity is reduced by homogenizing environments. Consumers of the "cloud" are '''concerned with services it can perform rather than the underlying technologies used''' to achieve the requested function.

Revision as of 15:12, 30 April 2008

You must add a |reason= parameter to this Cleanup template – replace it with {{Cleanup|reason=<Fill reason here>}}, or remove the Cleanup template.

Cloud computing is a new (circa late 2007) label for simplification of the data center by leveraging virtualization technologies to reduce complexity. This complexity is reduced by homogenizing environments. 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

Ensembles

While most traditional IT clouds are made up of heterogeneous systems, an ensemble is a pool of homogeneous systems within the cloud which are compatible with one another. These ensembles are integrated by virtualization and management software which allow for mobility of the software stack between physical servers. It can scale from a few servers to many thousands, while having the management complexity near that of a single system. For instance an ensemble could be a set of systems which are capable of running a certain web appliance stack. The operating system, middleware, and web-app run exactly the same between servers in the ensemble.

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.

  • 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.
  • Nirvanix, offers a storage delivery service used by developers for storing content and data and making them available worldwide at low latency.
  • 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.
  • mibbit.com is a full function irc client that runs in the web browser
  • 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.
  • 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.

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)