• No results found

Cloud Computing has been described as:

“the next natural step in the evolution of on demand information technol- ogy services and products” [266]

within the field of Distributed Systems and draws heavily on the principles and para- digm of Grid Computing. As with any service, such as public utilities, guarantees need to be in place that pledge a certain level of performance and involves resources reservation control and monitoring mechanisms for service fulfilment. There has been much confu- sion over the term Cloud Computing due to its relative infancy within Computer Science, its extensive generalised use by industry and the lack of consensus on what a Cloud really is. Many definitions have been proposed and are often confused with the Grid paradigm.

Before the relevance of QoS within Cloud Computing can be considered, a concrete definition is essential in characterising current Cloud systems. This will facilitate in re- ducing the scope of research by excluding more generalised definitions of Clouds made by self professed computing experts such as:

“using the Internet to allow people to access technology-enabled ser- vices.” [86]

Being able to categorise a Cloud by its capabilities is key to formulating a concise definition and a simple taxonomy of Cloud Computing. A general consensus is held that Clouds fall into at least one of three fundamental models, dependent on the actors involved and the services provided [80, 104, 254]. High level definitions of these three types of model are:

• Software as a Service (SaaS), defined as a provider that supplies remotely run software packages, via the Internet to consumers, on a utility based pricing model. A typical example application could be an on-line alternative to a word processor or spread sheet.

• Platform as a Service (PaaS), defined as a provider that offers an additional layer of abstraction above a virtualised infrastructure. This provides a software platform that trades off restrictions in the type of software than can be deployed in exchange for built-in scalability.

• Infrastructure as a Service (IaaS), defined as a provider that provisions compute and storage resource capacity via Virtualization allowing physical resources to be assigned and split dynamically.

These three models can be tiered on top of each other. For example a PaaS provider could make use of a third party IaaS provider or alternatively a PaaS provider could deploy and utilise their own IaaS or non-Cloud based infrastructure.

Previous tiers are obscured from the End-User and services are provided transparently, as illustrated in Figure 2.1. This allows for increased flexibility, the possibly of an open market and reductions in cost. Further detail on each model is provided in Section 2.3. Later in Section 2.4, example implementations of each type of system are discussed.

The evolution of Cloud Computing has its roots in multiple Internet related distributed system technologies and computing paradigms such as Cluster Computing, P2P, Service Computing, Utility Computing and most importantly Grid Computing.

QoS within Grids has been a major topic of interest and continues to be actively re- searched [45, 51, 143]. Research in Cloud Computing is reminiscent to the position that resource management and performance research was at in the early days of Grid Re- search [133, 172, 222], when issues were just becoming understood. Grid Computing has been defined as:

“a system that: coordinates resources that are not subject to centralised control using standard, open, general-purpose protocols and interfaces to de- liver nontrivial qualities of service” [81]

and was hailed as the next revolution in Computing Science after the creation of the Internet. Grids share many of the same goals as Cloud Computing. Thus the majority of the lessons already learnt within the research topic are highly relevant to Cloud Comput- ing and can be utilised to increase the pace of development and the rate at which research into QoS in Cloud Computing can push the evolution of the paradigm.

The motivation behind research into Grid Computing materialised from the need to manage large scale resource intensive scientific applications across multiple administra- tive domains that required many more resources than which could be provided by a single institution. Cloud Computing shares this motivation but within a new context oriented to- wards business needs rather than those of academics, for the stipulation of reliable service chains rather than the previsioning of resources for batch oriented scientific applications. This difference in application domain pushed by industry, does not mean that the scien- tific community cannot leverage Cloud Computing, far from it, as illustrated by Grid- Batch [158] a programming model for using Clouds in large scale data intensive batch applications. There is much crossover between the two paradigms and many goals are shared.

Cloud Computing will be enabled even more so through the next generation of data centre technology. The current generation of data centres are already leaning heavily towards the Virtualization of compute and storage resources, the technological foundation of a Cloud, enabling the consolidation of proprietary servers running legacy software

and provides considerable reductions in the time and effort associated with administering hardware resources. This is achieved by the creation of Virtual Machines (VM) which run on large physical servers utilising the latest hardware technology, providing the benefits of both reduced hardware maintenance costs and the minimisation of lost revenue due to downtime. These benefits and the aforementioned differences in application domain requirements between Grids and Clouds have pushed Virtualization into the lime light as a new technological requirement of the Cloud paradigm.

This has only recently become feasible because of the performance enhancements that have been made to Virtualization hardware and software technology, which have im- proved the performance frontier of VMs to nearly that of the underlying hardware they run on. Near native performance of the virtualised resources exposed within a VM has been achieved through a reduction in the overheads associated with context switching physical resources between VMs and by taking advantage of the improvements in Virtualization enhancing hardware, touted by hardware vendors such as Intel and AMD.

Using the previously defined scope, the definition of a Cloud most relevant and ap- propriate to the research topic of QoS is:

“Clouds are a large pool of easily usable and accessible virtualised re- sources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to an optimum resource utilisa- tion. This pool of resources is typically exploited by a pay-per-user model in which guarantees are offered by the Infrastructure Provider by means of customised SLA’s.” [254]

As it will become apparent later in this thesis, this definition of Cloud Computing is yet to be fully realised. The definition refers to a pay-per-user economic model that borrows heavily from the paradigm of Utility Computing. Utility computing is a:

“service provisioning model, which provides adaptive, flexible and sim- ple access to computing resources, enabling a pay-per-use model for comput- ing similar to traditional utilities such as water or electricity.” [160]

Research has already been carried out on the commercial benefits of Utility Com- puting within the Grid Economy [32, 65] and thus it is easy to envisage why such an economic model is important to Cloud providers and exploited within Cloud Computing heavily oriented towards business applications where maximising revenue is of primary concern.

2.2.1

Deployment Models

Cloud services can be used in a number of deployment configurations that have varying complexity, security implications and associated costs [104]:

• Private: Private Clouds are services or virtual infrastructure that is run and oper- ated by a single institution. It can be managed by a third party and have associated physical infrastructure that is either on or off premise. It is comparable to building and managing traditional IT infrastructure and brings the benefits of enhanced secu- rity as no multitenancy is involved. A drawback of this approach is that the benefits of multitenancy, the economy of scale and the associated cost savings, are not re- alised. Many institutions choose to adopt Cloud Computing via this deployment model when data privacy and security are of the up most importance. Healthcare is a prime example where regulatory standards govern data privacy. Similarly, juris- dictional issues can provide motivation for this deployment model where different laws for managing data across countries can impeded the use of external Cloud providers.

• Public: In Public Clouds, services and infrastructure are provided to the general public and utilises a pay-per-use leasing policy. Many institutions choose this de- ployment model to accommodate spikes in service load where large numbers of users are concerned. Provisioning resources to service these spikes in load via traditional procurement methods would incur large investments and capital expen- diture. In addition, these hardware resources would remain heavily underutilised at off peak times pertaining to inefficiencies. Thus institutions can use Public Clouds to reduce capital expenditure and operational IT costs.

• Hybrid: A Hybrid Cloud refers to the use of both Private and Public Clouds by an institution. This deployment model is opted for to provide fault tolerance and high availability. In addition, the model combines the benefits of enhanced scalability and reduced cost that public Clouds provide, with the security of private Clouds by enabling the deployment of certain sensitive applications internally.

• Community: In community Clouds several institutions share their infrastructure that implement the same terms of service and access policies. A good example is the sharing of IT resources by governments departments using Cloud technology. This deployment model can be likened to federated resources in Grids and with the formation of Virtual Organisation (VO). Federated Clouds are yet to be realised and

Community Clouds rely heavily on the use of homogeneous Cloud technologies due to a lack of standardisation.

In additional to federation, more advanced deployment models yet to be realised such as Brokering and Multi-Cloud scenarios are discussed later in Chapter 6.