Jump to content

Cloud computing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Metatinara (talk | contribs) at 19:28, 24 May 2008 (Changed a link to a wikilink). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Cloud computing (also known as Server Cloud) gained attention in 2007 as it became a popular solution to the problem of horizontal scalability.

The term derives from the common depiction in most technology architecture diagrams, of the Internet or IP availability, using an illustration of a cloud. The computing resources being accessed are typically owned and operated by a third-party provider on a consolidated basis in Data Center locations. Consumers are not concerned with the underlying technologies used to achieve the increase in server capability, and is sold simply as a service available on demand. The label "cloud computing" is not the same as the business model of software as a service or the usage model of utility computing.

Many providers offer this functionality. Service may vary in quality. Some providers offer a way for the consumer to add capability instantly via a remote interface such as a PDA or web browser, should a media event for example, require more anticipated capacity.

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 its 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.
  • Cloudworks has developed a web-based product that allows users to have online access to desktop software and files.
  • 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.
  • Hatsize is a dynamic, on-demand provisioning solution available as a service over the Web. It enables corporations and end users access to on-demand provisioning of server, networking, SAN, and application resources from the cloud over the web.

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)