What is Cloud Computing?
We use it everyday and we have been doing this for years. The most basic form of Cloud Computing might be simple web applications that are accessible through your browser but not installed on your computer: they live on another server your computer communicates to. In fact, Armbrust et al. (1) say Cloud Computing 'refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services' (p.4). But how do servers deal with the massive amount of queries they usually receive?
Clustering
'For many years supercomputer was the leader […] but due to some of the problems faced in the area of science, engineering, and business, which could not be effectively dealt with using' this technology 'they were replaced with clusters' which 'also offered a very cheap way for gaining access to potentially huge computing power' (2:p.477). When a number of machines all provided with an installed and running operating system and with a certain application installed and running, if they get connected one to each other, then it is possible to set up a cluster of servers. Namely, 'a cluster is a collection of parallel or distributed computers which are interconnected among themselves using high-speed networks […]. They work together in the execution of com- pute intensive and data intensive tasks that would be not feasible to execute on a single computer'(3:p.477).
For example, database applications are usually runned on clusters to secure reliability, safety and constant access to data. This is because – obviously – a team of servers running ensemble will probably perform much better than one on its own:
a cluster will be able to continue operating even if one of the machines fails, by isolating the node (4:p.58) (so, the system detects when a component server stops functioning);
it is very unlikely to lose or damage data as it is shared and it gets protected when a node appears to be malfunctioning (5);
it will be able to deal with large amounts of queries and respond much faster: the user does not connect directly to a certain server inside the shell but connects to the whole cluster, which will allocate the user's query to most convenient node (6:pp.477-478). Only then, the server will de facto receive the request and respond to the user.
However, this intelligent internal organisation and data parsing mechanism needs a manager unit to coordinate the servers.
Management through virtualization
In order to understand how coordination happens inside the cluster shell, it is vital to familiarise with the concept of virtualization. Using a Virtual Machine to create an instance of an operating system to run on top of the native OS installed on local hardware would be a homemade instance of virtualization. The key idea underlying virtualization is that hardware, OS and application can be separated. (7) So, generally software does not necessarily need to be installed on the same computer which it runs on.
As regards the cluster, all the servers are provided with a hypervisor – this usually sits on top of the hardware level and below the OS layer and its main feature is to run virtual machines (8) – while the manager unit will run an operating system on virtual machines cluster-wide.
In this structure it is easier to see why every node plays its part harmoniously: they all run the same virtual OS, managed through the master node.
SaaS PaaS or IaaS?
Authors (9, 10, 11) agree on classifying Cloud Computing into three delivery models:
Software as a Service (SaaS)
which consists of selling to customers access to a software hosted in a company's machine. The service provided is a complete and ready-to-use application.
Platform as a Service (PaaS)
which consists of renting a developing environment where the customer has to deal exclusively with the application and data, all the rest is provided by the hosting company. So, namely, renting a cluster of servers including the manager unit.
Infrastructure as a Service (IaaS)
which consists of renting servers' utility power and storage only. This would mean renting a cluster of servers excluding the manager unit. In this case, in fact the customer will have to deal with application and data as well as operating system and runtime. Therefore, this is the only case where the user will make direct use of virtualization to operate in the infrastructure environment: 'pools of hypervisors within the cloud operational system can support large numbers of virtual machines and the ability to scale services up and down according to customers' varying requirements' (12).
Advantages of the Cloud
Recent research (13) has come up with three critical features of Cloud Computing, that are completely new:
'The illusion of infinite computing resources available on demand, thereby eliminating the need for Cloud Computing users to plan far ahead for provisioning;
The elimination of an up-front commitment by Cloud users, thereby allowing companies to start small and increase hardware resources only when there is an increase in their needs;
The ability to pay for use of computing resources on a short-term basis as needed (e.g., processors by the hour and storage by the day) and release them as needed, thereby rewarding conservation by letting machines and storage go when they are no longer useful.'(p.4)