WHAT IS CLOUD COMPUTING
Cloud computing is a topic that many find confusing. It isn't, though, as confusing as it sounds. In fact, most of those who claim not to understand the subject are part of the majority that use it daily.
In basic terms, cloud computing is the phrase used to describe different scenarios in which computing resource is delivered as a service over a network connection (usually, this is the internet). Cloud computing is therefore a type of computing that relies on sharing a pool of physical and/or virtual resources, rather than deploying local or personal hardware and software. It is somewhat synonymous with the term 'utility computing' as users are able to tap into a supply of computing resource rather than manage the equipment needed to generate it themselves; much in the same way as a consumer tapping into the national electricity supply, instead of running their own generator.
One of the key characteristics of cloud computing is the flexibility that it offers and one of the ways that flexibility is offered is through scalability. This refers to the ability of a system to adapt and scale to changes in workload. Cloud technology allows for the automatic provision and deprovision of resource as and when it is necessary, thus ensuring that the level of resource available is as closely matched to current demand as possible. This is a defining characteristic that differentiates it from other computing models where resource is delivered in blocks (e.g., individual servers, downloaded software applications), usually with fixed capacities and upfront costs. With cloud computing, the end user usually pays only for the resource they use and so avoids the inefficiencies and expense of any unused capacity.
However, the advantages of cloud computing are not limited to flexibility. Enterprise can also benefit (in varying degrees) from the economies of scale created by setting up services en masse with the same computing environments, and the reliability of physically hosting services across multiple servers where individual system failures do not affect the continuity of the service.
There is also great choice in the level of security and management required in cloud deployments, with an option to suit almost any business:
A public cloud, for example, is a cloud in which services and infrastructure are hosted off-site by a cloud provider, shared across their client base and accessed by these clients via public networks such as the internet. Public clouds offer great economies of scale and redundancy but are more vulnerable than private cloud setups due their high levels of accessibility.
Private clouds on the other hand use pooled services and infrastructure stored and maintained on a private network - whether physical or virtual - accessible for only one client. The obvious benefits to this are greater levels of security and control. Cost benefits must be sacrificed to some extent though, as the enterprise in question will have to purchase/rent and maintain all the necessary software and hardware.
The final cloud option is a hybrid cloud and this, as the name suggests, combines both public and private cloud elements. A hybrid cloud allows a company to maximise their efficiencies; by utilising the public cloud for non-sensitive operations while using a private setup for sensitive or mission critical operations, companies can ensure that their computing setup is ideal without paying any more than is necessary.
Moving away from deployment models, broadly speaking there are 3 models of cloud computing which describe the service on offer; these are Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).
As with the other cloud computing categories, IaaS refers to the delivery of virtualised computing resource as a service across a network connection. IaaS specifically deals with hardware - or computing infrastructure - delivered as a service. Offerings include virtualised server space, storage space, network connections and IP addresses. The resource is pulled from a pool of servers distributed across data centres under the provider's control, the user is then granted access to this resource in order to build their own IT platforms. IaaS can provide enterprises with great business benefits.
PaaS is an extension of IaaS and describes a category of cloud computing that provides developers with environments in which to build applications, over the internet. In addition to the fundamental computing resource supplied by the hardware in an IaaS offering, PaaS models also include the software and configuration (often known as the solution stack) required to create the platform on which clients can create their applications. PaaS packages can be tailored to meet individual user needs; they can cherry pick the features of the service that are relevant to them while disregarding those that are not. PaaS provides a number of benefits to enterprises, including simplifying the development process for geographically split development teams.
SaaS is arguably the most common of the cloud computing variations; it's the term used to describe a software delivery model in which applications are hosted (usually by a provider) and made available to customers over a network connection. Many people make use of SaaS without realising it as many web applications are delivered in this way; Gmail, Flickr, Twitter and Facebook are all popular examples of SaaS. Enterprise users also frequently make use of SaaS with many popular accounting, invoicing, sales, communications and CRM systems being delivered this way.