CS8791-CC Unit-I
CS8791-CC Unit-I
UNIT I INTRODUCTION
Introduction to Cloud Computing – Definition of Cloud – Evolution of Cloud
Computing –Underlying Principles of Parallel and Distributed Computing – Cloud
Characteristics – Elasticity in Cloud – On-demand Provisioning.
(not on physical disc), while some others also cannot be played without being
connected.
➢ Some industry observers expect cloud computing to keep increasing in popularity
in coming years.
➢ The Chromebook is one example of how all personal computers might evolve in
the future under this trenddevices with minimal local storage space and few local
applications besides the web browser.
Advantages of Cloud Computing
There are many advantages of cloud computing, some of them are explained as
follows.
Improved accessibility : The cloud computing provides efficient access to services
and resources from anywhere, at any time, on any device.
Optimum Resource Utilization : Servers, storage and network resources are better
utilized in the cloud environment as they are shared among multiple users, thus it cut
down the wastage of resources.
Scalability and Speed : The cloud computing provides high scalability where
capacity of hardware, software or network resources can be easily increased or
decreased based on demand. In this, organizations do not have to invest money and
time behind buying and setting up the hardware, software and other resources
instead, they can easily scale up or scale down their resources or services running on
cloud as per demand with the rapid speed of access.
Minimizes licensing Cost of the Softwares : The remote delivery of software
applications saves licensing cost such that users do not need to buy or renew
expensive software licenses or programs.
Less personnel training : The users of cloud do not need any personal training to
deploy or access the cloud services as the self-service portals of cloud used to have
user friendly GUIs where anyone can work with cloud services easily.
Flexibility of work practices : Cloud computing provides freedom of access to their
users such that the employees can work more flexibly in their work practices. The
flexibility of access to the cloud data allow employees to work from home or on
holiday through internet.
Sharing of resources and costs : The cloud computing fulfills the requirement of
users to access resources through a shared pool which can be scaled easily and rapidly
to any size. The sharing of resources saves huge cost and makes efficient utilization of
the infrastructure.
Fig:1.1
1) Software-as-a-Service (SaaS)
• SaaS is known as 'On-Demand Software'.
• It is a software distribution model. In this model, the applications are hosted by a
cloud service provider and publicized to the customers over internet.
• In SaaS, associated data and software are hosted centrally on the cloud server.
• User can access SaaS by using a thin client through a web browser.
• CRM, Office Suite, Email, games, etc. are the software applications which are provided
as a service through Internet.
• The companies like Google, Microsoft provide their applications as a service to the
end users.
Advantages of SaaS
• SaaS is easy to buy because the pricing of SaaS is based on monthly or annual fee and
it allows the organizations to access business functionalities at a small cost, which is
less than licensed applications.
• SaaS needed less hardware, because the software is hosted remotely, hence
organizations do not need to invest in additional hardware.
• Less maintenance cost is required for SaaS and do not require special software or
hardware versions.
Disadvantages of SaaS
• SaaS applications are totally dependent on Internet connection. They are not usable
without Internet connection.
• It is difficult to switch amongst the SaaS vendors.
2) Platform-as-a-Service (PaaS)
• PaaS is a programming platform for developers. This platform is generated for the
programmers to create, test, run and manage the applications.
• A developer can easily write the application and deploy it directly into PaaS layer.
• PaaS gives the runtime environment for application development and deployment
tools.
• Google Apps Engine(GAE), Windows Azure, SalesForce.com are the examples of PaaS.
Advantages of PaaS
• PaaS is easier to develop. Developer can concentrate on the development and
innovation without worrying about the infrastructure.
• In PaaS, developer only requires a PC and an Internet connection to start building
applications.
Disadvantages of PaaS
• One developer can write the applications as per the platform provided by PaaS
vendor hence the moving the application to another PaaS vendor is a problem.
3) Infrastructure-as-a-Service (IaaS)
• IaaS is a way to deliver a cloud computing infrastructure like server, storage, network
and operating system.
• The customers can access these resources over cloud computing platform i.e Internet
as an on-demand service.
• In IaaS, you buy complete resources rather than purchasing server, software,
datacenter space or network equipment.
• IaaS was earlier called as Hardware as a Service (HaaS). It is a Cloud computing
platform based model.
• HaaS differs from IaaS in the way that users have the bare hardware on which they
can deploy their own infrastructure using most appropriate software.
Advantages of IaaS
• In IaaS, user can dynamically choose a CPU, memory storage configuration according
to need.
• Users can easily access the vast computing power available on IaaS Cloud platform.
Disadvantages of IaaS
• IaaS cloud computing platform model is dependent on availability of Internet and
virtualization services.
2. Evolution of Cloud Computing(Discuss about the evolution of Cloud
Computing.)(or)Formulate stage by stage Evolution of cloud with neat sketch
and formulate any three benefits, drawback achieved by it in the banking and
insurance sectors.(Nov/Dec 2021)(May-2022)(Nov/Dec 2022)
Evolution of Cloud Computing:
The cloud computing becomes very popular in short span of time along with
delivery of prominent and unique benefits which were never before. Therefore, it is
important to understand evaluation of cloud computing. In this section we are going to
understand the evolution of cloud computing with respect to hardware, internet,
protocol, computingand processing technologies.
Evolution of Hardware:
a) First-Generation Computers : The first-generation computing hardware called Mark
and Colossus, which was used for solving the binary arithmetic. It was developed in 1930
which became foundation for programming languages, computer processing and
terminologies. The first generation of computer was evolved with second version in 1943
at Harvard university which was an electromechanical programable computer by mark
and colossus. It was developed using vacuum tubes and hardwire circuits where punch
cards were used to stored data.
b) Second-Generation Computers : The second-generation computing hardware
called ENIAC (Electronic Numerical Integrator and Computer) builded in 1946, which
was capable to solve range of computing problems. It was capable to perform one lakh
calculations per seconds. It was composed of thermionic valves, transistors and circuits.
c) Third-Generation Computers : The Third-generation computers were produced
in1958 using integrated circuits (IC’s). The first mainframe computer by IBM was
developed in this era. The IBM 360 has got more processing and storage capabilities due
to the integrated circuit. The minicomputer was also developed in this era. At the later
stage, intel has released first commercial microprocessor called intel 4004 which has
multiple transistors integrated on a single chip to perform processing at faster speed.
d) Fourth-Generation Computers : The fourth-generation computer have introduced
microprocessors with single integrated circuits and random-access memory for
performing execution of millions of instructions per seconds. In this phase IBM have
developed an personal computers in 1981 along with LSI and VLSI Microchips.
Evolution of Internet and Protocols
The evolution of internet has begun in 1930 with the concept of MEMEX for storing
books records and communication. In 1957 Soviet Union have launched the first satellite
to create Advanced Research Project Agency (ARPA) for US military. The internet was
firstly introduced with the creation of ARPANET in 1967 where they have used internet
message processors (IMP) at each site for communication. In ARPANET, initially host to
host protocols were used for communication which were evolved with application
protocols like FTP and SMTP in 1983.
ARPANET has introduced a flexible and powerful TCP-IP protocol suit which is
used over the internet till today.
The internet protocol had initial version IPV4 which again evolved with new
generation IPV6 protocol. Microsoft had developed a Windows 95 operating system with
integrated browser called Internet Explorer along with supporting dial-up TCP/IP
protocols.
The first web server work on hypertext transfer protocol released in 1996
followed by various scriptings supported web servers and web browsers.
Evolution of Computing Technologies
✓ Few decades ago, the popular computing technology for processing a complex
and large computational problem was “Cluster computing”.
✓ It has group of computers were used to solve a larger computational problem
as a single unit.
✓ It was designed such a way that the computational load used to divide in to
similar unit of work and allocated across multiple processors which is balanced
across the several machines.
✓ The grid computing is nothing but the group of interconnected independent
computers intended to solve a common computational problem as a single unit.
✓ So further, grid computing is evolved with the cloud computing where
centralized entity like data centers is used to offer different computing services
to others which is similar to grid computing model.
✓ The cloud computing becomes more popular with the introduction of
“Virtualization” technology.
✓ The Virtualization is a method of running multiple independent virtual
operating systems on a single physical computer. It saves hardware cost due to
Fig.:Flynn’sClassificationforparallelcomputers
Single-instruction, single-data (SISD) systems
An SISD computing system is a uniprocessor machine capable of executing a single
instruction, which operates on a single data stream. (in figure 2)
In SISD, machine instructions are processed sequentially; hence computers adopting this
model are popularly called sequential computers.
perform different operations on the same data set. Machines built using the MISD model
are not useful in most of the applications; a few machines are built, but none of them are
available commercially. They became more of an intellectual exercise than a practical
configuration.
Multiple-instruction, multiple-data (MIMD) systems
An MIMD computing system is a multiprocessor machine capable of executing multiple
instructions on multiple data sets (see Figure 5). Each PE in the MIMD model has
separate instruction and data streams; hence machines built using this model are well
suited to any kind of application. Unlike SIMD and MISD machines, PEs in MIMD machines
work asynchronously. MIMD machines are broadly categorized into shared-memory
MIMD and distributed-memory MIMD based on the way PEs are coupled to the main
memory.
Fig. 1.4.8
Distributed Memory Architecture for Parallel Computers:
In the distributed memory system, the concept of global memory is not used as each
processor uses its own internal (local) memory for computing.
• Broad network access : The cloud capabilities are available over the network which
are provisioned through a standardize network mechanisms that are used by
heterogeneous client’s platforms like thin or thick client, mobile phones, tablets, laptops,
and workstations.
• Resource pooling : The cloud service provider’s computing resources are pooled
together to serve multiple consumers using a multi-tenant model, with different physical
and virtual resources. These resources are dynamically assigned and reassigned as per
consumer demand. The examples of resources include storage, processing, memory, and
network bandwidth. These resources are provided in a location independence manner
where customer generally has no control or knowledge over the exact location of the
provided resources.
• Rapid elasticity : In cloud, the different resource capabilities can be elastically
provisioned and released automatically as per demand. To scale rapidly outward and
inward the elasticity required. To the consumers, the capabilities are available for
provisioning appears to be unlimited and can be seized in any measure at any time.
• Measured service : Cloud systems automatically control and optimize the resource use
by consumers. They are controlled by leveraging the metering capability at some level of
abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and
active user accounts). The cloud system provides a mechanism for measuring the usage
of resources for monitoring, controlling, and billing purposes. They are reported for
providing transparency for both the providers and consumers of the utilized service.
Apart from that there are some other characteristics of cloud computing are given
as follows :
a) Cloud computing mostly uses Open Source REST based APIs (Application Programmer
Interface) builded on web services that are universally available and allow users to access
the cloud services through web browser easily and efficiently.
b) Most of the cloud services are location independent which are provisioned at any time,
from anywhere and on any devices through internet.
c) It provides agility to improve the reuse of Cloud resources.
d) It provides end-user computing where users have their own control on the
resources used by them opposed to the control of a centralized IT service.
e) It provides Multi-tenancy environment for sharing a large pool of resources to the
users with additive features like reliability, scalability, elasticity, security etc.
5. Elasticity in Cloud (Explain in detail about Elasticity in cloud computing with an
example.)Nov/Dec 2020(or) Describe in detail about Elasticity in cloud and on-
demand provisioning.(May-2022)
Elasticity in Cloud
The cloud computing comprises one of the important characteristics
called “Elasticity”. The elasticity is very important for mission critical or business critical
applications where any compromise in the performance may leads to huge business loss.
So, elasticity comes into picture where additional resources are provisioned for such
application to meet the performance requirements and demands.
It works such a way that when number of user access increases, applications are
automatically provisioned the extra computing, storage and network resources like
CPU, Memory, Storage or bandwidth and when a smaller number of users are there it
will automatically decrease those as per requirement.
The Elasticity in cloud is a popular feature associated with scale-out solutions
(horizontal scaling), which allows for resources to be dynamically added or removed
when needed. It is generally associated with public cloud resources which is commonly
featured in pay-per-use or pay-as-you-go services.
The Elasticity is the ability to grow or shrink infrastructure resources (like
compute, storage or network) dynamically as needed to adapt to workload changes in the
applications in an autonomic manner.
It makes make maximum resource utilization which result in savings in
infrastructure costs overall. Depends on the environment, elasticity is applied on
resources in the infrastructure that is not limited to hardware, software, connectivity,
QoS and other policies. The elasticity is completely depending on the environment as
sometimes it may become negative trait where performance of certain applications must
have guaranteed performance.
The elasticity is mostly used in IT organizations where during the peak hours
when all employees are working on cloud (i.e. between 9 AM to 9 PM), the resources are
scaled into the highest mark while during non-peak hours when limited employees are
working (i.e. between 9 PM to 9 AM), the resources are scaled-out to lowest mark where
a discrete bill is generated for low usage and high usage which saves the huge cost.
Another example of elasticity is Indian railways train booking service called
IRCTC. Earlier during the tatkal booking period, the website used to be crashed due to
the incapability of servers to handles too many users’ requests for booking a ticket at
specific time. But nowadays it won’t happen because of elasticity provided by cloud for
the servers such a way that during the tatkal booking period the infrastructure resources
are automatically scaled in as per users request so that website never stops in between
and scaled out when a smaller number of users are there. This may lead to provide a huge
flexibility and reliability for the customers who are using the service.
remote based cloud infrastructure is used, it is then up to the cloud service provider to
manage, protect and retain data confidential.
• Limited Control: - Since the applications and services are running remotely
companies, users and third party virtual environments have limited control over the
function and execution of the hardware and software.
• Dependency and vendor lock-in: - One of the major drawbacks of cloud
computing is the implicit dependency on the provider. It is also called “vendor lock-in”.
As it becomes difficult to migrate vast data from old provider to new. So, it is advisable to
select vendor very carefully.
• Increased Vulnerability: - Cloud based solutions are exposed on the public
internet therefore are more vulnerable target for malicious users and hackers. As we
know nothing is completely secure over Internet even the biggest organizations also
suffer from serious attacks and security breaches.
The difficulty comes from the unpredictability of consumer demand, software and
hardware failures, heterogeneity of services, power management, and conflicts in signed
SLAs between consumers and service providers.
Efficient VM provisioning depends on the cloud architecture and management of
cloud infrastructures. Resource provisioning schemes also demand fast discovery of
services and data in cloud computing infrastructures. In a virtualized cluster of servers,
this demands efficient installation of VMs, live VM migration, and fast recovery from
failures. To deploy VMs, users treat them as physical hosts with customized operating
systems for specific applications. For example, Amazon’s EC2 uses Xen as the virtual
machine monitor (VMM). The same VMM is used in IBM’s Blue Cloud Resource.
In the EC2 platform, some predefined VM templates are also provided. Users can
choose different kinds of VMs from the templates. IBM’s Blue Cloud does not provide any
VM templates. In general, any type of VM can run on top of Xen. Microsoft also applies
virtualization in its Azure cloud platform.
The provider should offer resource-economic services. Power-efficient schemes
for caching, query processing, and thermal management are mandatory due to increasing
energy waste by heat dissipation from data centers. Public or private clouds promise to
streamline the on-demand provisioning of software, hardware, and data as a service,
achieving economies of scale in IT deployment and operation.
Prepared By, N.Gobinathan, AP/CSE, Page 18
IV CSE CS8791-Cloud Computing
Provisioning Methods
In case (a), Overprovisioning with the peak load causes heavy resource waste (shaded
area).
(b), Underprovisioning (along the capacity line) of resources results in losses by both
user and provider in that paid demand by the users (the shaded area above the capacity)
is not served and wasted resources still exist for those demanded areas below the
provisioned capacity.
(c), the constant provisioning of resources with fixed capacity to a declining user demand
could result in even worse resource waste. The user may give up the service by canceling
the demand, resulting in reduced revenue for the provider. Both the user and provider
may be losers in resource provisioning without elasticity.
(3) Deploying the VMs as requested. Under peak demand, this IGG interacts with another
IGG that can allocate resources from a cloud computing provider.
A grid has predefined peering arrangements with other grids, which the IGG
manages. Through multiple IGGs, the system coordinates the use of Inter Grid resources.
An IGG is aware of the peering terms with other grids, selects suitable grids that can
provide the required resources, and replies to requests from other IGGs. Request
redirection policies determine which peering grid Inter Grid selects to process a request
and a price for which that grid will perform the task.
An IGG can also allocate resources from a cloud provider. The cloud system creates
a virtual environment to help users deploy their applications. These applications use the
distributed grid resources. The InterGrid allocates and provides a distributed virtual
environment (DVE). This is a virtual cluster of VMs that runs isolated from other virtual
clusters.
A component called the DVE manager performs resource allocation and
management on behalf of specific user applications. The core component of the IGG is a
scheduler for implementing provisioning policies and peering with other gateways. The
communication component provides an asynchronous message-passing mechanism.
Received messages are handled in parallel by a thread pool.
Provisioning of Storage Resources: The data in CC is stored in the clusters of the cloud
provider and can be accessed anywhere in the world. Ex: email. For data storage,
distributed file system, tree structure file system, and others can be used. Ex: GFS, HDFS,
MS-Cosmos. This method provides a 62 convenient coding platform for the developers.
The storage methodologies and their features can be found in Table 4.8
7. Explain in detail about Challenges in Security and Data Lock –in and
Standardization.(Nov/Dec 2020)
Portability
This is another challenge to cloud computing that applications should easily be migrated
from one cloud provider to another. There must not be vendor lock-in. However, it is not
yet made possible because each of the cloud provider uses different standard languages
for their platforms.
Interoperability
It means the application on one platform should be able to incorporate services from the
other platforms. It is made possible via web services, but developing such web services
is very complex.
Computing Performance
Data intensive applications on cloud requires high network bandwidth, which results in
high cost. Low bandwidth does not meet the desired computing performance of cloud
application.
It is necessary for cloud systems to be reliable and robust because most of the businesses
are now becoming dependent on services provided by third-party.
Challenges in Cloud Computing:
Some of the challenges in cloud computing are explained as follows :
Data Protection:
The data protection is the crucial element of security that warrants scrutiny. In cloud, as
data is stored on remote data center and managed by third party vendors. So, there is a
fear of losing confidential data. Therefore, various cryptographic techniques have to be
Prepared By, N.Gobinathan, AP/CSE, Page 22
IV CSE CS8791-Cloud Computing
➢ Private clouds are designed and maintained by a single enterprise to meet the
specific needs of that enterprise.
➢ Private clouds need to set up a structure that is entirely built for a single business
cloud solutions and that are either hosted on-site or in a specific service
provider’s data center.
7. Write short notes on Hybrid cloud?
Hybrid cloud:
➢ Hybrid cloud computing is an environment that combines public clouds and
private clouds by allowing data and applications to be shared between them.
➢ A hybrid cloud is ideal for scalability, flexibility, and security.
➢ A perfect example of this scenario would be that of an organization who uses the
private cloud to secure their data and interacts with its customers using the
public cloud.
8. Write short notes on Community cloud?
Community cloud
➢ Community cloud is a cloud infrastructure that allows systems and services to be
accessible by a group of several organizations to share the information.
➢ It is a mutually shared model between organizations that belong to a particular
community such as banks, government organizations, or commercial
enterprises.
9. What is parallel computing?
➢ Processing of multiple tasks simultaneously on multiple processors is called
parallel processing. A given task is divided into multiple subtasks using a divide-
and-conquer technique, and each subtask is processed on a different central
processing unit (CPU).
10. What are the different hardware architectures for parallel processing?
• Single-instruction, single-data (SISD) systems
• Single-instruction, multiple-data (SIMD) systems
• Multiple-instruction, single-data (MISD) systems
• Multiple-instruction, multiple-data (MIMD) systems
11. What are different levels of parallelism?
Levels of parallelism are decided based on the lumps of code that can be a potential
candidate for parallelism. All these approaches have a common goal: to boost
processor efficiency by hiding latency.
• Large grain (or task level)
• Medium grain (or control level)
• Fine grain (data level)
• Very fine grain (multiple-instruction issue)
12. What is distributed computing?
A distributed system is a collection of independent computers that appears to its
users as a single coherent system. A distributed system is one in which components
located at networked computers communicate and coordinate their actions only by
passing messages.
13. What are the two architectural styles for distributed computing?
The architectural styles for distributed computing divided into two major classes:
➢ Software architectural styles
✓ The user does not manage or control the underlying cloud infrastructure, but can
specify when to request and release the needed resources.
22. Bring out the differences between private cloud and public cloud?
29. What are the main benefits of both scalability and elasticity?
Cost-effectiveness. Cloud scalability and cloud elasticity features constitute an
effective resource management strategy:
The pay-per-use model makes cloud elasticity the proper answer for sudden
surges of workload demand (vital for streaming services and marketplaces);
The pay-as-you-expand model allows to plan out gradual growth of the
infrastructure in sync with growing requirements (especially handy for ad tech
systems);
Consistent performance - scalability and elasticity features operate resources in
a way that keeps the system’s performance smooth, both for operators and
customers.
Service availability. Scalability enables stable growth of the system, while
elasticity tackles immediate resource demands.
30. What are the types of cloud scalability?
There are several types of cloud scalability:
✓ Vertical, aka Scale-Up - the ability to handle an increasing workload by adding
resources to the existing infrastructure. It is a short term solution to cover
immediate needs.
✓ Horizontal, aka Scale-Out - the expansion of the existing infrastructure with
new elements to tackle more significant workload requirements. It is a long
term solution aimed to cover present and future resource demands with room
for expansion.
✓ Diagonal scalability is a more flexible solution that combines adding and
removal of resources according to the current workload requirements. It is the
most cost-effective scalability solution by far.
31. What are the three cases of static cloud resource provisioning policies?
❖ Over provisioning with the peak load causes heavy resource waste
(shaded area).
❖ Under provisioning (along the capacity line) of resources results in losses
by both user and provider in that paid demand by the users (the shaded area above
the capacity) is not served and wasted resources still exist for those demanded
areas below the provisioned capacity.
❖ constant provisioning of resources with fixed capacity to a declining user
demand could result in even worse resource waste
32. What are the three resource-provisioning methods?(Nov/Dec 2022)
Three resource-provisioning methods are presented in the following sections.
✓ Demand-driven method provides static resources and has been used in grid
computing for many years.
✓ Event-driven method is based on predicted workload by time.
✓ Popularity-driven method is based on Internet traffic monitored