Nick Hardiman takes a look at the many variations on the definition of "cloud computing." Is there any consensus?
Now that "the cloud" is everyday speak for many people, even in the consumer world, what do we really mean when we talk about cloud computing these days? Well, it is OSSM (On-demand, Scalable, Self-service and Metered). It's definitely about business startups, devops and Silicon Valley. Or maybe it's rapid provisioning, multi-tenant, and multi-purpose. In reality it's a combination of Web 2.0, virtualization, and big data. Are these all true? Or none of them? What makes a decent definition? Is cloud computing even the right phrase to use?
The phrase cloud computing has been popular currency for a few years now, but phrases come and go, especially those related to technology. Some phrases are current, like Googling, some are fading, like Googlewhack, and some have disappeared into the past such as Enid Blyton's Google buns. In the future "cloud computing" will go the way of "information superhighway", but for now it is still stuck on many kinds of IT operations.
The problem with defining "cloud computing" is the amount of ground it covers. A couple years ago the problem was straightforward ignorance -- it was new, poorly understood and everyone was struggling to come up with a decent definition of cloud computing. Now many people have a handle on what that phrase means - or at least as far as it relates to their own work. Cloud computing is a collective label that means something different to a sysadmin, a programmer, and a salesman because they use radically different cloud services. The perception of each one is coloured by the types of services they consume.
If you really need a good definition of cloud computing for design and build work, you could start with the huge Wikipedia cloud computing page. This entry kicks off with the three service models
- IaaS - raw power for system administrators
- PaaS - development environments for programmers
- SaaS - business services for end users
And that's probably about as far as most people, who aren't students with essays to hand in, get.
The US government agency NIST (National Institute of Standards and Technology) provides an excellent high-level breakdown. Government departments, revving up million dollar projects, must use the NIST definition of cloud computing. The definition includes these characteristics.
- On-demand self-service - No waiting, no fuss - fill out a form and get started.
- Broad network access - access your services from anywhere using your mobile phone
- Resource pooling - it's all multi-tenant behind the scenes. No dedicated resources here.
- Rapid elasticity - scale out as much as you want to meet demand, then scale back in to save your money.
- Measured service - utility billing means you pay for what you use, whether it is storage, processing, downloads or any other billable activity.
If you run an SME, you may not care what the big picture is - you just want to know what tools you can use. Amazon Web Services is still king of the hill, with a huge set of services on offer including:
- S3 (Simple Storage Service), the original cloud file service
- Cloudfront, a global CDN (Content Distribution Network) for getting content to customers quick
- Multiple database services - choose RDS (Relational Database Service), with Oracle, SQLServer or MySQL, or choose SimpleDB or DynamoDB for NoSQL services.
- Elastic Beanstalk for PaaS
The gory details
There is no definitive list. An infrastructure provider may offer infrastructure load balancers and floating IP addresses, a platform provider may offer a code repository and testing tools, and a software provider may offer a web user interface for administration. Or they may not - the industry seems to be working towards normal sets of features, but they don't exist yet.
The IEEE is one of the standards groups that have taken on the unenviable task of trying to nail down descriptions of the cloud ecosystem, describing interfaces, file formats, and conventions. An IEEE working group is creating a Guide for Cloud Portability and Interoperability Profiles.
Does it really matter?
As a vendor you may not need an accurate definition to describe the services you want to sell. There is no punishment for inaccuracy. What if you run an ASP (Application Service Provider), MSP (Managed Service Provider) or ISP (Internet Service Provider) and are worried about getting left in the cold because you don't offer a cloud product or service? Can you still just stick the word "cloud" in your advertising and leave it at that? Well, there is no ticklist, no law against it and I've seen it done many times.
As a customer you may not need an accurate definition to describe the services you want to rent. Does an accurate definition really matter? In the 1990s the phrase "World Wide Web" was often used interchangeably with "Internet". IT snobs like me who knew the difference may have sneered in a superior manner, but the truth is the general public got along just fine - they could successfully communicate their ideas with either phrase. Cloud was used interchangeably with virtualization for a while, and perhaps the difference was really only important to the hands-on technicians and the pedants.
In what contexts have you seen the most dubious definitions of what constitutes the use of the word "cloud?" Do you think the term "cloud" will fade over time?