Cloud computing

From Wikipedia, the free encyclopedia

The term Cloud Computing 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. Target 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. Grid computing is a technology approach to managing a cloud. In effect, all clouds are managed by a grid but not all grids manage a cloud. More specifically, a compute grid and a cloud are synonymous, while a data grid and a cloud can be different.

Cloud computing gained attention in 2007 as it became a popular solution to the problem of horizontal scalability.

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. This is analogous to an electrical power grid on which any given generating plant might be active or inactive at any given time.[1]

Critical to the notion of cloud computing is the automation of many management tasks. If the system requires human intervention to allocate processes to resources, it's not a cloud, but is merely a data center.

The applications of cloud/utility computing models are expanding rapidly as connectivity costs fall, and as evolving processor architectures favor the development of multi-core systems with intrinsically parallel computing hardware. This hardware 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:

Contents

[edit] 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.

[edit] Architecture

Diagram of cloud computing architecture.
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 the utilization of the computing power available 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.

[edit] 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.

[edit] 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.
  • Joyent provides a scalable on-demand infrastructure for running web sites, including Web applications written in Ruby on Rails, PHP, Python and Java. Joyent Accelerators are virtual computers that can grow and multiply (or shrink and consolidate) depending on the demands faced by a Web application. Currently 25% of Facebook's daily active application usage runs on Joyent[citation needed].
  • Google App Engine enables developers to build web applications utilizing the same infrastructure that power Google applications.
  • Nasstar, are a UK company, offering businesses of all sizes a Cloud Computing alternative to the traditional on-premise IT model.
  • 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.
  • m2mi A distributed computing technology that enables machines to automatically build trusted services on their own.

[edit] See also

[edit] References

  1. ^ Foster, Ian (July 20, 2002). What is the Grid? A Three Point Checklist (pdf). Argonne National Laboratory & University of Chicago.

[edit] External links