Click here to listen to podcast.

Cloud computing consists of the provision of various computing resources (such as CPU cycles, storage, etc) as an on-demand service through the internet, in a similar way to how utilities such as gas or electricity are supplied. The evolution of cloud computing has largely been driven by innovations in virtualisation technology, and increases in the availability and reliability of high-speed Internet for decreasing cost. The word "cloud" itself derives from the cloud symbol often used to illustrate the internet graphically.

Traditionally, a customer would purchase a licence from a software provider and then install and run the software directly from his own computer (or more recently, due to virtualisation, from an on-site server). Instead where the customer is using a cloud computing supplier, the software is installed and operated on the supplier's servers and the customer, for a fee, connects to and accesses the software on the supplier's server.

The customer does not need to know where these servers are located, nor require there to be a discrete server for him. Thus the service is location independent and hence "in the cloud". In addition, the end user can usually treat the software as an on-demand resource such that it can increase or decrease the number of users with minimal notice. The supplier (as opposed to the customer) is responsible for ensuring sufficient resources are available and for upgrading and refreshing the hardware and software involved.

The on-demand nature of cloud computing services is reflected in the charging model. Fees are generally, although not necessarily exclusively, billed either on a "utility basis" (per resources consumed, like electricity) or on a "subscription basis" (time based, like a magazine or newspaper), with some providers offering a flat monthly fee. Users can generally terminate the contract at any time and the services can be (but are not always) covered by service level agreements.

In summary, a cloud computing service has the following key characteristics which differentiate it from more traditional

services:

  • on-demand: the computing resources are provided on-demand, typically by the minute or the hour;
  • elastic: the system can provide/release computing resources dynamically, so a user can have as much or as little of a service as they want at any given time; and
  • fully managed by the provider: the end-user typically only requires a personal computer (or mobile device) with internet access.

Cloud computing services can be broadly divided into three categories, each of which serves a different purpose: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The distinction between these is illustrated graphically and can be seen here.

Looking briefly at each category:

Infrastructure-as-a-Service (IaaS)

Infrastructure-as-a-Service consists in "renting" computing resources such as servers, network equipment, memory, CPUs and storage from the supplier while the actual applications and software being run belong to the customer.

In practical terms, IaaS is based on the same principles as server virtualisation, using shared resources with automated load balancing and resource scaling. A significant benefit of IaaS is the speed at which additional "hardware" can be obtained, as the hardware available can be scaled up instantly by a simple request to the supplier rather than waiting for delivery and installation of additional hardware components.

IaaS can be particularly useful for customers who have volatile or infrequent requirements for processing capacity. Often such customers will have a base level of capacity to meet their ordinary day-to-day requirements but will turn to a public cloud provider to meet short-term peaks in demand (known as cloud-bursting).

Platform-as-a-Service (PaaS)

Platform-as-a-Service consists in providing a set of software and product development tools (the "platform") hosted in the "cloud" (i.e. on the supplier's infrastructure) on which applications can be developed and executed. Facilities provided include things like database management, security, and workflow management. End-users such as software developers can create  applications on this platform over the internet, and then deploy them to customers from that platform.

Thus, PaaS can facilitate the rapid deployment of applications while avoiding the cost and complexity of buying and managing the underlying hardware and software layers. This can provide a significantly quicker route to market for a new application than a traditional development route.

Software-as-a-Service (SaaS)

Software-as-a-Service allows customers to avoid purchasing servers, software and network equipment in order to use a particular software application. Instead, these are acquired and run directly on the supplier's infrastructure, and the customer simply purchases use of the software as a fully outsourced service, typically with no or little customisation for the customer possible.

This service is generally billed on a utility basis and therefore the cost typically reflects the level of activity. To date, SaaS has tended to be the most immediately visible type of cloud computing. Well-known examples of SaaS include Google Apps and Saleforce's CRM offering. While initially regarded as most useful for SMEs, this has changed with larger organisations now deploying SaaS implementations of the more standardised applications.

Benefits and potential issues

In theory, cost savings are one of the main perceived benefits of cloud computing. End users can avoid capital expenditure to acquire hardware, software and related services and instead pay only for what they use. The sharing of computing power among multiple users can improve utilisation rates, and lower overheads and infrastructure costs should result from the economies of scale of the supplier and the sharing of resources between multiple users.

However, the cost savings aspects can sometimes be finely balanced. For example, one additional cost of a cloud computing model is the need to have an internet connection with sufficient bandwidth and reliability to support the frequent transfer of data which is typically required between the cloud and the end-user. This requirement is sometimes overlooked.

Other perceived benefits are that cloud computing infrastructures offer significant scalability, disaster recovery, and reliability (uptime), as well as giving immediate access to a broad range of applications. In some cases, cloud computing solutions may also offer better security practices than on-site servers as the relevant practices have been developed and analysed in more detail initially, and are then regularly monitored and audited by an independent third party.

However, end-users usually do not physically possess or control the storage of their data (although it may be that data can be backed up to a user-owned storage device) with responsibility for their data resting with the supplier. Consequently, end-users can lose control over their data or even, if the supplier experiences problems, may not be able to access their data at all. This can pose an additional risk for end users which it can be difficult to mitigate cost effectively.

Key negotiation points

Overall, the key issue for a customer is to ensure that it does adequate due diligence on a particular cloud computing offering and supplier to ensure that it understands all the risks involved (and potential mitigations). Often, suppliers will seek to offer standard, click-wrap style legal terms for cloud computing solutions. These require careful review and, where they do not meet the customer's needs, a degree of negotiation. Typical issues include:

  • when and how the customer can have access to its data during the contract, and on termination
  • what service levels are provided (especially in relation to availability, error correction and user support), and what remedies are available if these are not met, bearing in mind the likely impact on the customer's business if they are missed
  • what (if any) notice the supplier must give of changes in price
  • how easily the customer can flex its demand up and down
  • how easily the customer can terminate and, on termination, what exit assistance it receives from the supplier to move the relevant service to another supplier or in-house

It is not uncommon for suppliers to refuse to negotiate their standard terms and conditions. In those cases, a customer must identify the relevant risks arising under them and then either manage or mitigate those risks or forego the transaction.

Overall and despite its increased prominence, it is important to remember that cloud computing is not the only option for companies sourcing new IT solutions. Ultimately, companies need to choose the IT solution (whether cloud, outsourced, "on premises" or in-house) that is right for its business needs, and to ensure that each of its chosen solutions work together effectively. Typically, the right choice will vary by solution type and organisation. Hence, key disciplines for the customer will be strategy planning and risk assessment; for the supplier, they will be understanding its product offering and its position within the market, including a realistic appraisal of its strengths and weaknesses.