KEMBAR78
Completion of Module 1 Cloud Computing | PDF | Computer Cluster | Cloud Computing
0% found this document useful (0 votes)
32 views43 pages

Completion of Module 1 Cloud Computing

Uploaded by

asif17111998
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views43 pages

Completion of Module 1 Cloud Computing

Uploaded by

asif17111998
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 43

Cloud Computing

Cloud Computing is defined as storing and accessing of data and computing services over the
internet. It is the use of remote servers on the internet to store, manage process data rather
than local servers. It doesn't store any data on your personal computer. It is the on-demand
availability of computer services like servers, data storage, networking, databases, etc. The main
purpose of cloud computing is to give access to data centres to many users. Users can also access
data from a remote server. Cloud computing is the delivery of different services through the
Internet. These resources include tools and applications like data storage, servers, databases,
networking, and software.
Whenever you travel through a bus or train, you take a ticket for your destination and hold back
to your seat till you reach your destination. Likewise other passengers also takes ticket and travel
in the same bus with you and it hardly bothers you where they go. When your stop comes you
get off the bus thanking the driver. Cloud computing is just like that bus, carrying data and
information for different users and allows to use its service with minimal cost.
Rather than keeping files on a proprietary hard drive or local storage device, cloud-based storage
makes it possible to save them to a remote database. As long as an electronic device has access
to the web, it has access to the data and the software programs to run it. Cloud computing is a
popular option for people and businesses for a number of reasons including cost savings,
increased productivity, speed and efficiency, performance, and security.
Cloud computing is a virtualization-based technology that allows us to create, configure, and
customize applications via an internet connection. The cloud technology includes development
platform, hard disk, software application, and database.
The term cloud refers to a network or the Internet. We can say that Cloud is something, which is
present at remote location. It is a technology that uses remote servers on the internet to store,
manage, and access data online rather than local drives. The data can be anything such as files,
images, documents, audio, video, and more. Cloud can provide services over public and private
networks, i.e., WAN, LAN or VPN (Virtual Private Network).

Examples of Cloud Computing Services


Google Cloud, Amazon Web Services (AWS), IBM Cloud

Why the Name Cloud?


Why is cloud computing represented by a cloud symbol?
To find the answer we have to think back to the early days of network design. The role of the
network engineer comprised of designing a network that would function properly. Time was
dedicated to understanding what devices were on the network, how they were connected,
managed, controlled, etc.
Some networks hooked to other networks or the internet. To illustrate this connection as part of
the design the engineers needed a way to indicate that there was a network but also indicate that
they weren’t trying to describe it because it was more than what they knew. They landed on the
cloud symbol as a metaphor for the internet. It was based on a cloud drawing used in the past to
represent the telephone network.
The term “Cloud” came from a network design that was used by network engineers to
represent the location of various network devices and their inter-connections. The shape of
this network design was like a cloud.
The name cloud computing was inspired by the cloud symbol that’s often used to represent the
Internet in flow charts and diagrams. Cloud computing is a general term for anything that
involves delivering hosted service over the Internet. The word cloud is used as a metaphor for
the Internet, based on the standardized use of a cloud-like shape to denote a network on
telephony schematics and later to depict the Internet in computer network diagrams as an
abstraction of the underlying infrastructure it represents.
One relevant quote "Cloud comes from the early days of Internet where we drew the network as
a cloud... we didn't care where the message went- the cloud hid it from us", Kevin Marks,
Google.
Cloud computing is named as such because the information being accessed is found remotely in
the cloud or a virtual space. Companies that provide cloud services enable users to store files and
applications on remote servers and then access all the data via the Internet. This means the user is
not required to be in a specific place to gain access to it, allowing the user to work remotely.

There are the following operations that we can do using cloud computing:
 Developing new applications and services
 Storage, back up, and recovery of data
 Hosting blogs and websites
 Delivery of software on demand
 Analysis of data
 Streaming videos and audios
Applications such as e-mail, web conferencing, customer relationship management (CRM)
execute on cloud.
Cloud Computing refers to manipulating, configuring, and accessing the hardware and software
resources remotely. It offers online data storage, infrastructure, and application.

Cloud computing offers platform independency, as the software is not required to be installed
locally on the PC. Hence, the Cloud Computing is making our business applications mobile and
collaborative.

Why Cloud Computing?


Small as well as large IT companies, follow the traditional methods to provide the IT
infrastructure. That means for any IT company, we need a Server Room that is the basic need of
IT companies.In that server room, there should be a database server, mail server, networking,
firewalls, routers, modem, switches, high speed net, and the maintenance engineers.To establish
such IT infrastructure, we need to spend lots of money. To overcome all these problems and to
reduce the IT infrastructure cost, Cloud Computing comes into existence.
With increase in computer and Mobile user’s, data storage has become a priority in all fields.
Large and small scale businesses today focus on their data and they spent a huge amount of
money to maintain this data. It requires a strong IT support and a storage hub. Not all businesses
can afford high cost of in-house IT infrastructure and back up support services. For them Cloud
Computing is a cheaper solution. Perhaps its efficiency in storing data, computation and less
maintenance cost has succeeded to attract even bigger businesses as well.
Cloud computing decreases the hardware and software demand from the user’s side. The only
thing that user must be able to run is the cloud computing systems interface software, which can
be as simple as Web browser, and the Cloud network takes care of the rest. We all have
experienced cloud computing at some instant of time, some of the popular cloud services we
have used or we are still using are mail services like gmail, hotmail or yahoo etc.While accessing
e-mail service our data is stored on cloud server and not on our computer. The technology and
infrastructure behind the cloud is invisible. It is less important whether cloud services are based
on HTTP, XML, PHP or other specific technologies as far as it is user friendly and functional.
An individual user can connect to cloud system from his/her own devices like desktop, laptop or
mobile.
Cloud computing helps small businesses to convert their maintenance cost into profit. In an in-
house IT server, you have to pay a lot of attention and ensure that there are no flaws into the
system so that it runs smoothly. And in case of any technical fault, you are completely
responsible; it will seek a lot of attention, time and money for repair. Whereas, in cloud
computing, the service provider takes the complete responsibility of the complication and the
technical faults.
Cloud Computing provides us means by which we can access the applications as utilities over
the internet. It allows us to create, configure, and customize the business applications online.
History of Cloud Computing
Before emerging the cloud computing, there was Client/Server computing which is basically a
centralized storage in which all the software applications, all the data and all the controls are
resided on the server side.If a single user wants to access specific data or run a program, he/she
need to connect to the server and then gain appropriate access, and then he/she can do his/her
business.Then after, distributed computing came into picture, where all the computers are
networked together and share their resources when needed.On the basis of above computing,
there was emerged of cloud computing concepts that was implemented later.
1960 -In the 60s, mainframe computers were huge and occupied more space like an entire room.
Due to the cost of buying and maintaining mainframes, organizations couldn’t afford to purchase
one for each user. The solution of that problem was “time sharing” in which multiple users
shared access to data and CPU time.
1990 - Telecommunication companies started offering virtual private network connections,
which meant it was possible to allow for more users through shared access to the same physical
infrastructure. This change enables traffic to be shifted to allow for better network balance and
more control over bandwidth usage. Virtualization for PC- based systems was started.
1997- The term “cloud computing” was coined by the University of Texas Professor Ramnath
Chellappa in a talk on a “new computing paradigm.”
2006- Amazon created Amazon Web Service (AWS) and introduced its Elastic Compute Cloud
(EC2).
2009 - Google and Microsoft entered the playing field. The Google app engine brought the low-
cost computing and storage services, and Microsoft followed suit with window azure.

Characteristics of Cloud Computing


The characteristics of cloud computing are given below:
Agility
The cloud works in a distributed computing environment. It shares resources among users and
works very fast.
High Availability and Reliability
The availability of servers is high and more reliable because the chances of infrastructure failure
are minimum.
High Scalability
Cloud offers "on-demand" provisioning of resources on a large scale, without having engineers
for peak loads.
Multi-Sharing
With the help of cloud computing, multiple users and applications can work more efficiently
with cost reductions by sharing common infrastructure. Cloud computing allows multiple tenants
to share a pool of resources. One can share single physical instance of hardware,
database and basic infrastructure.
Device and Location Independence
Since cloud computing is completely web based, it can be accessed from anywhere and at any
time. Cloud computing enables the users to access systems using a web browser regardless of
their location or what device they use e.g. PC, mobile phone, etc. As infrastructure is off-site
(typically provided by a third-party) and accessed via the Internet, users can connect from
anywhere.
Maintenance
Maintenance of cloud computing applications is easier, since they do not need to be installed on
each user's computer and can be accessed from different places. So, it reduces the cost also.

Low Cost
By using cloud computing, the cost will be reduced because to take the services of cloud
computing, IT company need not to set its own infrastructure and pay-as-per usage of resources.
Services in pay-per-use mode
Application Programming Interfaces (APIs) are provided to the users so that they can access
services on the cloud by using these APIs and pay the charges as per the usage of services.
On Demand Self Service
Cloud Computing allows the users to use web services and resources on demand. One can login
to a website at any time and use them.

Advantages of Cloud Computing


Back-up and restore data
Once the data is stored in the cloud, it is easier to get back-up and restore that data using the
cloud.
Improved collaboration
Cloud applications improve collaboration by allowing groups of people to quickly and easily
share information in the cloud via shared storage.
Excellent accessibility
Cloud allows us to quickly and easily access store information anywhere, anytime in the whole
world, using an internet connection. An internet cloud infrastructure increases organization
productivity and efficiency by ensuring that our data is always accessible.

Low cost
There is no requirement of high-power computers and technology because the application will
run on the cloud, not on the user’s PC. The cloud reduces the software costs because there is no
need to purchase software for every computer in an organization. Cloud computing reduces both
hardware and software maintenance costs for organizations.
Mobility
Cloud computing allows us to easily access all cloud data via mobile.
Pay-Per-Use model
Cloud computing offers Application Programming Interfaces (APIs) to the users f
or access services on the cloud and pays the charges as per the usage of service.
Unlimited storage capacity
Cloud offers us a huge amount of storing capacity for storing our important data such as
documents, images, audio, video, etc. in one place.
Increase computing power
Cloud servers have a very high-capacity for running and processing tasks and the processing of
applications.
Updating
Instant software update is possible and users don't have to face the choice problem between
obsolete and high-upgrade software.

Disadvantages of Cloud Computing


Internet speed - Cloud technology requires a high-speed internet connection as web-based
applications often require a large bandwidth amount.
Constant Internet Connection - It's impossible to use cloud infrastructure without the Internet.
To access any application or cloud storage, a constant internet connection is required.
Security -With cloud computing, all the data gets stored in the cloud. The most significant
disadvantage of the cloud is security. Data on the cloud is not secure. There may be chances of
data loss because an unauthorized user can access the user’s data. While sending the data on the
cloud, there may be a chance that your organization's information is hacked by hackers.

Cloud computing is the on-demand availability of computer system resources, especially data
storage (cloud storage) and computing power, without direct active management by the user.The
term is generally used to describe e data centers available to many users
over the Internet.
Cloud computing metaphor: the group of networked elements providing services need not be
individually addressed or managed by users; instead, the entire provider-managed suite of
hardware and software can be thought of as an amorphous cloud.

Computing
The ACM (Association for Computing Machinery) Computing Curricula 2005 and 2020 defined
"computing" as follows:
"In a general way, we can define computing to mean any goal-oriented activity requiring,
benefiting from, or creating computers. Thus, computing includes designing and building
hardware and software systems for a wide range of purposes; processing, structuring, and
managing various kinds of information; doing scientific studies using computers; making
computer systems behave intelligently; creating and using communications and entertainment
media; finding and gathering information relevant to any particular purpose, and so on. The list
is virtually endless, and the possibilities are vast."
NIST (National Institute of Standards and Technology) Definition of Cloud Computing
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.

Essential Characteristics:
On-demand self-service. A consumer can unilaterally provision computing capabilities, such as
server time and network storage, as needed automatically without requiring human interaction
with each service provider.
Broad network access. Capabilities are available over the network and accessed through standard
mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile
phones, tablets, laptops, and workstations).
Resource pooling. The provider’s computing resources are pooled to serve multiple
consumersusing a multi-tenant model, with different physical and virtual resources dynamically
assigned and reassigned according to consumer demand. There is a sense of location
independence in that the customer generally has no control or knowledge over the exact location
of the provided resources but may be able to specify location at a higher level of abstraction
(e.g., country, state, or data center). Examples of resources include storage, processing, memory,
and network bandwidth.
Rapid elasticity. Capabilities can be elastically provisioned and released, in some
casesautomatically, to scale rapidly outward and inward commensurate with demand. To
theconsumer, the capabilities available for provisioning often appear to be unlimited and can be
appropriated in any quantity at any time.
Measured service. Cloud systems automatically control and optimize resource use by leveraging
a metering capability at some level of abstraction appropriate to the type of service (e.g.,storage,
processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled,
and reported, providing transparency for both the provider and consumer of the utilized service.

Trends in Computing
 Distributed Computing
 Grid Computing
 Cluster Computing
 Utility Computing
 Cloud Computing
Centralized System
Centralized systems are systems that use client/server architecture where one or more client
nodes are directly connected to a central server. This is the most commonly used type of system
in many organisations where client sends a request to a company server and receives the
response.

Characteristics of Centralized System


 Presence of a global clock: As the entire system consists of a central node (a server/ a master)
and many client nodes (a computer/ a slave), all client nodes synchronize up with the global
clock (the clock of the central node).
 One single central unit: One single central unit which serves/coordinates all the other nodes
in the system.
 Dependent failure of components: Central node failure causes entire system to fail. This
makes sense because when the server is down, no other entity is there to send/receive
response/requests.
Architecture of Centralized System - Client-Server architecture. The central node that serves
the other nodes in the system is the server node and all the other nodes are the client nodes.
Disadvantages of Centralized System
 Highly dependent on the network connectivity – System can fail if the nodes lose
connectivity as there is only one central node.
 No graceful degradation of system – abrupt failure of the entire system
 Less possibility of data backup. If the server node fails and there is no backup, you lose the
data straight away.
 Difficult server maintenance – There is only one server node and due to availability reasons,
it is inefficient and unprofessional to take the server down for maintenance.
Decentralized System
In decentralized systems, every node makes its own decision. The final behavior of the system is
the aggregate of the decisions of the individual nodes. There is no single entity that receives and
responds to the request.

Example –Bitcoin. Let’s take bitcoin for example because it’s the most popular use case of
decentralized systems. No single entity/organisation owns the bitcoin network. The network is a
sum of all the nodes who talk to each other for maintaining the amount of bitcoin every account
holder has.
Characteristics of Decentralized System
 Lack of a global clock: Every node is independent of each other and hence, have different
clocks that they run and follow.
 Multiple central units (Computers/Nodes/Servers): More than one central unit which can
listen for connections from other nodes.
 Dependent failure of components: one central node failure causes a part of system to fail; not
the whole system.
Architecture of Decentralized System
peer-to-peer architecture – all nodes are peers of each other. No one node has supremacy over
other nodes.
master-slave architecture – One node can become a master by voting and help in coordinating of
a part of the system but this does not mean the node has supremacy over the other node which it
is coordinating.
Applications of Decentralized System
 Private networks – peer nodes joined with each other to make a private network.
 Cryptocurrency – Nodes joined to become a part of a system in which digital currency is
exchanged without any trace and location of who sent what to whom.
Use Cases
 Blockchain
 Decentralized databases – Entire database split in parts and distributed to different nodes for
storage and use. For example, records with names starting from ‘A’ to ‘K’ in one node, ‘L’ to
‘N’ in second node and ‘O’ to ‘Z’ in third node.
 Cryptocurrency

Distributed Systems
A distributed system is a collection of independent computers that appears to its users as asingle
coherent system.

Distributed computing is a field of computer science that studies distributed systems. A


distributed system consists of multiple autonomous computers that communicate through a
computer network. The computers interact with each other in order to achieve a common goal.
Distributed computing also refers to the use of distributed systems to solve computational
problems. In distributed computing, a problem is divided into many tasks, each of which is
solved by one or more computers. A distributed system is a collection of independent computers,
interconnected via a network, capable of collaborating on a task. Distributed computing has
become increasingly popular due to the advancements that can make both machines and
networks cheaper and faster.
In distributed system, there are several autonomous computational entities, each of which has its
own local memory. The entities communicate with each other by message passing. The
processors communicate with one another through various communication lines such as high-
speed buses or telephone lines. Each processor has its own local memory.
Example
 Intranets / Workgroups
 Automatic Teller Machine (bank) Network
 Internet/World-Wide Web

Computers in a Distributed System


 Workstations: Computers used by end-users to perform computing
 Server Systems: Computers which provide resources and services
 Personal Assistance Devices: Handheld computers connected to the system via a wireless
communication link.

Characteristics of Distributed System


Fault tolerance
 When one or some nodes fail, the whole system can still work fine except performance.
 Need to check status of each node
Each node play partial role
 Each computer has only a limited, incomplete view of the system.
 Each computer may know only one part of the input.
Resource sharing
 Each user can share the computing power and storage resource in the system with other
users.
Load sharing
 Dispatching several tasks to each nodes can help share loading to the whole system.
Easy to expand
 We expect to use few time when adding nodes. Hope to spend no time if possible.

Centralized vs. Distributed Computing

Early computing was performed on a single processor. Uni-processor computing can be called
centralized computing.
Centralized data networks are those that maintain all the data in a single computer, location and
to access the information you must access the main computer of the system, known as “server”.
On the other hand, a distributed data network works as a single logical data network, installed in
a series of computers (nodes) located in different geographic locations and that are not connected
to a single processing unit, but are fully connected to provide integrity and accessibility to
information from any point. In this system all the nodes contain information and all the clients of
the system are in equal condition. In this way, distributed data networks can perform autonomous
processing.
Maintenance -Centralized networks are the easiest to maintain since they have only one point of
failure, this is not the case of the distributed ones, which are more difficult to maintain.
Stability - The centralized ones are very unstable, since any problem that affects the central
server can generate chaos throughout the system. However, the distributed ones are more stable,
by storing the totality of the system information in a large number of nodes that maintain equal
conditions with each other.
Security - Distributed networks have higher level of security, since to carry out malicious
attacks would have to attack a large number of nodes at the same time. As the information is
distributed among the nodes of the network, in this case if a legitimate change is made it will be
reflected in the rest of the nodes of the system that will accept and verify the new information;
but if some illegitimate change is made, the rest of the nodes will be able to detect it and will not
validate this information. This consensus between nodes protects the network from deliberate
attacks or accidental changes of information.
Speed - Distributed systems have an advantage over centralized systems in terms of network
speed, since as the information is not stored in a central location, a bottleneck is less likely, in
which the number of people attempting to access a server is larger than it can support, causing
waiting times and slowing down the system.
Scalability - Centralized systems tend to present scalability problems since the capacity of the
server is limited and cannot support infinite traffic. Distributed systems have greater scalability,
due to the large number of nodes that support the network.
Availability – In centralized systems, if there are several requests, the server can break down
and no longer respond. But distributes systems can withstand significant pressure on the
network. All the nodes in the network have the data. Then, the requests are distributed among the
nodes. Therefore, the pressure does not fall on a computer, but on the entire network. In this
case, the total availability of the network is much greater than in the centralized one.
Reliability –In centralized system, server failure can cause failure of the entire system. But in
distributed system, if one machine crashes, the system as a whole can still survive. Higher
availability and improved reliability can be achieved in distributed systems.

Distributed Applications
Applications that consist of a set of processes that is distributed across a network of machines
and work together as an ensemble to solve a common problem. There are several applications
which coordinate among themselves to address a particular problem.
Not only in the past; now also, it is mostly, several applications are client server type of things,
resource management centralized at the server. So, we want to make it in a distributed fashion.
There is peer to peer computing which represents a movement towards more truly distributed
applications.
In client-server model, different clients invoke a particular server:

Peer-to-Peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that
partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants
in the application. They are said to form a peer-to-peer network of nodes.
Peers make a portion of their resources, such as processing power, disk storage or network
bandwidth, directly available to other network participants, without the need for central
coordination by servers or stable hosts. Peers are both suppliers and consumers of resources, in
contrast to the traditional client-server model in which the consumption and supply of resources
is divided.
A peer-to-peer (P2P) network in which interconnected nodes ("peers") share resources amongst
each other without the use of a centralized administrative system:

A network based on the client-server model, where individual clients request services and
resources from centralized servers:

A typical distributed application based on peer processes:


There are different peers, there are different applications which are running in the peers, and
these applications talk to each other to realize a particular job.

Grid Computing
Grid computing is a group of networked computers which work together as a virtual
supercomputer to perform large tasks, such as analysing huge sets of data or weather modeling.
The term grid computing originated in the early 1990s as a metaphor for making computer power
as easy to access as an electric power grid. An electrical grid is an interconnected network for
delivering electricity from producers to consumers. It consists of generating stations, electrical
substations, high voltage transmission lines, distribution lines that connect individual customers.
Grid computing is the use of widely distributed computer resources to reach a common goal.
Grid computing is distinguished from conventional high-performance computing systems such as
cluster computing in that grid computers have each node set to perform a different
task/application. Grid computers also tend to be more heterogeneous and geographically
dispersed (thus not physically coupled) than cluster computers. Although a single grid can be
dedicated to a particular application, commonly a grid is used for a variety of purposes. Grids are
a form of distributed computing whereby a "super virtual computer" is composed of many
networked loosely coupled computers acting together to perform large tasks.
Grid Computing can be defined as a network of computers working together to perform a task
that would rather be difficult for a single machine. All machines on that network work under the
same protocol to act like a virtual supercomputer. The task that they work on may include
analysing huge datasets or simulating situations which require high computing power.
Computers on the network contribute resources like processing power and storage capacity to the
network.
Grid Computing is a subset of distributed computing, where a virtual super computer comprises
of machines on a network connected by some bus, mostly Ethernet or sometimes the Internet. It
can also be seen as a form of Parallel Computing where instead of many CPU cores on a single
machine, it contains multiple cores spread across various locations.
A form of networking. Unlike conventional networks that focus on communication among
devices, grid computing harnesses unused processing cycles of all computers in a network for
solving problems too intensive for any stand-alone machine.
Grid computing represents a distributed computing approach that attempts to achieve high
computational performance by a non-traditional means. Rather than achieving high performance
computational needs by having large clusters of similar computing resources or a single high-
performance system, such as a supercomputer, grid computing attempts to harness the
computational resources of a large number of dissimilar devices.Grid computing typically
leverages the spare CPU cycles of devices that are not currently needed for a system’s own
needs, and then focus them on the particular goal of the grid computing resources. While these
few spare cycles from each individual computer might not mean much to the overall task, in
aggregate, the cycles are significant.
Grid computing is a computing infrastructure that provides dependable, consistent, pervasive and
inexpensive access to computational capabilities.
Grid computing enables the virtualization of distributed computing and data resources such as
processing, network bandwidth and storage capacity to create a single system image, granting
users and applications seamless access to vast IT capabilities. Just as an Internet user views a
unified instance of content via the Web, a grid user essentially sees a single, large virtual
computer.

Electrical Power Grid Analogy


Electrical power grid – Users (or electrical appliances) get access to electricity through wall
sockets with no care or consideration for where or how the electricity is actually generated. The
power grid links together power plants of many different kinds.
Computational grid – Users (or client applications) gain access to computing resources
(processors, storage, data, applications and so on) as needed with little or no knowledge of where
those resources are located or what the underlying technologies, hardware, operating system and
so on are. The computational grid links together computing resources (PCs, workstations,
servers, storage elements) and provides the mechanism needed to access them.

Characteristics of Grid Computing


Large scale: A grid must be able to deal with a number of resources ranging from just a few to
millions.
Geographical distribution: Grid's resources may be located at distant places.
Heterogeneity: A grid hosts both software and hardware resources that can be varied ranging
from data, files, software components or programs to sensors, scientific instruments, display
devices, personal digital organizers, computers, super-computers and networks.
Resource sharing: Resources in a grid belong to many different organizations that allow other
organizations (i.e. users) to access them.
Multiple administrations: Each organization may establish different security and administrative
policies under which their owned resources can be accessed and used.
Resource coordination: Resources in a grid must be coordinated in order to provide aggregated
computing capabilities.
Transparent access: A grid should be seen as a single virtual computer.
Dependable access: A grid must assure the delivery of services under established Quality of
Service (Quos) requirements.
Consistent access: A grid must be built with standard services, protocols and interfaces thus
hiding the heterogeneity of the resources while allowing its scalability.
Pervasive access: The grid must grant access to available resources by adapting to a dynamic
environment in which resource failure is commonplace.

Need for Grid Computing

Utilising Underutilised
Resources
In most organisations, many
computing resources are
idle and underutilised at most
of the times. For
example, most desktop
computers are idle more than
95% of their time [17].
Realising that these idle times
are being wasted and not
profitable to the
organisation, GC provide the
solution for exploiting
underutilised resources.
In addition to processing
resources, it is often that
computing resources have
also large amount of
unused storage capacity. And
Grid Computing
allows these unused capacities
to be considered as a
single virtual storage media
where the need of huge
storage capacity within a
particular application is
resolved. Thus, the
performance of this
application is
improved if compared running
this application over a
single computer.
Utilising Underutilised Resources - In most organisations, many computing resources are
idle and underutilised at most of the times. Realising that these idle times are being wasted and
not profitable to the organisation, grid computing provide the solution for exploiting
underutilised resources. In addition to processing resources, it is often that computing resources
have also large amount of unused storage capacity. Grid computing allows these unused
capacities to be considered as a single virtual storage media where the need of huge storage
capacity within a particular application is resolved. Thus, the performance of this application is
improved if compared running this application over a single computer.
Parallel CPU Capacity - The possibility of applying massive parallel CPU activity within an
application is one of the main exciting features of grid computing.
Resource Balancing – Grid computing groups multiple heterogeneous resources into a single
virtual resource. Furthermore, the grid also facilitates in balancing these resources depending on
the requirements of the tasks. As a result, appropriate resources are selected based on the time of
execution and the priority of each task.
The benefits of grid computing can be categorised into:
a) Business benefits
 Faster time to obtain the results
 Increase productivity

b) Technology benefits
 Optimise existing infrastructure
 Increase access to data and collaboration

Who uses Grid Computing?

Type of Grids
Grid have been divided into a number of types, on the basis of their use.
Computational Grid: These grids provide secure access to huge pool of shared processing
power suitable for high throughput applications and computation intensive computing.
Data Grid: Data grids provide an infrastructure to support data storage, data discovery, data
handling, data publication, and data manipulation of large volumes of data actually stored in
various heterogeneous databases and file systems.
Collaboration Grid: With the advent of Internet, there has been an increased demand for better
collaboration. Such advanced collaboration is possible using the grid. For instance, persons from
different companies in a virtual enterprise can work on different components of a CAD project
without even disclosing their proprietary technologies.

Grid Components

A Grid computing network mainly consists of these three types of machines


Control Node:A computer, usually a server or a group of servers which administrates the whole
network and keeps the account of the resources in the network pool.
Provider: The computer which contributes it’s resources in the network resource pool.
User: The computer that uses the resources on the network.
When a computer makes a request for resources to the control node, control node gives the user
access to the resources available on the network. When it is not in use it should ideally contribute
its resources to the network. Hence a normal computer on the node can swing in between being a
user or a provider based on its needs.
Grids are often constructed with general-purpose grid middleware software libraries. Middleware
is a software which lies between an operating system and the applications running on it.
Middleware is software that provides common services and capabilities to applications outside of
what’s offered by the operating system. Middleware enables communication and data
management for distributed applications.
Cluster Computing
A cluster is a type of parallel or distributed computer system, which consists of a collection of
inter-connected stand-alone computers working together as a single integrated computing
resource. Cluster computing refers that many of the computers connected on a network and they
perform like a single entity. Each computer that is connected to the network is called a node.
Cluster computing offers solutions to solve complicated problems by providing faster
computational speed, and enhanced data integrity. The connected computers execute operations
all together thus creating the impression like a single system (virtual machine).
A computer cluster is a set of loosely or tightly connected computers that work together so that,
in many aspects, they can be viewed as a single system. Unlike grid computers, computer
clusters have each node set to perform the same task, controlled and scheduled by software.
Key components of a cluster include multiple standalone computers, operating systems, high-
performance interconnects, middleware, parallel programming environments, and applications.
The components of a cluster are usually connected to each other through fast local area networks,
with each node running its own instance of an operating system. In most circumstances, all of the
nodes use the same hardware and the same operating system.

Technicians working on a large Linux cluster at the Chemnitz University of Technology,


Germany
Sun Microsystems Solaris Cluster

A computer cluster may be a simple two-node system which just connects two personal
computers, or may be a very fast supercomputer. A basic approach to building a cluster is that of
a Beowulf cluster which may be built with a few personal computers to produce a cost-effective
alternative to traditional high-performance computing. The developers used Linux, the Parallel
Virtual Machine toolkit and the Message Passing Interface library to achieve high performance
at a relatively low cost.

A simple, home-built Beowulf cluster


A Beowulf cluster is a computer cluster of what are normally identical computers networked into
a small local area network with libraries and programs installed which allow processing to be
shared among them. The result is a high-performance parallel computing cluster from
inexpensive personal computer hardware.

A 52-node Beowulf cluster

World's First Parallel Beowulf Cluster


At a high level, a computer cluster is a group of two or more computers, or nodes, that run in
parallel to achieve a common goal. This allows workloads consisting of a high number of
individual, parallelizable tasks to be distributed among the nodes in the cluster. As a result, these
tasks can leverage the combined memory and processing power of each computer to increase
overall performance. To build a computer cluster, the individual nodes should be connected in a
network to enable internode communication. Computer cluster software can then be used to join
the nodes together and form a cluster. It may have a shared storage device and/or local storage on
each node. Typically, at least one node is designated as the leader node, and acts as the entry
point to the cluster. The leader node may be responsible for delegating incoming work to the
other nodes and, if necessary, aggregating the results and returning a response to the user.
Ideally, a cluster functions as if it were a single system. A user accessing the cluster should not
need to know whether the system is a cluster or an individual machine. Furthermore, a cluster
should be designed to minimize latency in node to node communication.
Clusters are usually deployed to improve speed and/or reliability over that provided by the single
computer, while typically being much more cost effective than single computer of comparable
speed or reliability.
Clusters have the properties as follows:
 Network: Faster, closer connection than a typical network (LAN)
 Low latency communication protocols
 Loosely coupled than SMP (Symmetric multiprocessor)

Types of Cluster
High Availability (HA) or Failover Cluster- These cluster models create availability of
services and resources in an uninterrupted method using the system’s implicit redundancy. The
basic idea in this form of Cluster is that if a node fails, then applications and services can be
made available to other nodes. High availability clusters are used to protect one or more sensitive
applications. These types of Clusters serve as the base for critical missions, mails, files, and
application servers.These are also termed as failover clusters. Computers so often faces failure
issues.In this approach, redundant computer systems are utilized in the situation of any
component malfunction. So, when there is a single point malfunction, the system seems to be
completely reliable as the network has redundant cluster elements. Through the implementation
of high availability clusters, systems can go with extended functionality and provides consistent
computing services like complicated databases, business activities, customer services and
network file distribution.
Load Balancing Cluster - This Cluster distributes all the incoming traffic/requests for resources
from nodes that run the same programs. In this Cluster model, all the nodes are responsible for
tracking orders, and if a node fails, then the requests are distributed amongst all the nodes
available. Such a solution is usually used on web server farms. A splitter is required to distribute
the requests of users to each node, it verifies that each node has the same workload. The
application will be sent to the node that has the fastest time in response to it.
Distributed/Parallel Processing Cluster - This Cluster model enhances availability and
performance for applications that have large computational tasks. A large computational task
gets divided into smaller tasks and distributed across the stations. Such Clusters are usually used
for scientific computing or financial analysis that require high processing power. More tightly
connected computer clusters are developed for work that might consider supercomputing.

Cluster Components

The basic building blocks of clusters are broken down into multiple categories:
 The cluster nodes
 Cluster operating system
 Network switching hardware
 The node/switch interconnect

Cluster Architecture
Need for Cluster Computing
Clusters or combinations of clusters are used when the content is critical, and services need to be
available. Internet Service Providers or ISPs and e-commerce sites demand high availability and
load balancing in a scalable manner. The parallel clusters are being extensively used in the film
industry as they need high-quality graphics and animations. Talking about the Beowulf clusters,
they are dominantly used in science, engineering, and finance to perform various critical
projects. Researchers, organizations, and businesses use clusters to demand enhanced scalability,
resource management, availability, and processing at affordable prices.

Benefits of Cluster Computing


Cluster computing offers a wide array of benefits. Some of these include the following.
Cost-Effectiveness – Compared with the mainframe systems, cluster computing is considered to
be much more cost-effective. These computing systems offer enhanced performance with respect
to the mainframe computer devices.
Processing Speed – The processing speed of cluster computing is justified with that of the
mainframe systems and other supercomputers present in the world.
Expandability – Scalability and expandability are another set of advantages that cluster
computing offers. Cluster computing represents an opportunity for adding any number of
additional resources and systems to the existing computing network.
Increased Resource Availability – Availability plays a vital role in cluster computing systems.
Cluster computers are available with high availability. When one node gets failed, the other
nodes will be active and will function as a proxy for the failed node. This makes sure for
enhanced availability.
Improved Flexibility –Cluster system can be upgraded to the superior specification or extended
through adding newer nodes to the existing server.

Difference between Grid computing and Cluster computing


A Computer Cluster is a local network of two or more homogenous computers. A computation
process on such a computer network i.e. cluster is called Cluster Computing. A cluster computer
refers to a network of same type of computers whose target is to work as a same unit. Such a
network is used when a task requires high computing power or memory. Two or more same
types of computers are clubbed together to make a cluster and perform the task.
Grid Computing can be defined as a network of homogenous or heterogenous computers
working together over a long distance to perform a task that would rather be difficult for a single
machine. Grid computing refers to a network of same or different types of computers whose
target is to provide an environment where a task can be performed by multiple computers
together on need basis. Each computer can work independently as wel

Key Cluster Computing Grid Computing

Computer Nodes must be homogenous i.e. they Nodes may have different operating
Type should have same type of hardware systems and hardwires. Machines can
and operating system. be homogenous or heterogeneous.

Task Computers of Cluster Computing are Computers of Grid Computing can


dedicated to single task and they leverage the unused computing
cannot be used to perform any other resources to the grid computing
task. network to do other tasks.

Location Computers are located close to each Computers of Grid Computing may be
other. Computers are connected by a located at a huge distance from one
high speed local area network bus. another. Computers are connected
using a low speed bus or the internet.

Topology Computers are connected in a Computers are connected in a


centralized network topology. distributed or de-centralized network
topology.

Task A centralized server controls the In Grid Computing, multiple servers


Scheduling scheduling of tasks in cluster can exist. Each node behaves
computing. independently without need of any
centralized scheduling server.

Resource Cluster Computing network has a In Grid Computing, every node


Manager dedicated centralised resource manages its resources independently.
manager, managing the resources of
all the nodes connected.

Autonomy In Cluster computing network, In Grid computing network, each node


whole system works as a single unit. is autonomous or independent and can
be taken down or can be up at any time
without impacting other nodes.
Key Cluster Computing Grid Computing

Utility Computing
Utility computing is purely a concept which cloud computing practically implements. Utility
computing is a service provisioning model in which a service provider makes computing
resources and infrastructure management available to the customer as needed, and charges them
for specific usage rather than a flat rate. This model has the advantage of a low or no initial cost
to acquire computer resources; instead, computational resources are essentially rented.
Utility computing is the process of providing computing service through an on-demand, pay-per-
use billing method. Utility computing is a computing business model in which the provider
owns, operates and manages the computing infrastructure and resources, and the subscribers
accesses it as and when required on a rental or metered basis.
The word utility is used to make an analogy to other services, such as electrical power, that seek
to meet fluctuating customer needs, and charge for the resources based on usage rather than on a
flat-rate basis. This approach, sometimes known as pay-per-use or metered services is becoming
increasingly common in enterprise computing and is sometimes used for the consumer market as
well, for Internet service, Web site access, file sharing, and other applications.

Utility Information Technology Services (UITS)


This is a nice picture analogy, like assume that there are different IT resources and if I open up
the tap, I can have this applications resources falling from the tap and when I do not require I
close it. We can turn on/off the tap as required to access information technology resources.
Business units access information technology services on demand and pay for what they use
according to billingmodel. This requires that the IT function knows and manage sits costs and
delivers information technology services cost effectively.
Utility computing has usually envisioned some form of virtualization so that the amount of
storage or computing power available is considerably larger than that of a single time-sharing
computer.
Properties of utility computing
Scalability - Scalability is an important metric that should be ensured in utility computing to
provide sufficient IT resources available at any time. If the demand gets extended, the response
time and quality should not get impacted.
Demand pricing - Demand pricing is scheduled effectively to pay for both hardware and
software components as per the usage.
Standardized Utility Computing Services - The utility computing service provider offers its
customers a catalog of standardized services. The catalog is produced with different service level
agreements to the customers. So the consumer has no influence on the behind technology on the
computer platform.
Virtualization and Automation – The web services and other resources are shared by the pool
of machines which is used in automation and virtualization technologies. It segregates the
network into many logical resources instead of the available physical resources. The deployment
and installation of a new server can be done easily and repetitive tasks and jobs can be
automated.

Different Types of Utility Computing


Utility computing is of two types: Internal Utility and External Utility. Internal utility means that
the computer network is shared only within a company. Used by several different computer
companies to pool together a special service provider is called External Utility.

Utility Computing Example


On-demand Cyber Infrastructure:
Utility Computing Payment Models
There can be different type of payment models. It can be
- Flat rate
- Tired
- Subscription
- Metered
- Pay as you go
- Standing charges

Different pricing model for different customer based on factors like scale, commitment and
payment frequency. But principle of utility computing remains same. The pricing model is
simply an expression of the provider of the costs of provision of the resources and a profit
margin.

Advantages and Disadvantages of Utility Computing

Convenience - For most clients, the biggest advantage of utility computing is convenience.The
client doesn't have to buy all the hardware, software and licenses needed to do business. Instead,
the client relies on another party to use these services. The burden of maintaining and
administering the system falls to the utility computing company, allowing the client to
concentrate on other tasks.

Compatibility - Closely related to convenience is compatibility. In a large company with many


departments, problems can arise with computing software. Each department might depend on
different software suites. The files used by employees in one part of a company might be
incompatible with the software used by employees in another part. Utility computing gives
companies the option to subscribe to a single service and use the same suite of software
throughout the entire client organization.
Cost - Cost can be either an advantage or disadvantage, depending on how the provider
structures fees. Using an utility computing company for services can be less expensive than
running computer operations in-house. As long as the utility computing company offers the
client the services it needs to do business, there's no need for the client to look elsewhere. Most
of the cost for maintenance becomes the responsibility of the provider, not the client. The client
can choose to rely on simplified hardware, which is less expensive and can be easier to maintain.

However, in some cases what the client needs and what the provider offers aren't in alignment. If
the client is a small business and the provider offers access to expensive supercomputers at a
hefty fee, there's a good chance the client will choose to handle its own computing needs. Why
pay a high service charge for something you don't need?

Reliability - Potential disadvantage is reliability. You store the data

somewhere in third party and if there is a crash or that service provider itself goes out of the
business then your data will be lost. If a utility computing company is in financial trouble or has
frequent equipment problems, clients could get cut off from the services for which they're
paying.

Security - Utility computing systems can be attractive targets for hackers. A hacker might want
to access services without paying for them or snoop around and investigate client files. Much of
the responsibility of keeping the system safe falls to the provider.

Difference between Grid Computing and Utility Computing

Grid Computing, as the name suggests, is a type of computing that combine resources from
various administrative domains to achieve common goal. It can be considered as a distributed
system involving a large number of files, yet more loosely coupled, heterogeneous, and
geographically dispersed as compared to cluster computing. In its simplest form, grid computing
may be represented as a “super virtual computer” composed of many networked loosely coupled
computers acting together to perform humongous tasks.Its main goal is to virtualized resources
to simply solve problems or issues and apply resources of several computers in network to single
problem at same time to solve technical or scientific problem.

Utility Computing, as the name suggests, is a type of computing that provide services and
computing resources to customers. It is basically a facility that is being provided to users on their
demand and charge them for specific usage.Utility computing involves the renting of computing
resources such as hardware, software and network bandwidth on an as-required, on-demand
basis. It is similar to cloud computing and therefore requires cloud-like infrastructure.
Grid Computing Utility Computing

It is a process architecture that combines


It is process architecture that provide on-
different computing resources from
demand computing resources and
multiple locations to achieve desired and
infrastructure on basis of pay per use method.
common goal.

It distributes workload across multiple It allows organization to allocate and segregate


systems and allow computers to contribute computing resources and infrastructure to
their individual resources to common goal. various users on basis of their requirements.

It is used in large organizations such as


It is used in ATMs, back-end Amazon, Google, etc., where they establish
infrastructures, marketing research, etc. their own utility services for computing
storage and applications.

Its main purpose is to make computing


Its main purpose is to integrate usage of
resources and infrastructure management
computer resources from cooperating
available to customer as per their need, and
partners in form of VO (Virtual
charge them for specific usage rather than flat
Organizations).
rate.
Cloud Computing

Characteristics of Cloud Computing

1. Resources Pooling
Resource pooling is one of the essential characteristics of Cloud Computing. Resource pooling
means that a cloud service provider can share resources among several clients, providing
everyone with a different set of services as per their requirements. It means that the Cloud
provider pulled the computing resources to provide services to multiple customers with the help
of a multi-tenant model.It is a multi-client strategy that can be applied to data storage services,
processing services, and bandwidth provided services. 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. This is a fundamental
characteristic of Cloud Computing, and a client can likewise control the computing abilities as
per his needs.
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 powered resources undergo several updates frequently to
optimize their capabilities and potential. The updates are more compatible with the devices and
perform faster than previous versions.
4. Large Network Access
A big part of the cloud characteristics is its ubiquity. The client can access the cloud data or
transfer the data to the cloud from any place just with a device and internet connection. These
capacities are accessible everywhere in the organization and get to with the help of the internet.
These capabilities are available all over the network and accessed with the help of internet.
5. Availability
Resilience in cloud computing means the ability of the service to quickly recover from any
disruption. A cloud’s resilience is measured by how fast its servers, databases, and network
system restarts and recovers from any kind of harm or damage. Availability is another major
characteristic of cloud computing. Since cloud services can be accessed remotely, there is no
geographic restriction or limitation when it comes to utilizing cloud resources.The capabilities of
the Cloud can be modified as per the use and can be extended a lot. It analyses the storage usage
and allows the user to buy extra Cloud storage if needed for a very small amount.
6. Automatic System
The ability of cloud computing to automatically install, configure, and maintain a cloud service
is known as automation in cloud computing.Cloud computing automatically analyses 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
This cloud characteristic helps in reducing the IT expenditure of the organizations. In Cloud
Computing, the client needs to pay the administration for the space they have used. There is no
covered up or additional charge which needs to be paid.
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 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
Reporting services are one of the many cloud characteristics that make it the best choice for
organizations. Measuring and reporting service is helpful for both cloud providers and their
clients. It enables both the provider and the client to monitor and report what services have been
used and for what purpose. This helps in monitoring billing and ensuring the optimum usage of
resources.

Difference between Utility Computing and Cloud Computing

Utility computing requires an infrastructure like a cloud but its main focus is on the business
model on which the computing services are based. It is basically one in which the customers will
get the computing resources through a service provider and they pay as much as they consume.
The main benefit of using utility computing is for its better economics. Utility computing lets
companies pay for the resources of computing and they pay based on when and how much they
need it.

Utility computing is a predecessor to cloud computing. Cloud computing does everything that
utility computing does and also offers much more than that. Cloud computing is not restricted to
any specific network but it is accessible through the internet. The resource virtualization and its
scalability advantage and reliability are more pronounced in the case of cloud computing.
Utility computing can get implemented without cloud computing. Utility computing can be
understood by say a supercomputer that rents out the processing time to various clients. The user
will pay for the resources that they use.
Utility computing is more like a business model than a particular technology. Cloud computing
does support utility computing but not every utility computing will be based on the cloud.
Degrees of Parallelism

• Bit-level parallelism (BLP)

o converts bit-serial processing toward-level processing gradually.


• Instruction-level parallelism (ILP)
o the processor executes multiple instructions simultaneously rather than only one instruction at
a time.
o ILP is executed through pipelining, super scalar computing, VLIW (very long instruction
word) architectures, and multithreading.
o ILP requires branch prediction, dynamic scheduling, speculation, and compiler supportto work
efficiently.
• Data-level parallelism (DLP)

o DLP through SIMD (single instruction, multiple data) and vector machines using vector or
array types of instructions.
o DLP requires even more hardware support and compiler assistance to work properly.
• Task-level parallelism (TLP):
o Ever since the introduction of multicore processors and chip multiprocessors (CMPs), we have
been exploring TLP
o TLP is far from being very successful due to difficulty in programming and compilation of
code for efficient execution on multicore CMPs.

Cyber-Physical Systems

o A cyber-physical system (CPS) is the result of interaction between computational processes


and the physical world.
o CPS integrates “cyber” (heterogeneous, asynchronous) with “physical” (concurrent and
information-dense) objects
o CPS merges the “3C” technologies of computation, communication, and control into an
intelligent closed feedback system

TECHNOLOGIES FOR NETWORK-BASED SYSTEMS

Multicore CPUs and Multithreading Technologies: Today, advanced CPUs or microprocessor


chips assume a multicore architecture with dual, quad, six, or more processing cores. These
processors exploit parallelism at ILP and TLP levels. Both multi-core CPU and many-core GPU
processors can handle multiple instruction threads at different magnitudes today. Multiple cores
are housed in the same chip with an L2 cache that is shared by all cores. In the future, multiple
CMPs could be built on the same CPU chip with even the L3 cache on the chip. Multicore and
multithreaded CPUs are equipped with many high-end processors, including the Intel i7, Xeon,
AMD Opteron, Sun Niagara, IBM Power 6, and X cell processors. Each core could be also
multithreaded.

Memory, Storage, and Wide-Area Networking: Memory chips have experienced a 4x increase in
capacity every three years. For hard drives, capacity increased from 260 MB in 1981 to 250 GB
in 2004. Disks or disk arrays have exceeded 3 TB in capacity. The rapid growth of flash memory
and solid-state drives (SSDs) also impacts the future of HPC and HTC systems.

System-Area Interconnects: The nodes in small clusters are mostly interconnected by an


Ethernet switch or a local area network (LAN).

As Figure shows, a LAN typically is used to connect client hosts to big servers. A storage area
network (SAN) connects servers to network storage such as disk arrays. Network attached
storage (NAS) connects client hosts
directly to the disk arrays. All three types of networks often appear in a large cluster built with
commercial components.

Wide-Area Networking: High-bandwidth networking increases the capability of building


massively distributed systems. The rapid growth of Ethernet bandwidth from 10 Mbps in1979 to
1 Gbps in 1999, and 40 ~ 100 GE in 2011. It has been speculated that 1 Tbps network links will
become available by 2013.

You might also like