3.9.Cloud computing architecture
Cloud computing is basically separated into two parts: front end and back end [15]. The internet connects both these parts together to form a cloud computing system. The front end deals with the customer’s interaction with the system and it consists of the client’s computer and application needed to operate the cloud, whereas the back end is nothing but the cloud getting accessed in the system, which comprises of computers, servers and storage devices. The central server of the system is used to monitor traffic, manage the system and direct client demands. It is bound to certain rules and protocols and makes use of “Middleware”, a software that facilitates communication between various networked computers [15].
Figure 2. Tiers of a cloud computing design.
Figure 2 shows the different tiers of cloud computing design.
A client using a cloud system possesses computer hardware and/or software to access the specific application on the cloud, the combination of which can be designed to deliver the application instantly using cloud services [16].
A cloud application provides a “Software as a Service” (SaaS) service through the internet without actually having to install and run the application on a client’s system [16]. Some of the important characteristics of a SaaS are: it has network-based access and the software is managed over the internet, enabling operations from a central location via the internet [16].
Another important part of cloud computing is the “Platform as a Service” (PaaS). It provides a computing platform that consists of all the applications a client wants to deploy with any given cloud infrastructure. Using the PaaS, developers can control and manage all the systems and settings required to design, test and deploy any web application [17].
Lastly, the required infrastructure is provided using the “Infrastructure as a Service” (IaaS). This service is scalable and the client only has to pay for the amount he uses. Thus, cloud computing makes its customer achieve faster delivery in less cost [17].
3.10.Cloud computing security
It is important for any business choosing a cloud service provider to trust it and its system with their data. The decision of moving to a cloud system comes with its own risks: data security, VM security and other compliance issues. Hence, these three elements drive the Confidentiality, Integrity and Availability (CIA) of any cloud system. Hence, the CIA is widely treated as the convention to determine the reliability of the system under these three factors.
3.10.1.Confidentiality
Confidentiality represents the ability of a system to protect important assets and information of a business from getting disclosed to unsanctioned users. System confidentiality should be able to minimize the threat of losing a client’s data to hackers or unauthorized users. In some cases, service providers may even have fraudulent members who gain access to or want to use/corrupt a client’s data. A virtual machine network also possesses unavoidable confidentiality requirements to protect its data [18].
3.10.2.Integrity
The integrity of a system simply means that a client’s assets or information has not been altered by any unsanctioned user. It maintains the security and accuracy of the asset. To ensure such security, a system needs to be protected against webbased attacks, which are common in the cloud environment. Such attacks can easily access, edit or delete user data, virtual machine metadata and WSDL files [19].
3.10.3.Availability
Availability in the cloud service system represents the quick and rapid delivery of applications to the user. Businesses and enterprises need to maintain quick delivery of applications to their users, as downtimes (no matter how short) can cause an irrecoverable loss to an enterprise.
A general service-level agreement between a provider and a business will specify the rate or downtimes of the applications or service. It can be 99.999% or 80%. More resources can be provided to maintain this agreement [20].
3.10.4.Cloud computing usability
In order for reliable usage of the cloud, the cloud computing environment needs to consist of all the foundations and supporting devices of IT. These include networks, which can enable the smooth processing of applications and services. The Cloud Computing Environment (CCE) delivers a single point of access to the user, which can be used to access computing resources, infrastructure, services and applications. It also enables the business to respond rapidly to changes in the market or technologies [21].
The public cloud computing system includes a restricted class of servers, storage devices and networks. Amazon’s EC2 offers small, large and extra-large classes of servers, although the extra-large server seems to be of no match to any of the enterprise class servers in data centers.
To achieve powerful computational resource, one has to upgrade the system using powerful servers and CPUs to increase speed. However, this can require additional servers, which require more storage and network bandwidth. To exploit this, the applications may need to partition workloads to run on multiple instances sharing the same computer architecture. But many class applications are not suitable for such an environment and still depend on traditional methods of creating spare space to meet additional workloads. This contradicts the gains from clouds and affects its flexibility [22].
From the user’s point, cloud computing usability can be complicated as the usage of computing resources might be dependent on multiple businesses, as they own these resources which include public and private clouds and virtual resources with no enterprise control [23].
3.10.5.Cloud computing cost factor
There are several aspects of cloud projects, such as data privacy and protection, business stability of the provider, pricing structure, legal background, interoperability of the system and