Cloud Computing Unit-1 Notes
Cloud Computing Unit-1 Notes
Unit – 1
1. Definition:
NIST: National Institute of Standards and Technology
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a
shared pool of configurable computing resources (e.g., networks, servers, storage, applications,
and services) that can be rapidly provisioned and released with minimal management effort or
service provider interaction. This cloud model is composed of five essential characteristics, three
service models, and four deployment models.
This concept dates back as early as 1961, when Professor John McCarthy suggested that
computer time-sharing technology might lead to a future where computing power and even
specific applications might be sold through a utility-type business model. This idea became very
popular in the late 1960s, but by the mid-1970s the idea faded away when it became clear that
the IT-related technologies of the day were unable to sustain such a futuristic computing model.
However, since the turn of the millennium, the concept has been revitalized. It was during this
time of revitalization that the term cloud computing began to emerge in technology circles.
1.2 More about cloud computing
1.2.1 Computing over the Internet
Gordon Bell, Jim Gray, and Alex Szalay have advocated:“Computational science is changing to
be data-intensive. Supercomputers must be balanced systems, not just CPU farms but also
petascale I/O and networking arrays.”In the future, working with large data sets will typically
mean sending the computations (programs) to the data, rather than copying the data to the
workstations. This reflects the trend in IT of moving computing and data from desktops to large
data centers, where there is on-demand provision of software, hardware, and data as a service.
This data explosion has promoted the idea of cloud computing. Cloud computing has been
defined differently by many users and designers. For example, IBM, a major player in cloud
computing, has defined it as follows:“A cloud is a pool of virtualized computer resources. A
cloud can host a variety of different workloads, including batch-style backend jobs and
interactive and user-facing applications.”Based on this definition, a cloud allows workloads to be
deployed and scaled out quickly through rapid provisioning of virtual or physical machines. The
cloud supports redundant, self-recovering, highly scalable programming models that allow
workloads to recover from many unavoidable hardware/software failures. Finally, the cloud
system should be able to monitor resource use in real time to enable rebalancing of allocations
when needed
In cloud computing, the user has to pay only for the service or the space they have utilized. There
is no hidden or extra charge which is to be paid. The service is economical and most of the time
some space is allotted for free.
Economical
It is the one-time investment as the company (host) has to buy the storage and a small part of it
can be provided to the many companies which save the host from monthly or yearly costs. Only
the amount which is spent is on the basic maintenance and a few more expenses which are very
less.
Security
Cloud Security, is one of the best features of cloud computing. It creates a snapshot of the data
stored so that the data may not get lost even if one of the servers gets damaged.
The data is stored within the storage devices, which cannot be hacked and utilized by any other
person. The storage service is quick and reliable.
3. Cloud Elasticity:
The Elasticity refers to the ability of a cloud to automatically expand or compress the
infrastructural resources on a sudden-up and down in the requirement so that the workload can
be managed efficiently. This elasticity helps to minimize infrastructural cost. This is not
applicable for all kind of environment, it is helpful to address the only those scenarios where
the resources requirements fluctuate up and down suddenly for a specific time interval. It is not
quite practical to use where persistence resource infrastructure is required to handle the heavy
workload. It is most commonly used in pay-per-use, public cloud services. Where IT managers
are willing to pay only for the duration to which they consumed the resources.
Example:
Consider an online shopping site whose transaction workload increases during festive season
like Christmas. So for this specific period of time, the resources need spike up. In order to
handle this kind of situation, we can go for Cloud-Elasticity service. As soon as the season
goes out, the deployed resources can then be requested for withdrawal.
4. On-demand provisioning
Cloud services are on-demand; that is, service consumers can automatically request the service
based on their needs, without human interaction with the service provider. Assigning resources is
done dynamically based on the consumers' needs. The on-demand model evolved to overcome
the challenge of being able to meet fluctuating resource demands efficiently. Because demand
for computing resources can vary drastically from one time to another, maintaining sufficient
resources to meet peak requirements can be costly. This is one of the many key characteristics of
cloud computing that makes it appealing for cloud users.
5.Evolution of cloud computing
5.1. From Mainframe to Personal Computers-
In 1969, 4004 microprocessor was introduced and in 1971, 8008 was introduced by Intel. Then
Personal Computer (PC) came in to existence in the 1970s. In 1970s, IBM released an operating
system called VM that allowed administrators on their System/370 mainframe systems to have
multiple virtual systems, or Virtual Machines (VMs) on a single machine. The VM operating
system extended the shared access of a mainframe further at large scale by offering many
separate computing environments in the same physical machine. Although much more
sophisticated than 1970s, most of the basic functions of any virtualization software available
nowadays can be compared with this early VM OS. Every VM had operating systems,
memory, processor, storage, networking and I/O devices. Virtualization became a key factor
and it led the path to biggest evolutions in ICT. MITS in 1975 developed the Altair 8800 as
construction set, which was one of the first Home Computers, which for Microsoft has developed
a BASIC Interpreter. More and more Home Computers from leading companies like Apple were
launched. In 1981 IBM joined this market segment and floated the name Personal Computer
(PC). Microsoft developed the operating system for the IBM-PC, which emerged as the
standard platform, with which many PC manufacturers were compatible with. Since then the
development and penetration of PC‘s into human life gained pace, even faster processors were
introduced, graphical user interfaces were established, human – computer interaction became
graceful and the continuing miniaturization eventually led to the development of laptops and
mobile devices.
5.2 From Personal Computers to Internet
Another important milestone was the development of the Internet. Internet took the world in its
stride. Internet has its roots in a research project at the Advanced Research Projects Agency
(ARPA). A system to communicate among nodes was developed in 1969. It could work even one
of its nodes failed, on behalf of the US ministry of defense. Consequently the ARPAnet was
developed out of this project. In 1981 around 200 institutions were connected to this network.
This network of networks was soon called Internet. At the start its purpose was to share
information on ongoing scientific projects and military information between two parties. but later
on it became boon for the world. So many applications were developed which attracted common
people. E-mail, newsgroup, Telnet were common applications of interest for general
people.However, the Internet penetrated in common man life with the introduction of World
Wide Web by Tim Berners-Lee in 1989. ―Tim Berners-Lee formed an information
management system for CERN, a Hypertext based, a network structure, where information
entities are accessed through logical references, named as hyperlinks. At that time hyper
textual semantics was in the form of Table of contents or cross references. The modern
hypertext model can be linked to Vannevar Bush(1945). With the introduction of the web
browser Internet Explorer, the World Wide Web finally gained great popularity. In the 1990s,
telecommunications companies took this revolution to new heights. As the users started growing,
instead of developing more physical infrastructure, they enhanced their services from dedicated
point –to-point data connection to Virtual private network connections with the same service
value as before but at a reduced cost. This change allowed the telecommunication companies to
shift data load as required for maintaining better network balance and more control over
bandwidth usage. Meanwhile, virtualization for home computers started intensively, and as the
Internet became more accessible, the next logical step was to take virtualization online. As the
internet as well as online applications grew, the fluctuation in resource demand increased
according to workload. The solution adopted was ―Virtualization. Virtualization led to shared
hosting environments, virtually dedicated environments for applications using the same types of
functionality provided by the VM OS in the 1950s. This kind of environment saved on
infrastructure costs and minimized the amount of actual hardware organizations needed to
achieve desired performance. With introduction to new technologies like Java, it became
possible to develop more and more elaborate, interactive websites. Due to this development, we
have now so many online shopping websites, reservation sites, Blogs and a lot. Now a days
almost all organizations are going online, accepting requests from customers online and replying
online too. Some examples of these applications are Railway reservation, Electric fault
reporting, and social interaction sites like Facebook, Twitter, Whatapp etc. Talking about
software services, Cloud servers are offering softwares for common use also, like word
processors etc. This deployment concept, usually referred to Software-as-a-Service gained
popularity around the year 2000. Similar deployment concepts were developed for the providing
high computing power and resources for Academia in the form of Grid Computing in the
beginning of the 1990 .
On the HTC side, peer-to-peer (P2P) networks are formed for distributed file sharing and content
delivery applications. A P2P system is built over many client machines. Peer machines are
globally distributed in nature. P2P, cloud computing, and web service platforms are more
focused on HTC applications than on HPC applications. Clustering and P2P technologies lead to
the development of computational grids or data grids.
6.1.2High-Throughput Computing
The development of market-oriented high-end computing systems is undergoing a strategic
change from an HPC paradigm to an HTC paradigm. This HTC paradigm pays more attention to
high-flux computing. The main application for high-flux computing is in Internet searches and
web services by millions or more users simultaneously. The performance goal thus shifts to
measure high throughput or the number of tasks completed per unit of time. HTC technology
needs to not only improve in terms of batch processing speed, but also address the acute
problems of cost, energy savings, security, and reliability at many data and enterprise computing
centers. When the Internet was introduced in 1969, Leonard Klienrock of UCLA declared: “As
of now, computer networks are still in their infancy, but as they grow up and become
sophisticated, we will probably see the spread of computer utilities, which like present electric
and telephone utilities, will service individual homes and offices across the country.” Many
people have redefined the term “computer” since that time. In 1984, John Gage of Sun
Microsystems created the slogan, “The network is the computer.” In 2008, David Patterson of
UC Berkeley said, “The data center is the computer. There are dramatic differences between
developing software for millions to use as a service versus distributing software to run on their
PCs.” Recently, Rajkumar Buyya of Melbourne University simply said: “The cloud is the
computer.”
6.2.Computing Paradigm Distinctions
Comparing these six computing paradigms, it looks like that cloud computing
is a return to the original mainframe computing paradigm. However, these
two paradigms have several important differences. Mainframe computing
offers finite computing power, while cloud computing provides almost infinite
power and capacity.
The high-technology community has argued for many years about the precise definitions of
centralized computing, parallel computing, distributed computing, and cloud computing. In
general, distributed computing is the opposite of centralized computing. The field of parallel
computing overlaps with distributed computing to a great extent, and cloud computing overlaps
with distributed, centralized, and parallel computing.
• Centralized computing -This is a computing paradigm by which all computer resources are
centralized in one physical system. All resources (processors, memory, and storage) are fully
shared and tightly coupled within one integrated OS. Many data centers and supercomputers are
centralized systems, but they are used in parallel, distributed, and cloud computing applications.
PC computing and Mainframe computing can be regarded as centralized computing.
• Parallel computing- In parallel computing, all processors are either tightly coupled with
centralized shared memory or loosely coupled with distributed memory. Some authors refer to
this discipline as parallel processing. Interprocessor communication is accomplished through
shared memory or via message passing. A computer system capable of parallel computing is
commonly known as a parallel computer. Programs running in a parallel computer are called
parallel programs. The process of writing parallel programs is often referred to as parallel
programming. Grid computing can be viewed as parallel computing.
• Distributed computing -This is a field of computer science/engineering that studies distributed
systems. A distributed system consists of multiple autonomous computers, each having its own
private memory, communicating through a computer network. Information exchange in a
distributed system is accomplished through message passing. A computer program that runs in a
distributed system is known as a distributed program. The process of writing distributed
programs is referred to as distributed programming. Internet computing can be viewed as
distributed computing.
• Cloud computing- An Internet cloud of resources can be either a centralized or a distributed
computing system. The cloud applies parallel or distributed computing, or both. Clouds can be
built with physical or virtualized resources over large data centers that are centralized or
distributed. Some authors consider cloud computing to be a form of utility computing or service
computing.
As an alternative to the preceding terms, some in the high-tech community prefer the term
concurrent computing or concurrent programming. These terms typically refer to the union of
parallel computing and distributing computing, although biased practitioners may interpret them
differently.
Ubiquitous computing refers to computing with pervasive devices at any place and time using
wired or wireless communication. The Internet of Things (IoT) is a networked connection of
everyday objects including computers, sensors, humans, etc. The IoT is supported by Internet
clouds to achieve ubiquitous computing with any object at any place and time. Finally, the term
Internet computing is even broader and covers all computing paradigms over the Internet.