Although hype and conjecture has surrounded the concept of cloud computing for a long time now it is more than just a buzz term. With the increased uptake in portable devices such as smartphones, tablets and even laptops in the private consumer sector, as well as the resultant shift to home based work, business on the move and the use of personal devices in the workplace, the need for centralised, virtualised computing resources has surged in the last couple of years. In fact many of us use some form of cloud computing every day without really acknowledging it, whether it be webmail or online gaming.
What is Cloud Computing
In a very general sense, cloud computing describes any scenario where the user (the cloud client) is accessing computing resource from a virtualised environment (the cloud) via an internet connection. It can be though of in contrast to use of computing resource on the user's local machine, local network or defined physical machines on other networks. Cloud services generally work by providers pooling together extensive physical resources (e.g., multiple servers across multiple data centers) to create a service which users can tap into as and when they need it (i.e., on demand) without the need to install anything locally, hardware or software.
Where a service is chargeable they can be offered on a pay as you go basis where the user only pays for what they actually consume, much like a utility like electricity where consumers can tap into the national grid (analogous to the internet) and pay simply for what they use.
There are a variety of different services that can be propositioned under the cloud computing umbrella term and that meet the above definitions, but they are broadly classified into three camps, depending on the provisioning of hardware and software resource.
Infrastructure as a Service (IaaS)
Usually shortened to IaaS, this classification of cloud computing incorporates services which offer virtualised physical computing resource, that is, resource such as server space, bandwidth, networking.
Salient examples of IaaS offerings include cloud hosting where websites are hosted on virtual server partitions which draw physical resource from a pool of multiple servers across multiple data centers. This idea can offer specific advantages such as
- cost effective scalability - hardware resource can be accessed on demand so that the client only pays for what they use and they are not restricted by capacity
- reliability - there is no single point of server failure as data is also duplicated (backed up) across multiple servers. If one server fails, the web site will not go offline
The areas of IaaS and cloud hosting can also include the concept of Virtual Data Centers (VDC) where a virtualised network of servers or computers is made available to the user instead of simply server space.
Platform as a Service (PaaS)
PaaS describes a proposition which includes the software that is required to create an operating environment which can be used by the client to create their own applications. In other words PaaS will include tools such as a solution stack - operating system, server-side scripting environment, database support etc - in addition to the pooled computing hardware resource as detailed above. Cloud clients often have control over what tools are installed within their platforms, sometimes from a restricted list, and how they are configured but all the building blocks are supplied by the provider.
Cloud Hosting can again be used as an example of PaaS as many of the packages on the market will provide the user with, not just the virtual server, but the entire platform such as the solution stack that is required to build and host a website. Other examples of PaaS include test and development environments for software builds. As with SaaS below, these services offer their clients greater opportunities for collaboration and location independence when they are being used to build applications.
Software as a Service (SaaS)
This is probably the most familiar form of cloud computing to most consumers. It describes an offering where the service being accessed via the internet is an application or a software service. It is an area that many of the big software and internet companies such as Microsoft, Google and Apple are flourishing in as we all seem to be following the trend, moving away from locally installed (and sometimes incompatible) software to applications that are being run in the cloud, accessed through an internet browser.
Obvious examples of SaaS include Google Docs and Microsoft Office 365 (which can integrate with the traditional installation of the software), but this class of cloud computing also encompasses other services such as webmail and online gaming which are accessed entirely online.
There are a number of cloud computing categories which fall within SaaS and follow the same naming convention such as Desktop as a Service (or Virtual Desktops, where a virtual version of a computer's desktop is stored and accessed in the cloud) and Test Environment as a Cloud (TEaaS, involving a central hosted test environment for the testing of software).
Key drivers behind the growth in SaaS are the facts that cloud based applications can be used from any physical location as long as there is an internet connection (ADSL or 3G for example) and across any device running any operating system. This independence from geographical and technological constraints allows personal users and workers to not only work on applications and files in any scenario but to collaborate on and share these services with few restrictions.