IoT Module 4 Cloud Computing
IoT Module 4 Cloud Computing
Introduction:
• Cloud computing is more than traditional network computing.
• Unlike network computing, cloud computing comprises a pool of multiple resources such
as servers, storage, and network from single/multiple organizations.
• These resources are allocated to the end users as per requirement, on a payment basis.
• In cloud computing architecture, an end user can request for customized resources such as
storage space, RAM, operating systems, and other software to a cloud service provider
(CSP) as shown in Figure 10.1.
• For
example, a user can request for a Linux operating system for running an application from
a CSP; another end user can request for Windows 10 operating system from the same CSP
for executing some application.
• The cloud services are accessible from anywhere and at any time by an authorized user
through Internet connectivity.
• Gmail, Facebook, and Twitter are examples of cloud computing applications.
• Currently, many companies such as Amazon Web Service and Microsoft Azure provide
cloud services.
Cloud computing comprises a shared pool of computing resources, which are accessible
dynamically, universally, and on-demand basis by the users. This shared pool of resources includes
networks, storage, processor, and servers. These resources are accessible by multiple users through
a regular command-line terminal at the same or different time instants.
Virtualization:
• The key concept of cloud computing is virtualization.
• The technique of sharing a single resource among multiple end user organizations or end
users is known as virtualization.
• In the virtualization process, a physical resource is logically distributed among multiple
users. However, a user observes that the resource is unlimited and is dedicatedly provided
to him/her.
• Figure 10.2(a) represents a traditional desktop, where an application (App) is running on
top of an OS, and resources are utilized only for that particular application.
• On the other hand, multiple resources can be used by different end users through
virtualization software, as shown in Figure 10.2(b).
• Virtualization software separates the resources logically so that there is no conflict among
the users during resource utilization.
Advantages of virtualization
Cloud computing plays a vital role by keeping backups through virtualization. Primarily, there are
two entities in a cloud computing architecture: end users and CSP. Both end users and CSP are
benefited in several aspects through the process of virtualization. The major advantages, from the
perspective of the end user and CSP, are as follows:
Advantages for End Users
Variety:
• The process of virtualization in cloud computing enables an end user organization to use
various types of applications based on the requirements.
Availability:
• Virtualization creates a logical separation of the resources of multiple entities without any
intervention of end users.
• Consequently, the concept of virtualization makes available a considerable amount of
resources as per user requirements.
• The end users feel that there are unlimited resources present dedicatedly for him/her.
Portability:
• Portability signifies the availability of cloud computing services from anywhere in the
world, at any instant of time.
• For example, a person flying from the US to the UK still has access to their documents,
although they cannot physically access the devices on which the data is stored. This has
been made possible by platforms such as Google Drive.
Elasticity:
• Through the concept of virtualization, an end user can scale-up or scale-down resource
utilization as per requirements.
• Cloud computing is based on a pay-per-use model. The end user needs to pay the amount
based on their usage.
Advantages for CSP
Resource Utilization:
• Typically, a CSP in a cloud computing architecture acquires resources on their own or get
them from third parties.
• These resources are distributed among different users dynamically as per their
requirements.
• A segment of a particular resource provided to a user at a time instant, can be provided to
another user at a different time instant. Thus, in the cloud computing architecture,
resources can be re-utilized for multiple users.
Effective Revenue Generation:
• A CSP generates revenue from the end users based on resource utilization.
• As an example, today, a user A is utilizing storage facility from a particular CSP. The user
will release the storage after a few days when his/her requirement is complete.
• The CSP earns some revenue from user A for the utilization of the allocated storage facility.
• In the future, the CSP can provide the same storage facility to a different user, B. Again,
the CSP can generate revenue from user B for his/her storage utilization.
Types of virtualization
Based on the requirements of the users, we categorized virtualization as shown in Figure 10.3.
Hardware Virtualization:
• This type of virtualization indicates the sharing of hardware resources among multiple
users.
• For example, a single processor appears as many different processors in a cloud computing
architecture.
• Different operating systems can be installed in these processors and each of them can work
as stand-alone machines.
Storage Virtualization:
• In storage virtualization, the storage space from different entities are accumulated virtually,
and seem like a single storage location.
• Through storage virtualization, a user’s documents or files exist in different locations in a
distributed fashion.
• However, the users are under the impression that they have a single dedicated storage space
provided to them.
Application Virtualization:
• A single application is stored at the cloud end. However, as per requirement, a user can use
the application in his/her local computer without ever actually installing the application.
• Similar to storage virtualization, in application virtualization, the users get the impression
that applications are stored and executed in their local computer.
Desktop Virtualization:
• This type of virtualization allows a user to access and utilize the services of a desktop that
resides at the cloud. The users can use the desktop from their local desktop.
Cloud Models
As per the National Institute of Standards and Technology (NIST) and Cloud Computing
Standards Roadmap Working Group, the cloud model can be divided into two parts:
(1) Service model and
(2) Deployment model as shown in Figure 10.4.
Further the service model is categorized as:
a. Software-as-a-Service (SaaS),
b. Platform-as-a-Service (PaaS), and
c. Infrastructure-as-a-Service (IaaS).
On the other hand, the deployment model is further categorized as:
a. Private cloud,
b. Community cloud,
c. Public cloud, and
d. Hybrid cloud.
Service Model
The service model is depicted in Figure 10.5.
a. Software-as-a-Service (SaaS):
This service provides access to different software applications to an end user through Internet
connectivity. For accessing the service, a user does not need to purchase and install the software
applications on his/her local desktop. The software is located in a cloud server, from where the
services are provided to multiple end users. SaaS offers scalability, by which users have the
provision to use multiple software applications as per their requirements. Additionally, a user does
not need to worry about the update of the software applications. These software are accessible
from any location.
One example of SaaS is Microsoft Office 365.
b. Platform-as-a-Service (PaaS):
PaaS provides a computing platform, by which a user can develop and run different applications.
The cloud user need not go through the burden of installing and managing the infrastructure such
as operating system, storage, and networks. However, the users can develop and manage the
applications that are running on top of it.
An example of PaaS is Google App Engine.
c. Infrastructure-as-a-Service (IaaS):
IaaS provides infrastructure such as storage, networks, and computing resources. A user uses the
infrastructure without purchasing the software and other network components. In the infrastructure
provided by a CSP, a user can use any composition of the operating system and software.
An example of IaaS is Google Compute Engine.
Deployment Model:
a. Private Cloud:
This type of cloud is owned explicitly by an end user organization. The internal resources of the
organization maintain the private cloud.
b. Community Cloud:
This cloud forms with the collaboration of a set of organizations for a specific community. For a
community cloud, each organization has some shared interests.
c. Public Cloud:
The public cloud is owned by a third party organization, which provides services to the common
public. The service of this cloud is available for any user, on a payment basis.
d. Hybrid Cloud:
This type of cloud comprises two or more clouds (private, public, or community).
Cloud Implementation
Cloud simulation:
There is a requirement for simulating the system through a cloud simulator before real
implementation. There are many cloud simulators that provide pre-deployment test services for
repeatable performance evaluation of a system. Typically, a cloud simulator provides the following
advantages to a customer
• Pre-deployment test before real implementation
• System testing at no cost
• Repeatable evaluation of the system
• Pre-detection of issues that may affect the system performance
• Flexibility to control the environment
Currently, different types of cloud simulators are available. A few cloud simulators are listed
here:
I.CloudSim
a) Description: CloudSim is a popular cloud simulator that was developed at the University
of Melbourne. This simulator is written in a Java-based environment. In CloudSim, a user
is allowed to add or remove resources dynamically during the simulation and evaluate the
performance of the scenario.
b) Features: CloudSim has different features, which are listed as follows:
1) The CloudSim simulator provides various cloud computing data centers along with
different data center network topologies in a simulation environment.
2) Using CloudSim, virtualization of server hosts can be done in a simulation.
3) A user is able to allocate virtual machines (VMs) dynamically.
4) It allows users to define their own policies for the allocation of host resources to
VMs.
5) It provides flexibility to add or remove simulation components dynamically.
6) A user can stop and resume the simulation at any instant of time.
II. CloudAnalyst
a) Description: CloudAnalyst is based on CloudSim. This simulator provides a graphical
user interface (GUI) for simulating a cloud environment, easily. The CloudAnalyst is
used for simulating large-scale cloud applications.
b) Features:
1 The CloudAnalyst simulator is easy to use due to the presence of the GUI.
2 It allows a user to add components and provides a flexible and high level of
configuration.
3 A user can perform repeated experiments, considering different parameter values.
4 It can provide a graphical output, including a chart and table.
III. GreenCloud
a. Description: GreenCloud [2] is developed as an extension of a packetlevel network
simulator, NS2. This simulator can monitor the energy consumption of different
network components such as servers and switches.
b. Features:
1 GreenCloud is an open-source simulator with user-friendly GUI.
2 It provides the facility for monitoring the energy consumption of the network
and its various components.
3 It supports the simulations of cloud network components.
4 It enables improved power management schemes.
5 It allows a user to manage and configure devices, dynamically, in simulation.
Sensor-Cloud: Sensors-as-a-Service
• In a sensor-cloud, virtualization of sensors plays an essential role in providing services to
multiple users.
• The main aim of sensor-cloud infrastructure is to provide an opportunity for the common
mass to use Wireless Sensor Networks (WSNs) on a payment basis. Similar to cloud
computing, sensor-cloud architecture also follows the pay-per-use model.
Importance of sensor-cloud:
• The sensor-cloud infrastructure is based on the concept of cloud computing, in which a
user application is served by a set of homogeneous or heterogeneous sensor nodes.
• These sensor nodes are selected from a common pool of sensor nodes, as per the
requirement of user applications.
• Using the sensor-cloud infrastructure, a user receives data for an application from multiple
sensor nodes without owning them.
• Unlike sensor-cloud, if a user wants to use traditional WSN for a certain application, he/she
has to go through different pre-deployment and post-deployment hurdles. Figures 10.6
depicts the usage of sensor nodes using traditional WSN and sensor cloud infrastructure
Figure 10.6 Traditional WSN versus sensor-cloud