In some ways it's strange that the term has been so slippery. Millions of us are happy to use such cloud-based services as Facebook, Gmail and Twitter, thinking nothing of it, yet pinning down an exact definition has been as elusive as grabbing a cloud itself.
In an attempt to put a stop to these vagaries, the US National Institute of Standards and Technology put forward a definition that has now become widely accepted as the closest that the industry has to a definitive answer. The NIST definition is as follows.
"Cloud computing is a model for enabling, convenient, on-demand network access to a shared pool of configurable computing resources ( eg. networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models."
The service models are types of offering, such as software-as-a-service (SaaS), and deployment choices include public and private clouds. But the key characteristics of cloud from a customer's point of view are:
- Self-provisioning so a customer can provision facilities without any human interaction
- Delivery of services over a network
- Ability to be accessed by a variety of devices, not just PCs but also by netbooks, tablet computers and smartphones
- Rapid 'elasticity' - the ability to scale up or scale down computing resources.
The factor in cloud services that makes most users nervous is the level of security within a multi-tenant model. This is a major concern. Customers are entrusting some of their sensitive data to a third party and there is, of course, nothing stopping one of their major competitors going to the same cloud provider for a service.
Service providers believe that this concern can be easily dealt with: they've generally had a long history of keeping customers data safe and have levels of security that far exceed those of their customers. Take Amazon, one of the leading lights in cloud technology. Millions of us around the world are willing to entrust our personal details and credit cards to that company believing they'll be held safely- why should trusting the company's cloud division, Amazon Web Services, be any different?
In many ways, a more important consideration than security is the location of the data. This is for two reasons. First, there is the inherent latency within the system: the further away the data is stored the longer the lag in accessing it. This is becoming less of a problem as network connection get faster but it still can be a factor.
The second problem is a more serious one, particularly on this side of the Atlantic. There are various EU regulations on where data can be stored - personal data cannot be held outside the EU (within the EU itself, individual countries have stricter guidelines still). This has been a problem for some cloud providers, as part of the appeal is that unused resources at one data center can be used by another. If data centers outside the EU cannot store European customers' data, providers have to be careful in marshaling their resources.
Allied to this is a secondary problem: the US Patriot Act, which compels US, companies to hand over personal data held on their servers if requested by US authorities. As this applies to European data held on servers located in Europe, this has made some European customers rather nervous. The implications of the Patriot Act are still being worked through.
There are other elements within cloud computing. Virtualization is another key concept. It means what it says, the use of virtual resources instead of physical ones. For example, a server within a data center may be operating at just 15% of its capacity (this used to be a typical usage); virtualization is a technique where the resources that aren't being used by the server for the application that it's driving (database, website or whatever) can be used for something else- driving usage rates up. Virtualization will often go hand-in-hand with server consolidation so it helps to reduce the number of servers within a data center.
Like cloud computing, it's an old concept, originating from the mainframe world and only becoming widely used after VMware, a virtualization specialist, started applying it to servers. The technology has now been adopted nearly universally within enterprises and the technique of re-allocating resources has made it vital for the development of the cloud.
We've spoken a lot about cloud service providers but another important part of the cloud is the delivery of software the so-called software-as-a-service (SaaS) delivery mechanism. This is a technique that was really pioneered by Salesforce.com with its hosted CRM product but has since been adopted by countless other companies. SaaS delivery helps solve various problems within an enterprise: over-provisioning, security updates and licensing among them, and is widely seen now as the dominant method for providing software.
As a concept, cloud computing has grown quickly and is set to penetrate deeper into the market. According to an oft-cited Gartner report, 20% of enterprises will have no IT departments by the end of 2012. While that looks to be a bit optimistic (or pessimistic depending on your view), the impetus is clearly with cloud. It's a technology that's here to stay.
Difference between outsourcing and cloud computing
Outsourcing is widely known and used in technology circles. It's when a third party performs an IT function or other service on behalf of its customer. Outsourcing can be employed for a variety of reasons - lack of expertise in-house, lack of personnel or because the resources are needed purely for an individual project.
The key differences with cloud are defined by the underlying technology of the cloud provider. Essential to this is the use of virtualization -all cloud providers make use of virtualization technology - and automation (the ideal cloud service has little human intervention). The other key element of cloud computing is the use of self-provisioning- one of the major benefits is the ability to make a business more agile and flexible because services can be turned up and down at will.
A brief history of cloud computing
Anyone hanging around cloud vendors for any amount of time will hear one often repeated mantra - "Cloud computing is not new you know, cloud has been around for some time" - generally from a veteran of the technology industry. There's an element of truth in this but, at the same time, it's spectacularly missing the point. It's possible to point to a 1966 book by Douglas Parkhill, The Challenge of the Computer Utility, tor the origins of cloud computing. In that book, Parkhill detailed many of the elements of cloud computing- elastic provision, online delivery, perception of infinite supply it’s just taken a while for the theory to become reality.
Saying that the theories espoused in Parkhill's book are the first elements of cloud computing is a bit like saying that Leonardo Da Vinci's notebooks are the blueprints for the first helicopter. It's one thing coming forward with the theory; it's quite another delivering in practice. There have been plenty of false dawns before cloud computing became the beast it has become. We've seen it described as grid computing, computing on-demand and utility computing before the phrase cloud computing took hold. It's only been widely used since late 2007, although the term was first used in a lecture by computer scientist Ramnath Chellappa.
For cloud computing to become a reality, there were other changes needed first. Most important of these was the availability of fast and cheap broadband - the early attempts at cloud computing all foundered because of the dearth of such a service. Then virtualization needed to become more widespread, as this technology is the bedrock of cloud computing.
Other factors are the declining cost in storage, the availability of cheaper devices to access cloud services and the development of automatic provisioning software.