Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Cloud Computing Unit 1

Cloud
"The cloud" refers to servers that are accessed over the Internet, and the software
and databases that run on those servers. Cloud servers are located in data centers
all over the world. By using cloud computing, users and companies do not have to
manage physical servers themselves or run software applications on their own
machines.

The cloud enables users to access the same files and applications from almost any
device, because the computing and storage takes place on servers in a data center,
instead of locally on the user device. This is why a user can log in to their Instagram
account on a new phone after their old phone breaks and still find their old account
in place, with all their photos, videos, and conversation history. It works the same
way with cloud email providers like Gmail or Microsoft Office 365, and with cloud
storage providers like Dropbox or Google Drive.
For businesses, switching to cloud computing removes some IT costs and overhead:
for instance, they no longer need to update and maintain their own servers, as the
cloud vendor they are using will do that. This especially makes an impact for small
businesses that may not have been able to afford their own internal infrastructure but
can outsource their infrastructure needs affordably via the cloud. The cloud can also
make it easier for companies to operate internationally, because employees and
customers can access the same files and applications from any location.

Cloud Computing
Cloud computing is on-demand access, via the internet, to computing resources—
applications, servers (physical servers and virtual servers), data storage,
development tools, networking capabilities, and more—hosted at a remote data
center managed by a cloud services provider (or CSP). The CSP makes these
resources available for a monthly subscription fee or bills them according to usage.

NIST

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

Cloud Computing Unit 1 1


model is composed of five essential characteristics, three service models, and four
deployment models.

History of Cloud Computing


Let’s have a quick walkthrough of cloud computing history and evolution all these
years-

1960’s

One of the renowned names in Computer Science, John McCarthy, enabled


enterprises to use expensive mainframe and introduced the whole concept of time-
sharing. This turned out to be a huge contribution to the pioneering of Cloud
computing concept and establishment of Internet.
1969

With the vision to interconnect the global space, J.C.R. Licklider introduced
the concepts of “Galactic Network” and “Intergalactic Computer Network” and
also developed Advanced Research Projects Agency Network- ARPANET.
1970

By this era, it was possible to run multiple Operating Systems in isolated


environment.

1997
Prof. Ramnath Chellappa introduced the concept of “Cloud Computing” in Dallas.

1999

Salesforce.com started the whole concept of enterprise applications through the


medium of simple websites. Along with that, the services firm also covered the way
to help experts deliver applications via the Internet.

2003

The Virtual Machine Monitor (VMM), that allows running of multiple virtual guest
operating systems on single device, paved way ahead for other huge inventions.

2006

Amazon also started expanding in cloud services. From EC2 to Simple Storage
Service S3, they introduced pay-as-you-go model, which has become a standard
practice even today.

2013

Cloud Computing Unit 1 2


With IaaS, (Infrastructure-as-a-Service), the Worldwide Public Cloud Services
Market was totalled at £78bn, which turned out to be the fastest growing market
services of that year.

Evolution of Cloud Computing


Cloud computing is all about renting computing services. This idea first came in the
1950s. In making cloud computing what it is today, five technologies played a vital
role. These are distributed systems and its peripherals, virtualization, web 2.0,
service orientation, and utility computing.

Distributed Systems:It is a composition of multiple independent systems but all


of them are depicted as a single entity to the users. The purpose of distributed
systems is to share resources and also use them effectively and efficiently.
Distributed systems possess characteristics such as scalability, concurrency,
continuous availability, heterogeneity, and independence in failures. But the main
problem with this system was that all the systems were required to be present at
the same geographical location. Thus to solve this problem, distributed
computing led to three more types of computing and they were-Mainframe
computing, cluster computing, and grid computing.

Cloud Computing Unit 1 3


Mainframe computing:Mainframes which first came into existence in 1951 are
highly powerful and reliable computing machines. These are responsible for
handling large data such as massive input-output operations. Even today these
are used for bulk processing tasks such as online transactions etc. These
systems have almost no downtime with high fault tolerance. After distributed
computing, these increased the processing capabilities of the system. But these
were very expensive. To reduce this cost, cluster computing came as an
alternative to mainframe technology.

Cluster computing:In 1980s, cluster computing came as an alternative to


mainframe computing. Each machine in the cluster was connected to each other
by a network with high bandwidth. These were way cheaper than those
mainframe systems. These were equally capable of high computations. Also,
new nodes could easily be added to the cluster if it was required. Thus, the
problem of the cost was solved to some extent but the problem related to
geographical restrictions still pertained. To solve this, the concept of grid
computing was introduced.

Grid computing:In 1990s, the concept of grid computing was introduced. It


means that different systems were placed at entirely different geographical
locations and these all were connected via the internet. These systems belonged
to different organizations and thus the grid consisted of heterogeneous nodes.
Although it solved some problems but new problems emerged as the distance
between the nodes increased. The main problem which was encountered was
the low availability of high bandwidth connectivity and with it other network
associated issues. Thus. cloud computing is often referred to as “Successor of
grid computing”.

Virtualization:It was introduced nearly 40 years back. It refers to the process of


creating a virtual layer over the hardware which allows the user to run multiple
instances simultaneously on the hardware. It is a key technology used in cloud
computing. It is the base on which major cloud computing services such as
Amazon EC2, VMware vCloud, etc work on. Hardware virtualization is still one of
the most common types of virtualization.

Web 2.0:It is the interface through which the cloud computing services interact
with the clients. It is because of Web 2.0 that we have interactive and dynamic
web pages. It also increases flexibility among web pages. Popular examples of
web 2.0 include Google Maps, Facebook, Twitter, etc. Needless to say, social
media is possible because of this technology only. In gained major popularity in
2004.

Cloud Computing Unit 1 4


Service orientation:It acts as a reference model for cloud computing. It
supports low-cost, flexible, and evolvable applications. Two important concepts
were introduced in this computing model. These were Quality of Service (QoS)
which also includes the SLA (Service Level Agreement) and Software as a
Service (SaaS).

Utility computing:It is a computing model that defines service provisioning


techniques for services such as compute services along with other major
services such as storage, infrastructure, etc which are provisioned on a pay-per-
use basis.

Parallel Computing
It is the use of multiple processing elements simultaneously for solving any problem.
Problems are broken down into instructions and are solved concurrently as each
resource that has been applied to work is working at the same time.

Advantages of Parallel Computing over Serial Computing are as follows:

1. It saves time and money as many resources working together will reduce the
time and cut potential costs.

2. It can be impractical to solve larger problems on Serial Computing.

3. It can take advantage of non-local resources when the local resources are finite.

4. Serial Computing ‘wastes’ the potential computing power, thus Parallel


Computing makes better work of the hardware.

Types of Parallelism:

1. Bit-level parallelism –It is the form of parallel computing which is based on the
increasing processor’s size. It reduces the number of instructions that the
system must execute in order to perform a task on large-sized
data. Example: Consider a scenario where an 8-bit processor must compute the
sum of two 16-bit integers. It must first sum up the 8 lower-order bits, then add
the 8 higher-order bits, thus requiring two instructions to perform the operation. A
16-bit processor can perform the operation with just one instruction.

2. Instruction-level parallelism –A processor can only address less than one


instruction for each clock cycle phase. These instructions can be re-ordered and
grouped which are later on executed concurrently without affecting the result of
the program. This is called instruction-level parallelism.

Cloud Computing Unit 1 5


3. Task Parallelism –Task parallelism employs the decomposition of a task into
subtasks and then allocating each of the subtasks for execution. The processors
perform the execution of sub-tasks concurrently.

4. Data-level parallelism (DLP) –Instructions from a single stream operate


concurrently on several data – Limited by non-regular data manipulation patterns
and by memory bandwidth

Why parallel computing?

The whole real-world runs in dynamic nature i.e. many things happen at a
certain time but at different places concurrently. This data is extensively huge to
manage.

Real-world data needs more dynamic simulation and modeling, and for
achieving the same, parallel computing is the key.

Parallel computing provides concurrency and saves time and money.

Complex, large datasets, and their management can be organized only and only
using parallel computing’s approach.

Ensures the effective utilization of the resources. The hardware is guaranteed to


be used effectively whereas in serial computation only some part of the
hardware was used and the rest rendered idle.

Also, it is impractical to implement real-time systems using serial computing.

Applications of Parallel Computing:

Databases and Data mining.

Real-time simulation of systems.

Science and Engineering.

Advanced graphics, augmented reality, and virtual reality.

Limitations of Parallel Computing:

It addresses such as communication and synchronization between multiple sub-


tasks and processes which is difficult to achieve.

The algorithms must be managed in such a way that they can be handled in a
parallel mechanism.

The algorithms or programs must have low coupling and high cohesion. But it’s
difficult to create such programs.

Cloud Computing Unit 1 6


More technically skilled and expert programmers can code a parallelism-based
program well.

Distributed Computing
A distributed computer system consists of multiple software components that are on
multiple computers, but run as a single system. The computers that are in a
distributed system can be physically close together and connected by a local
network, or they can be geographically distant and connected by a wide area
network. A distributed system can consist of any number of possible configurations,
such as mainframes, personal computers, workstations, minicomputers, and so on.
The goal of distributed computing is to make such a network work as a single
computer.

Distributed systems offer many benefits over centralized systems, including the
following:
Scalability
The system can easily be expanded by adding more machines as needed.
Redundancy
Several machines can provide the same services, so if one is unavailable, work does
not stop. Additionally, because many smaller machines can be used, this
redundancy does not need to be prohibitively expensive.
Distributed computing systems can run on hardware that is provided by many
vendors, and can use a variety of standards-based software components. Such
systems are independent of the underlying software. They can run on various
operating systems, and can use various communications protocols. Some hardware
might use UNIX or Linux as the operating system, while other hardware might use
Windows operating systems. For intermachine communications, this hardware can
use SNA or TCP/IP on Ethernet or Token Ring.

You can organize software to run on distributed systems by separating functions into
two parts: clients and servers. This is described in The client/server model. A
common design of client/server systems uses three tiers, as described in Three-
tiered client/server architecture.

Parallel Computing vs Distributed Computing


Difference #1: Number of Computers Required
Parallel computing typically requires one computer with multiple processors.
Distributed computing, on the other hand, involves several autonomous (and often

Cloud Computing Unit 1 7


geographically separate and/or distant) computer systems working on divided tasks.

Difference #2: Scalability


Parallel computing systems are less scalable than distributed computing systems
because the memory of a single computer can only handle so many processors at
once. A distributed computing system can always scale with additional computers.

Difference #3: Memory


In parallel computing, all processors share the same memory and the processors
communicate with each other with the help of this shared memory. Distributed
computing systems, on the other hand, have their own memory and processors.

Difference #4: Synchronization


In parallel computing, all processors share a single master clock for synchronization,
while distributed computing systems use synchronization algorithms.

Difference #5: Usage


Parallel computing is used to increase computer performance and for scientific
computing, while distributed computing is used to share resources and improve
scalability.

When to Use Parallel Computing: Examples


This computing method is ideal for anything involving complex simulations or
modeling. Common applications for it include seismic surveying, computational
astrophysics, climate modeling, financial risk management, agricultural estimates,
video color correction, medical imaging, drug discovery, and computational fluid
dynamics.

When to Use Distributed Computing: Examples


Distributed computing is best for building and deploying powerful applications
running across many different users and geographies. Anyone performing a Google
search is already using distributed computing. Distributed system architectures have
shaped much of what we would call “modern business,” including cloud-based
computing, edge computing, and software as a service (SaaS).

Characterstics of Cloud Computing

Cloud Computing Unit 1 8


1. Resources Pooling
It means that the Cloud provider pulled the computing resources to provide
services to multiple customers with the help of a multi-tenant model. There are
different physical and virtual resources assigned and reassigned which depends on
the demand of the customer.

The customer generally has no control or information over the location of the
provided resources but is able to specify location at a higher level of abstraction

2. On-Demand Self-Service
It is one of the important and valuable features of Cloud Computing as the user can
continuously monitor the server uptime, capabilities, and allotted network storage.
With this feature, the user can also monitor the computing capabilities.

3. Easy Maintenance
The servers are easily maintained and the downtime is very low and even in some
cases, there is no downtime. Cloud Computing comes up with an update every time
by gradually making it better.

The updates are more compatible with the devices and perform faster than older
ones along with the bugs which are fixed.

4. Large Network Access


The user can access the data of the cloud or upload the data to the cloud from
anywhere just with the help of a device and an internet connection. These
capabilities are available all over the network and accessed with the help of internet.

5. Availability
The capabilities of the Cloud can be modified as per the use and can be extended a
lot. It analyzes the storage usage and allows the user to buy extra Cloud storage if
needed for a very small amount.

6. Automatic System
Cloud computing automatically analyzes the data needed and supports a metering
capability at some level of services. We can monitor, control, and report the usage. It
will provide transparency for the host as well as the customer.

7. Economical

Cloud Computing Unit 1 9


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.

8. 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.

9. Pay as you go
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.

10. Measured Service


Cloud Computing resources used to monitor and the company uses it for recording.
This resource utilization is analyzed by supporting charge-per-use capabilities.

This means that the resource usages which can be either virtual server instances
that are running in the cloud are getting monitored measured and reported by the
service provider. The model pay as you go is variable based on actual consumption
of the manufacturing organization.

Elasticity
Cloud Elasticity is the property of a cloud to grow or shrink capacity for CPU,
memory, and storage resources to adapt to the changing demands of an
organization. Cloud Elasticity can be automatic, without need to perform capacity
planning in advance of the occasion, or it can be a manual process where the
organization is notified they are running low on resources and can then decide to
add or reduce capacity when needed. Monitoring tools offered by the cloud provider
dynamically adjust the resources allocated to an organization without impacting
existing cloud-based operations.

A cloud provider is said to have more or less elasticity depending on the degree to
which it is able to adapt to workload changes by provisioning or deprovisioning

Cloud Computing Unit 1 10


resources autonomously to match demand as closely as possible. This eliminates
the need for IT administration staff to monitor resources to determine if additional
CPU, memory, or storage resources are needed, or whether excess capacity can be
decommissioned.
Cloud Elasticity is often associated with horizontal scaling (scale-out) architecture,
and it generally associated with public cloud provider resources that are billed on a
pay-as-you-go basis. This approach brings real-time cloud expenditures more
closely in alignment with the actual consumption of cloud services, for example when
virtual machines (VMs) are spun up or down as demand for a particular application
or service varies over time.
Cloud Elasticity provides businesses and IT organizations the ability to meet any
unexpected jump in demand, without the need to maintain standby equipment to
handle that demand. An organization that normally runs certain processes on-
premises can ‘cloudburst’ to take advantage of Cloud Elasticity and meet that
demand, returning to on-premises operations only when the demand has passed.
Thus, the result of cloud elasticity is savings in infrastructure costs, in human capital,
and in overall IT costs.

Benefits of Cloud Elasticity


Agility: By eliminating the need to purchase, configure, and install new infrastructure
when demand changes, Cloud Elasticity prevents the need to plan for such
unexpected demand spikes, and enables organizations to meet any unexpected
demand, whether due to seasonal spike, mention on Reddit, or selection by Oprah’s
book club.
Pay-as-needed pricing: Rather than paying for infrastructure whether or not is is
being used, Cloud Elasticity enables organizations to pay only for the resources that
are in use at any given point tin time, closely tracking IT expenditures to the actual
demand in real-time. In this way, although spending may fluctuate, organizations can
‘right-size’ their infrastructure as elasticity automatically allocates or deallocates
resources on the basis of real-time demand. Amazon has stated that organizations
that adopt its instance scheduler with their EC2 cloud service can achieve savings of
over 60 percent versus organizations that do not.
High Availability: Cloud elasticity facilitates both high availability and fault tolerance,
since VMs or containers can be replicated if they appear to be failing, helping to
ensure that business services are uninterrupted and that users do not experience
downtime. This helps ensure that users perceive a consistent and predictable

Cloud Computing Unit 1 11


experience, even as resources are provisioned or deprovisioned automatically and
without impact on operations.
Efficiency: As with most automations, the ability to autonomously adjust cloud
resources as needed enables IT staff to shift their focus away from provisioning and
onto projects that are more beneficial to the organization.
Speed/Time-to-market: organizations have access to capacity in minutes instead of
the weeks or months it may take through a traditional procurement process.

On Demand Provisioning
Also referred to as “dynamic provisioning”, customers are provided with resources
on runtime. In this delivery model, cloud resources are deployed to match
customers’ fluctuating demands. Deployments can scale up to accommodate spikes
in usage and down when demands decrease. Customers are billed on a pay-per-use
basis. When this model is used to create a hybrid cloud environment, it is sometimes
called “cloud bursting.”

Cloud Computing Unit 1 12

You might also like