You are on page 1of 134

1

CLOUD COMPUTING
Chapter 1
Learning Outcomes
2

• LO1 - Demonstrate an understanding of the


1 fundamentals of Cloud Computing and its architectures.

• LO2 - Evaluate the deployment models, service models


and technological drivers of Cloud Computing and
2 validate their use.

• LO3 - Develop Cloud Computing solutions using service


3 provider’s frameworks and open source tools.

• LO4 - Analyse the technical challenges for cloud


4 applications and assess their risks.
Learning Outcomes
3

 LO1 - Demonstrate an understanding of the


fundamentals of Cloud Computing and its
architectures.
Networking Paradigm:
4
Peer-to-peer Computing
5
Peer-to-peer Architecture
6

 Peer-to-peer (P2P) architecture is a type of


network in which each workstation has equivalent
capabilities and responsibilities.
 This differs from client/server architectures where
some computers are dedicated to serving the
others.
Peer-to-peer Architecture
7

 Peer-to-peer networks are generally simpler but


they usually do not offer the same performance
under heavy loads.
 The P2P network itself relies on computing power
at the ends of a connection rather than from within
the network itself.
Peer-to-peer Architecture
8

 P2P is often mistakenly used as a term to describe


one user linking with another user to transfer
information and files through the use of a common
P2P client to download MP3s, videos, images,
games and other software.
 P2P networks are used for sharing files, but a P2P
network can also mean Grid Computing or Instant
messaging.
How Peer-to-peer File-sharing Clients
9
Work
 Once you have downloaded and installed a P2P
client, if you are connected to the Internet you can
launch the utility and you are then logged into a
central indexing server.
 This central server indexes all users who are
currently online connected to the server.
 This server does not host any files for downloading.
 The P2P client will contain an area where you can
search for a specific file.
How Peer-to-peer File-sharing Clients
10
Work
 The utility queries the index server to find other
connected users with the file you are looking for.
 When a match is found the central server will tell you
where to find the requested file.
 You can then choose a result from the search query and
your utility when then attempt to establish a connection
with the computer hosting the file you have requested.
 If a successful connection is made, you will begin
downloading the file.
 Once the file download is complete the connection will
be broken.
How Peer-to-peer File-sharing Clients
11
Work
How Peer-to-peer File-sharing Clients
12
Work
 A second model of P2P clients works in the same
way but without a central indexing server.
 P2P software simply seeks out other Internet users
using the same program and informs them of your
presence online, building a large network of
computers as more users install and use the
software.
P2P Security Concerns
13

 One major concern of using P2P architecture in the


workplace is network security.
 Security concerns stem from the architecture itself.
 Today we find most blocking and routing handles by
a specific server within network, but the P2P
architecture has no single fixed server responsible
for routing and requests.
 The first step in securing your P2P network is to
adopt a strict usage policy within the workplace.
P2P Security Concerns
14
P2P Security Concerns
15

 In securing your network against attacks and viruses,


there are two main strategies where focus is on
controlling the network access or the focus is put
on controlling the files.
 A protocol-based approach is where system
administrators use a software or hardware solution
to watch for and block intrusive network traffic
being received through the P2P clients.
P2P Security Concerns
16

 A second method of protection is a software solution


which would provide file surveillance to actively
search for files based on their type, their name,
their signature or even their content.
Peer-to-peer Computing
17

 Peer-to-peer computing is an increasingly popular


method to share resources and information among
users.
 The most common use of peer-to-peer computing
today is file sharing and there are many protocols
and applications available for this purpose.
 The technology is also used for scientific purposes
where the traditional client/server model is not
capable of handling the scale of the problem.
Peer-to-peer Computing
18

 A peer-to-peer network is a decentralized


computer network that relies mostly on the resources
of equal peers instead of a few powerful servers.
 The peers are often connected as an ad hoc
network.
 Such networks can be used for many things, for
example:
 sharing files,
 real-time data and

 telephony traffic.
Peer-to-peer Computing
19

 In a pure peer-to-peer network there are no


dedicated clients or servers, but instead all the
peers can function as both clients and servers
depending on the circumstances.
 A typical example for a non peer-to-peer network
is an FTP server where the client and server
programs both have different distinct roles where
the client always initiates the transfer and the
servers role is to service the clients request.
Types of peer-to-peer networks
20

 Pure peer-to-peer:
 Peers act as both clients and server.
 There is no central server managing the network.
 There is no central router.

 Hybrid peer-to-peer:
 Has a central server that keeps information on peers
and responds to requests for that information.
 Peers are responsible for hosting the information (as the
central server does not store files), for letting the
central server know what files they want to share, and
for downloading its shareable resources to peers that
request it.
Advantages of peer-to-peer networks
21

 All the peers provide resources to the network.


 These resources can be anything from bandwidth
and storage space to computing power depending
on the purpose of the network.
 Thus if more nodes connect to the network and the
demand on the system increases, the total capacity
of the system also increases.
 This is a major advantage over traditional networks
using the client/server model where additional
clients could mean less resources available for each
client.
Advantages of peer-to-peer networks
22

 Peer-to-peer networks are particularly useful when


distributing large files because of the bandwidth
requirement.
 Another advantage is that the robustness increases
since there is no single point of failure in a pure
peer-to-peer network.
 Even if it is a hybrid peer-to-peer network with a
single server data can be distributed among
several peers and thus making it more available.
Different uses of peer-to-peer
23
computing
 File sharing
 Bioinformatics

 Artificial intelligence

 Grid computing
File Sharing
24

 File sharing is the practice of making files


available for other users to download over the
Internet and smaller networks.
 Usually file sharing implements the peer-to-peer
networking model where the peers in the network
are the personal computers of the users.
 The shared files are thus stored on the computers
and are made available so that other users can
download them.
File Sharing
25

 Peer-to-peer file sharing is distinct from file trading


in that downloading files from a peer-to-peer
network does not require uploading, although some
networks either provide incentives for uploading
such as credits or force the sharing of files being
currently downloaded.
Bioinformatics
26

 Peer-to-peer networks have also begun to attract


attention from scientists, especially those that deal
with large datasets such as bioinformatics.
 Peer-to-peer networks can be used to run large
programs that handle large amounts of data, for
example tests to identify drug candidates.
 This is possible since peer-to-peer networks scale
well.
Artificial intelligence
27

 Swarm intelligence (SI) is an artificial intelligence


technique based around the study of collective
behaviour in decentralised, self-organised, systems.
 SI systems are typically made up of a population of
simple agents that interact locally with each other
and with their environment.
 Although there is normally no centralised control
structure dictating how individual agents should
behave, local interactions between such agents
often lead to the emergence of global behaviour.
Artificial intelligence
28

 Examples of systems like this can be found in nature,


including ant colonies, bird flocking, animal herding,
bacteria molding and fish schooling.
 A peer-to-peer network can be used to model
swarm intelligence where each peer in the network
corresponds to a single agent.
Grid computing
29

 Grid computing is an emerging computing model


that provides the ability to perform higher
throughput computing by taking advantage of many
networked computers to model a virtual computer
architecture that is able to distribute process
execution across a parallel infrastructure.
 Grids use the resources of many separate
computers (peers) connected by a network (usually
the Internet) to solve large-scale computation
problems.
Grid computing
30
Grid computing
31

 Grids provide the ability to perform computations


on large data sets, by breaking them down into
many smaller ones, or provide the ability to
perform many more computations at once than
would be possible on a single computer, by dividing
the labor between multiple peers.
Client-Server Computing
32
Client-Server Computing
33

 Client/Server computing is a computing model in


which client and server computers communicate with
each other over a network.
 A server takes requests from client computers and
shares its resources, applications and/or data with
one or more client computers on the network
 A client is a computing device that initiates contact
with a server in order to make use of a shareable
resource.
Client-Server Computing
34
Client-Server Computing
35

 The client establishes a connection to the server


over a local area network (LAN) or wide-area
network (WAN), such as the Internet.
 Once the server has fulfilled the client's request, the
connection is terminated.
 Web browser is a client program that has
requested a service from a server; in fact, the
service and resource the server provided is the
delivery of this Web page.
Client-Server Computing - Example
36

 When you check your bank account from your


computer, a client program in your computer forwards
a request to a server program at the bank.
 That program may in turn forward a request to its own
client program, which then sends a request to a
database server at another bank computer.
 Once your account balance has been retrieved from
the database, it is returned back to the bank data
client, which in turn serves it back to the client in your
personal computer, which then displays the information
to you.
Client-Server Computing - Example
37
Distributed Computing
38
Distributed Computing
39

 Distributed computing refers to multiple computer


systems working on a single problem.
 A single problem is divided into many parts, and
each part is solved by different computers.
 As long as the computers are networked, they can
communicate with each other to solve the problem.
 If done properly, the computers perform like a
single entity.
Distributed Computing
40
Distributed Computing
41

 The ultimate goal of distributed computing is to


maximize performance by connecting users and IT
resources in a cost-effective, transparent and
reliable manner.
 It also ensures fault tolerance and enables resource
accessibility in the event that one of the components
fails.
Distributed Computing
42

 A distributed computing architecture consists of a


number of client machines with very lightweight
software agents installed with one or more dedicated
distributed computing management servers.
 The agents running on the client machines usually detect
when the machine is idle and send a notification to the
management server that the machine is not in use and
available for a processing job.
 The agents then requests an application package.
Distributed Computing
43
Distributed Computing
44

 When the client machine receives this application


package from the management server to process, it
runs the application software when it has free CPU
cycles and sends the result back to the management
server.
 When the user returns and requires the resources
again, the management server returns the resources
was using to perform different tasks in the user's
absence.
Distributed Computing
45
Cluster Computing
46
Cluster Computing
47

 A computer cluster consists of a set of loosely or


tightly connected computer that work together so
that, in many respects, they can be viewed as a
single system.
 The components of a cluster are usually connected
to each other through fast local area networks, with
each node running its own instance of operating
system.
Computer Cluster
48

 They are usually deployed to improve performance


and availability over that of a single computer,
while typically being much more cost-effective than
single computers of comparable speed or
availability.
Computer Cluster
49
Types of clusters
50

 Computer clusters have a wide range of


applicability and deployment, ranging from small
business clusters, such as web-service support with a
handful of nodes to computation-intensive scientific
calculations of the fastest supercomputers in the
world today.
Types of clusters
51
Load-balancing clusters
52

 “Load-balancing clusters” are configurations in


which cluster-nodes share computational workload
to provide better overall performance.
 A web server cluster may assign different queries
to different nodes, so the overall response time will
be optimized or a high-performance cluster used
for scientific computations would balance load with
different algorithms.
Load-balancing clusters
53
High-availability clusters
54

 “High-availability clusters” (also known as failover


clusters, or HA clusters) improve the availability of
the cluster approach.
 They operate by having redundant nodes, which
are then used to provide service when system
components fail.
 HA cluster implementations attempt to use
redundancy of cluster components to eliminate
single points of failure.
High-availability clusters
55
Fail-over clusters
56

 “Fail-over clusters” consist of 2 or more network


connected computers with a separate heartbeat
connection between the 2 hosts.
 The Heartbeat connection between the 2 machines
is being used to monitor whether all the services are
still in use: as soon as a service on one machine
breaks down the other machines try to take over.
Benefits
57

 Clusters are primarily designed with performance in


mind.
 Clustering servers is completely a scalable solution.
You can add resources to the cluster afterwards.
 If a server in the cluster needs any maintenance, you
can do it by stopping it while handing the load over to
other servers.
 Low frequency of maintenance routines, resource
consolidation and centralized management.
 Capable of enabling data recovery in the event of a
disaster and providing parallel data processing and
high processing capacity.
High-Performance Computing
58
High-Performance Computing
59

 High-performance computing (HPC) is the use of


super computers and parallel processing techniques
for solving complex computational problems.
 HPC technology focuses on developing parallel
processing algorithms and systems by incorporating
both administration and parallel computational
techniques.
High-Performance Computing
60

 High-performance computing is typically used for


solving advanced problems and performing
research activities through computer modeling,
simulation and analysis.
 HPC systems have the ability to deliver sustained
performance through the concurrent use of
computing resources.
 The terms high-performance computing and
supercomputing are sometimes used
interchangeably.
High-Performance Computing
61
High-Performance Computing
62

 High-performance computing (HPC) evolved due


to meet increasing demands for processing speed.
 HPC brings together several technologies such as
computer architecture, algorithms, programs and
electronics, and system software under a single
canopy to solve advanced problems effectively and
quickly.
 A highly efficient HPC system requires a high-
bandwidth, low-latency network to connect multiple
nodes and clusters.
High-Performance Computing
63

 HPC technology is implemented in multidisciplinary


areas including:
 Biosciences

 Geographical data

 Oil and gas industry modeling

 Electronic design automation

 Climate modeling

 Media and entertainment


Parallel Computing
64
Parallel Computing
65

 Parallel computing is a type of computing architecture


in which several processors execute or process an
application or computation simultaneously.
 Parallel computing helps in performing large
computations by dividing the workload between more
than one processor, all of which work through the
computation at the same time.
 Most supercomputers employ parallel computing
principles to operate.
 Parallel computing is also known as parallel processing.
Parallel Computing
66
Parallel Computing
67

 Parallel processing is generally implemented in


operational environments/scenarios that require
massive computation or processing power.
 The primary objective of parallel computing is to
increase the available computation power for faster
application processing or task resolution.
 Parallel computing infrastructure is housed within a
single facility where many processors are installed
in a server rack or separate servers are connected
together.
Parallel Computing
68
Parallel Computing
69

 The application server sends a computation or


processing request that is distributed in small chunks
or components, which are concurrently executed on
each processor/server.
 Parallel computation can be classified as bit-level,
instructional level, data and task parallelism.
Parallel Computing
70

 Parallel computers can be roughly classified


according to the level at which the hardware
supports parallelism, with multi-core and multi-
processor computers having multiple processing
elements within a single machine, while clusters,
MPPs, and grids use multiple computers to work on
the same task.
 Specialized parallel computer architectures are
sometimes used alongside traditional processors, for
accelerating specific tasks.
Grid Computing
71
Grid Computing
72

 Grid computing is a group of computers physically


connected (over a network or with Internet) to
perform a dedicated tasks together, such as
analyzing e-commerce data and solve a complex
problem.
 Grids are a form of "super virtual computer" that
solve a particular application.
 The grid size may vary from small to large
enterprises network.
Grid Computing
73

 A computing grid is constructed with the help of


grid middleware software that allows them to
communicate.
 Middleware is used to translate one node
information passed stored or processed information
to another into a recognizable format.
 It is the form of "distributed computing" or "peer-to-
peer computing".
Grid Computing
74
Grid Computing
75

 Grid computing is distinguished from the cluster


computing, because in Grid computing each node
has heterogeneous and geographically dispersed
(such as a WAN) and its own resource manager and
perform a different task and are loosely connected
by the Internet or low-speed networks, but in cluster
computing resources are managed in a single
location (Like a LAN).
Grid Computing
76
Grid Computing
77

 Grid computing solve challenging problems such as


earthquake simulation and weather modeling.
 Grids computing is a way of using resources
optimally inside an organization.
 Grid architecture can also be used for load
balancing and redundant network connections.
Cloud Computing Fundamentals:
78
What is cloud computing?
79
What is cloud computing?
80

 Cloud computing is a general term for the delivery


of hosted services over the internet.
 Cloud computing enables companies to consume a
compute resource, such as a virtual machine (VM),
storage or an application, as a utility -- just like
electricity -- rather than having to build and
maintain computing infrastructures in house.
What is cloud computing?
81

 Cloud computing is the use of various services, such as


software development platforms, servers, storage and
software, over the internet, often referred to as the
"cloud."
 Three cloud computing characteristics that are common
among all cloud-computing vendors:
 The back-end of the application (especially hardware) is
completely managed by a cloud vendor.
 A user only pays for services used (memory, processing time
and bandwidth, etc.).
 Services are scalable
Principles of Cloud Computing
82

 Enablement: Plan for cloud computing as a


strategic enabler, rather than as an outsourcing
arrangement or technical platform.
 Cost/benefit: Evaluate the benefits of cloud
acquisition based on a full understanding of the
costs of cloud compared with the costs of other
technology platform business solutions.
 Enterprise risk: Take an enterprise risk management
perspective to manage the adoption and use of
cloud.
Principles of Cloud Computing
83

 Capability: Integrate the full extent of capabilities


that cloud providers offer with internal resources to
provide a comprehensive technical support and
delivery solution.
 Accountability: Manage accountabilities by clearly
defining internal and provider responsibilities.
 Trust: Make trust an essential part of cloud
solutions, building trust into all business processes
that depend on cloud computing.
Cloud Ecosystem
84
Cloud Ecosystem
85

 A cloud ecosystem is a complex system of


interdependent components that all work together
to enable cloud services.
 In cloud computing, the ecosystem consists of
hardware and software as well as cloud customers,
cloud engineers, consultants, integrators and
partners.
How a cloud ecosystem works
86

 The center of a cloud ecosystem is a public cloud


provider.
 It might be an IaaS provider such as Amazon Web
Services (AWS) or a SaaS vendor such as Salesforce.
 Radiating out from the center of the cloud are software
companies that use the provider’s anchor platform, as
well as consultants and companies that have formed
strategic alliances with the anchor provider.
 There is no vendor lock-in because these companies
overlap, making the ecosystem more complex.
How a cloud ecosystem works
87

 For example, AWS is the center of its own


ecosystem, but it's also a part of the Salesforce
ecosystem.
 Salesforce runs a number of its services on AWS's
infrastructure, and Salesforce customers can gain
access, through devices called connectors, to pieces
of AWS, such as its Simple Storage Service (S3).
How a cloud ecosystem works
88
Cloud Architecture
89
Cloud Architecture
90

 Cloud computing architecture refers to the


components and subcomponents required for cloud
computing.
 These components typically consist of a front end
platform (fat client, thin client, mobile device), back
end platforms (servers, storage), a cloud based
delivery, and a network (Internet, Intranet,
Intercloud).
Cloud Architecture
91
Cloud Architecture
92

 Cloud computing has been trending in today’s


technology-driven world for years now, and with
good reason.
 Cloud computing offers many advantages with
flexibility, storage, sharing and easy accessibility,
cloud computing is being used by companies of all
sizes.
Cloud Architecture
93

 Even at home, we use cloud technologies for various


daily activities.
 From Google Docs to OneDrive to Skype and
Spotify, these services are provided to us through
virtual networks.
Cloud Architecture
94

 Cloud architecture can be classified into two


sections: front-end and back-end, connected to each
other via a virtual network or the internet.
 There are other parts of cloud architecture including
middleware, cloud resources, etc.
What is Front End Cloud Computing?
95

 Front-end is the side that is visible to the client,


customer, or user.
 Front-end pieces include the user interface, and the
client’s computer system or network that is used for
accessing the cloud system.
What is Front End Cloud Computing?
96

 You have probably noticed that different cloud


computing systems use different user interfaces—for
example, not only can you choose from a variety of
web browsers (including Chrome, Safari, Firefox,
etc.), but the Google Docs user interface is different
than that of Salesforce.
What is Back End Cloud Computing?
97

 The back-end pieces are on the side used by the


service provider.
 These include various servers, computers, data
storage systems, virtual machines, and programs
that together constitute the cloud of computing
services.
 The back-end side also is responsible for providing
security mechanisms, traffic control and protocols
that connect networked computers for
communication.
What is Back End Cloud Computing?
98
99
What is Cloud Based Delivery?
100

 Cloud computing services are everywhere these


days.
 For example, if your company uses Salesforce or
QuickBooks—or you use Google Drive or Office
365 at home or work, you’re a cloud computing
user.
 These are all examples of subscriptions a company
or individual can purchase that enable them to use
the software, typically known as Software-as-a-
Service, or SaaS.
Network Connectivity in Cloud
101
Computing
 Cloud networking (and Cloud based networking) is
the access of networking resources from a
centralized third-party provider using Wide Area
Networking (WAN) or Internet-based access
technologies.
Network Connectivity in Cloud
102
Computing
 Cloud networking is related the concept
of cloud computing, in which centralized computing
resources are shared for customers or clients.
 The network can be shared as well as the computing
resources.
 It has spurred a trend of pushing more network
management functions into the cloud, so that fewer
customer devices are needed to manage the
network.
Network Connectivity in Cloud
103
Computing
Network Connectivity in Cloud
104
Computing
 The Wireless LAN market was one of the first to start
using a more distributed, cloud-based approach to
building private networks using WAN and Wireless LAN
connections.
 Companies including Aerohive Networks, Meraki, and
Pareto Networks popularized the use of cloud
networking techniques to create large, distributed
Wireless LANs that could be centrally managed in the
cloud.
 Meraki was acquired by Cisco and Pareto was
acquired by Aerohive Networks.
Network Connectivity in Cloud
105
Computing
Network Connectivity in Cloud
106
Computing
 Improved Internet access and more reliable WAN
bandwidth has made it easier to push more
networking management functions into the cloud.
 This has been one of the drivers of cloud computing
services as well as enterprise cloud software.
 It has spurred demand for cloud networking as well,
as customers look for easier ways to access to build
networks using a cloud-based services.
Network Connectivity in Cloud
107
Computing
 Cloud networking is a form of Software Defined
Networking (SDN) technology, in which groups of
networking switches and access devices can
deployed over the wide area as shared, virtual
resources.
 Other terms that describe this shift include
Software-Defined WAN (SD-WAN) and Cloud
WAN.
Network Connectivity in Cloud
108
Computing
Software-Defined WAN
109

 The basic concept of cloud networking, in which


fewer management devices are installed in the
branch offices or client premises and more routing
and management functions are pushed to the cloud,
is now being pursued for a wider range of
networking products, which include branch office
routers, WAN optimization software, and firewalls.
Software-Defined WAN
110
Software-Defined WAN
111

 The use of cloud based networking to manage and


deploy network functions across the WAN is also
being described as Software Defined WAN (SD-
WAN) or Cloud WAN.
 The main goal is to free up services from being
attached to specific hardware so that services can
be deployed more quickly using software over a
networking connection.
Managing the Cloud
112
Managing the Cloud
113

 Cloud management means the software and


technologies designed for operating and monitoring
applications, data and services residing in the
cloud.
 Cloud management tools help ensure cloud
computing-based resources are working optimally
and properly interacting with users and other
services.
Cloud Management Strategies
114

 Cloud management strategies typically involve


numerous tasks including performance monitoring
(response times, latency, up-time, etc.), security and
compliance auditing and management, and
initiating and overseeing disaster recovery and
contingency plans.
Cloud Management Strategies
115

 With cloud computing growing more complex and a


wide variety of private, hybrid, and public cloud-
based systems and infrastructure already in use, a
company’s collection of cloud management tools
needs to be just as flexible and scalable as its cloud
computing strategy.
Migrating Application to Cloud
116

 Cloud migration is the process of moving data,


applications or other business elements from an
organization's onsite computers to the cloud, or
moving them from one cloud environment to another.
Migrating Application to Cloud
117

 Users of public cloud services can generally


select from three basic cloud provisioning
categories:
 User self-provisioning: Customers purchase cloud
services directly from the provider, typically through
a web form or console interface. The customer pays
on a per-transaction basis.
Migrating Application to Cloud
118

 Users of public cloud services can generally


select from three basic cloud provisioning
categories:
 Advanced provisioning: Customers contract in
advance a predetermined amount of resources,
which are prepared in advance of service. The
customer pays a flat fee or a monthly fee.
Migrating Application to Cloud
119

 Users of public cloud services can generally


select from three basic cloud provisioning
categories:
 Dynamic provisioning: The provider allocates
resources when the customer needs them, then
decommissions them when they are no longer
needed. The customer is charged on a pay-per-use
basis.
Migrating Application to Cloud
120

 Cloud migration sometimes involves moving data or


other business elements between cloud environments,
which is known as cloud-to-cloud migration.
 The process of transitioning to a different cloud
provider is known as cloud service migration.
 Successful migration to a service provider’s
environment may require the use of middleware,
such as a cloud integration tool, to bridge any gaps
between the vendor’s and the customer’s (or other
vendor’s) technologies.
Migrating Application to Cloud
121
Application migration to the cloud:
122
Selecting the right apps
 An efficient cloud will only sustain its value if your
applications can share and scale in an elastic and
reliable manner.
 It’s essential to employ a staggered approach and
prioritize applications to be moved to the cloud to
reduce the risks associated with cloud application
migration.
 It is necessary to understand the general
parameters to consider for application migration
when you desire to move to the cloud.
Application migration to the cloud:
123
Selecting the right apps
1) Identify the type of application
 It is essential to recognize the type of application
chosen for migration.
 If the application is mission critical, then it should

have the lowest priority for cloud migration because


of the uncertainty of the new infrastructure.
Application migration to the cloud:
124
Selecting the right apps
2) Consider usage patterns
 Usage patterns in terms of predictability,
unpredictability and consistency should be
considered.
 This will help identify the amount of hardware

volatility needed during application migration to


the cloud.
Application migration to the cloud:
125
Selecting the right apps
3) Determine if the application needs internal or
external user support
 Applications that have external users will have
lower priority of migration to the cloud than those
with internal users.
 External user support implies exposing the private
cloud over the demilitarized zone (DMZ) and to the
outside world as well.
 Additional security measures are

required in the private cloud.


Application migration to the cloud:
126
Selecting the right apps
4) Consider the application architecture and design
 Check whether the application architecture and
design promote parallelism of operations.
 Make sure that applications have multithreaded
execution capabilities, wherein they can be divided
into smaller tasks and jobs such that each of them
can run independently on their own on definite sets
of machines.
 This will help application migration and

efficient utilization of the private cloud.


Application migration to the cloud:
127
Selecting the right apps
5) Determine whether the application is SOA based
 A SOA-based application has several benefits that
make it fit for cloud application migration.
 Service oriented architecture will generally lean

toward having a clearly defined interface and


clearly defined encapsulated functionalities, which
will be easy to transfer to the private cloud.
Application migration to the cloud:
128
Selecting the right apps
6) Evaluate the application’s statefulness
 It is important to ascertain whether the application
keeps a lot of information stored within it during its
operation.
 For example, if a request is made and temporary

data is stored within the application, any failure in


the hardware or in the cloud network would mean
that the request is lost.
Application migration to the cloud:
129
Selecting the right apps
7) Check if the application depends on third-party
software/components
 Consider the latency and bandwidth constraints in
communicating with components/services that cannot be
migrated to the cloud, before application migration.
 If the application is dependent on third-party software,
there could be issues with licensing, as policies might be
different.
 There may also be compatibility issues that need to be

checked before application migration to the cloud.


Application migration to the cloud:
130
Selecting the right apps
7) Check if the application depends on third-party
software/components
References
131

 Cse.chalmers.se. (2018). [online] Available at:


http://www.cse.chalmers.se/~tsigas/Courses/DCDSeminar/Files/P2PComputing.pdf
[Accessed 28 May 2018].
 Cs.ucsb.edu. (2018). [online] Available at:
http://www.cs.ucsb.edu/~almeroth/classes/F02.276/papers/p2p.pdf [Accessed 28 May
2018].
 Webopedia.com. (2018). Client/Server Computing. [online] Available at:
https://www.webopedia.com/Computer_Science/Client_Server_Computing [Accessed 28 May
2018].
 Medium. (2017). Cluster Computing – vinay singh – Medium. [online] Available at:
https://medium.com/@1992singhvinay/cluster-computing-2e8e07b83d09 [Accessed 26 Jun.
2018].
 En.wikipedia.org. (2018). Distributed computing. [online] Available at:
https://en.wikipedia.org/wiki/Distributed_computing [Accessed 9 Jul. 2018].
References
132

 insideHPC. (2018). What is high performance computing? - insideHPC. [online] Available at:
https://insidehpc.com/hpc-basic-training/what-is-hpc/ [Accessed 20 Jul. 2018].
 Techopedia.com. (2018). What is a Distributed Computing System? - Definition from
Techopedia. [online] Available at: https://www.techopedia.com/definition/7/distributed-
computing-system [Accessed 21 Jul. 2018].
 Techopedia.com. (2018). What is High-Performance Computing (HPC)? - Definition from
Techopedia. [online] Available at: https://www.techopedia.com/definition/4595/high-
performance-computing-hpc [Accessed 21 Jul. 2018].
 Techopedia.com. (2018). What is Parallel Computing? - Definition from Techopedia. [online]
Available at: https://www.techopedia.com/definition/8777/parallel-computing [Accessed 21
Jul. 2018].
 Kb.iu.edu. (2018). What are parallel computing, grid computing, and supercomputing?. [online]
Available at: https://kb.iu.edu/d/angf [Accessed 21 Jul. 2018].
 | (2018). What is Grid Computing - Definition. [online] Ecomputernotes.com. Available at:
http://ecomputernotes.com/fundamental/introduction-to-computer/grid-computing [Accessed
21 Jul. 2018].
References
133

 Azure.microsoft.com. (2018). What is cloud computing? A beginner’s guide | Microsoft Azure.


[online] Available at: https://azure.microsoft.com/en-in/overview/what-is-cloud-computing/
[Accessed 21 Jul. 2018].
 SearchITChannel. (2018). What is cloud ecosystem? - Definition from WhatIs.com. [online]
Available at: https://searchitchannel.techtarget.com/definition/cloud-ecosystem [Accessed 24
Jul. 2018].
 Simplilearn.com. (2013). Cloud Computing Architecture - Front-end & Back-end | Cloud
Computing. [online] Available at: https://www.simplilearn.com/cloud-computing-architecture-
article [Accessed 24 Jul. 2018].
 SDxCentral. (2018). What is Cloud Networking or Cloud Based Networking?. [online] Available
at: https://www.sdxcentral.com/cloud/definitions/all-about-cloud-networking/ [Accessed 24
Jul. 2018].
 SearchCloudApplications. (2018). What is cloud migration? - Definition from WhatIs.com.
[online] Available at: https://searchcloudapplications.techtarget.com/definition/cloud-
migration [Accessed 24 Jul. 2018].
 ComputerWeekly.com. (2018). Application migration to the cloud: Selecting the right apps.
[online] Available at: https://www.computerweekly.com/tip/Application-migration-to-the-
cloud-Selecting-the-right-apps [Accessed 24 Jul. 2018].
References
134

 Continuitycentral.com. (2018). Six principles for effective cloud computing. [online] Available at:
http://www.continuitycentral.com/news06174.html [Accessed 14 Aug. 2018].
 Webopedia.com. (2018). What is Cloud Management? Webopedia Definition. [online]
Available at: https://www.webopedia.com/TERM/C/cloud_management.html [Accessed 14
Aug. 2018].

You might also like