Everywhere I turn, I keep seeing the term "cloud computing". I've done the usual drill of reading Wikipedia, searching around a bit, but it's hard to sort the wheat from the chaff.

Can someone provide a buzzword-free definition of clouding computing? It's a bit of a struggle given that seemingly every tech company uses the term now, probably incorrectly.

  • 1
    "When the marketing people use a word it means just what they choose it to mean – neither more nor less." (I'm closing this as NARQ not because the question isn't real, but because the answer changes depending on who you ask -- The collection we have here is pretty much representative)
    – voretaq7
    Mar 12 '12 at 17:44

12 Answers 12

  • Cloud computing means not needing any technical staff.
  • Cloud computing means not having to have worry about backups - it's in the cloud!
  • Cloud computing means not having to worry about capacity planning or architecture - everything is infinitely scalable.
  • Cloud computing means instant provisioning - unlimited resources available whenever you need them, they never run out.
  • Cloud computing means shifting the blame onto 3rd parties.
  • Cloud computing sits very well with management's idea of "just" setting up a new 'X' with zero resources, tomorrow. It's instant, right?
  • Cloud computing means not having to worry about planning and design - you just put it in the cloud and it works.
  • 5
    Excellent sarcasm. I see you've worked in "the cloud" before. Jan 8 '10 at 20:07
  • 3
    This is the most upvoted answer? C'mon voters, this isn't a comedy site, don't we care about providing quality answers anymore? Jan 22 '11 at 12:00
  • 2
    'The Cloud' is such a joke that I'm not sure it is possible to talk about it seriously.
    – Marcin
    Jan 22 '11 at 15:02

Cloud is a masking term for the idea of 3rd party network based services. Those services could be infrastructure (Amazon S3), platforms (Google App Engine), storage (online code repositories), or applications (Pandora).

It's definitely a vague buzzword, but there are advantages in the economies of scale for small companies that may not be able to afford a $25,000 server at launch, or can't afford another staff member to manage that server.

But other than cloud based apps like Pandora, Last.FM, or online storage like Apple's MobileME, cloud computing mostly applies to content creators and providers, not consumers.


Not Well Defined:

Cloud Computing is not well defined, or to say it another way, the definition is a bit cloudy (abrasive geek snort laugh). I understand as usually being used for two different things that have been around before people started using the term:

  1. Online Web Applications
  2. Virtual Machines which you can rent

Lets Make Fun:

I imagine some people in a marketing room, where the conversation went something like:

"So, here is the executive summary memo from the engineering department: 'Leased virtual machines, the main advantage being that new and small companies can get their products launched at a cheaper cost', we are tasked with giving this a name, what do you think Jan?"

"Well the whole thing is a bit cloudy to me, I don't know if I understand..."

"Wait a minute, that is perfect, cloudy computing!"

"What about Cloud computing?"

"Give that man a raise!"

Possibly a Valuable Option:

So, it is a term that is fun to make fun of. But hosting things on leased VMs can be a valuable option. Also, services like Amazon offer interesting approaches, for example, designing an application / virtual machines that can be launched, but don't depend on any persistent storage other than the database. Also, you can scale up and down if you have high period of load, but not at other times. Another common use is for one time tasks that require large amounts of computational power.

How to talk about it:

The term clouding computing is like a lot of 'business speak', I have also heard that called flab speak, for example synergize or Web 2.0 (Wiki: Irritating phrases you are subjected to in “the enterprise”). I think always better is plainly state what you mean, if you mean leasing Virtual Machines, just say that. If the person doesn't understand what a virtual machines is, explain it with a short analogy. There are whole books on this topic, for example: "Why Business People Speak Like Idiots: A Bullfighter's Guide"


So, just because the name and term is vague and stupid (in my opinion), it doesn't mean the technologies related the term should be ignored.


Cloud computing is essentially computation resource (from low level CPU, memory, persistence, network to high level web applications) over network. Cloud shapes are usually used to denote shared networks (internet for public cloud, intranet for internal cloud) in system design diagrams, hence the name.

The economic incentive of cloud computing is lower overall cost for certain types (I'd say a majority without ultra-low-latency requirements) of computing. This is achieved by better utilization of computing resource through pooling. Real life analogies include: car pooling, vacation home time sharing etc.

The time-sharing of mainframe computers (since decades ago) via various networks (dial-up, pre-internet networks, and finally internet) can be viewed as the original form of cloud computing. The reason it got popular now is the wide availability of network access and better maturity of virtualization technologies.


Time-Sharing, over the Internet.


Cloud Computing is more like a term for end-users and PHB's; it describes taking your application or service, and hosting it in a rented "virtual network of hosts" to try and abstract away the hardware and hosting.

Cloud computing allows you to point to an IP and connect to a service and the hardware is abstracted away. You don't know nor need to know where the provider is running your application or storing your data, it is usually redundant, and you can't know where it is because if the "system" running your application is shut down or reallocated to make more efficient use of resources, the entity hosting your application or service will be moved without your knowledge or intervention.

Cloud computing is a marketing term to make it user friendly. You can provide similar services to your users by having every service become a DNS name or IP address and running as many servers or applications as are necessary using virtual machines on big hardware. I suppose in this way "good" sysadmins have been providing cloud computing for some services to their users for quite some time in the sense that users don't necessarily know how your company website or file shares work, they just know they do. You're the one sweating it out trying to keep them available and backed up properly and maintained.

Take that and abstract it one more step and you get what I think cloud computing is supposed to be; a big company providing the "you don't need to worry about it" hosting of services and applications for system administrators in corporations. It's a way to outsource your application and some services to bigger corporations with the resources to spin up additional horsepower in virtual machines as needed, in a way that you don't know, won't know, can't know where exactly the hardware is hosting the "cloud".


Broadly, Cloud is outsourcing ownership and management of your physical servers and (optionally) the software sitting on top of them, to a provider who (generally) operates a multi-tenant environment.

The best explanation I've seen involves breaking "the Cloud" out into a couple of discrete strategies:

  • Platform as a Service (PaaS) - outsource the hardware, you manage the OS and everything above it. (e.g. Amazon EC2)
  • Infrastructure as a Service (IaaS) - outsource the hardware, OS, and middleware, you manage the application (e.g. Google App Engine)
  • Software as a Service (SaaS) - outsource the application, you just interact with it. (e.g. SalesForce.com, Amazon S3)

As you move up the stack, the level of multi-tenancy increases from same underlying hardware for PaaS to same underlying application instance (SaaS).


In simplest terms: Outsourcing your servers.

Of course the devil is in the details. Most of the ambiguity in the term, aside from that caused by bandwagoneers re-labeling whatever they are doing as "cloud computing", stems from the fact that you can do this at multiple levels.

Co-Location (e.g RackSpace): Though not always considered a cloud option, it technically could be considered such. Your equipment lives in someone else's facility. Power, Internet Access, etc. are provided.

Hardware as a Service (e.g. Amazon EC2): You use servers (usually virtual) provided by the provider and hosted at their datacenter. You pick a machine/OS image, kick off an instance through their API/Tool and remote into the box.

Platform as a Service (e.g Microsoft Azure, Web Hosting Companies): You provide the software written to work on the platform the provider offers, they worry about the equipment, OS, and platform (web server, db server, etc.) configuration. Sometimes the platform gives you the groundwork for a certain type of app (e.g. Force.com has a framework for CRM type stuff)

Software as a Service (e.g. SalesForce, Google Apps): You use software controlled by the provider, usually through a web browser. You don't get involved in most of the details of what it takes to run that software.


Let's quote the official NIST definition, which I've cleaned up some.

Basically, "Cloud" is about abstraction of resources. Much as virtualization abstracts away the need to worry about hardware, the Cloud abstracts away the need to worry about your virtualization platform. You do still have to learn the particulars of your cloud platform, then.

Quoting NIST:

Cloud computing is: a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction.

This cloud model is composed of five essential characteristics, three service models, and four deployment models.

Essential Characteristics:

On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.

Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).

Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.

Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.

Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

Service Models:

Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited userspecific application configuration settings.

Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider.

The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.

Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).

Deployment Models:

Private cloud. The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.

Community cloud. The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.

Public cloud. The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.

Hybrid cloud. The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).


simply put, instead of owning computers to do what you need to do. You can "rent" processor time and hard drive space from someone like Amazon. You connect to their services and servers over your internet connection.

  • That's only one type of cloud comuting.
    – pfo
    Jan 8 '10 at 16:15
  • If you boil them all down. It comes out to your not storing the app, service, etc on your hard drives and your processors are not burning resources in your server room.
    – Skaughty
    Jan 8 '10 at 16:23

Meaningless buzzword. Basically it tends to apply to scalable application hosting provided by third parties, but most people use it to mean effectively, "We don't know where or how we're going to host this."

So called because of the "cloud" icon commonly used to represent the internet.

  • I disagree with this. Using virtual servers in a cloud environment is a often cost effective replacement for the server room. However, the term did come from the "cloud" used to represent the internet.
    – Skaughty
    Jan 8 '10 at 16:29
  • 3
    What does that even mean? My whole problem with the "cloud" fad is that no one ever defines anything. "We're going to host in the cloud!" Host how? What provisions for stability, redundancy, failover? Who cares! It's in the cloud man, the clooooud! If it were serious, you'd be talking specifics. You'd be listing providers, and numbers, and recovery plans, and then it wouldn't BE the magical "cloud", you'd be talking specific providers and services. Jan 8 '10 at 17:44
  • Amen to "We don't know where or how we're going to host this". The number of times I've heard "we're going to host in the cloud" as the only description of the entireity of the post-development plan... GAH!
    – womble
    Jan 9 '10 at 0:10

Cloud Computing Instances are Virtual Private Servers. Don't let companies steer you otherwise.

Another marketing buzzword in that context. Hosts are trying to get money out of it.

  • I'm aware of the negative reputation this would create, but what most call "Cloud Computing" is not.
    – Xorlev
    Mar 1 '10 at 18:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.