Cloud Computing
Cloud Computing
Cloud Computing
4. Compliance - Which refers to the risk of a level compliance deviation from the provider
against the regulations applied by the user.
Disadvantages of Cloud
5. Vulnerable in the Event of An Attack - There are lots of arguments against
cloud computing one of which is computing because the Cloud Computing work system
is online, each component that is on Cloud Computing can be exposed to a wide range,
this is a wide open opportunity for attacks on data or activities stored on the server.
When an attack is carried out by hackers, the problems that occur are data security, and
data privacy.
6. Data Mobility - Which refers to the possibility of sharing data between cloud
services and how to retrieve data if one day the user makes a process of terminating
cloud computing services.And there is local storage where the data can be used at any
time as needed.
Disadvantages of Cloud
7. Technical Problem - Besides that the use of Cloud Computing makes you unable
to manage it yourself when there is a problem or a problem, you must contact customer
support who is not necessarily ready 24/7. This is a problem because for some support
you also have to pay more money.
8. Low Connection - Does not work well if the connection is slow. The quality of
cloud computing servers is one of the most important considerations before we decide
to provide cloud computing server service providers. When the server is down, we will
be harmed because of poor server quality.
https://faun.pub/10-disadvantages-risks-of-cloud-computing-35111de75611
Challenges of Cloud
1. Accounting Management
2. Compliance
3. Data Privacy
4. Monitoring
5. Network Bottlenecks
6. Reputations
7. Security
8. Service Level Agreement (SLA)
9. Software Stack
10. Storage
11. Vendor Lock-in
The Law of Cloudonomics
1. Utility Service Cost Less Even Though THey Cost More
2. On-Demand Trumps Forecasting
3. The Peak of the Sum is Never Greater than the Sum of The Pick
4. Aggregate Demand is Smoother than individual
5. Average Unit Cost Are Reduced by Distributing Fixed Costs Over
More Units of Output.
6. Superiority in Numbers is the Most Important Factor in the
Result of a Combat
7. Space Time is a Continuum (Einstein)
8. Dispersion is the inverse square of the latency
9. Don’t pull your eggs in one basket
10. An object at rest tends to stay at rest (Newton)
Cloud Computing - Reference Architecture
Cloud Computing - Reference Architecture
Cloud Computing - Actors
Cloud Computing - Actor’s Interaction
Cloud Computing - Actor’s Interaction
Example
Cloud Computing - Actor’s Interaction
Example
Cloud Computing - Actor’s Interaction
Example
Cloud Computing - Consumers
Cloud Computing - Consumers
Cloud Computing - Providers
Cloud Computing - Providers’ Activities
52
Cloud Computing - Auditors
Cloud Computing - Brokers
Cloud Computing - Brokers’ Services
Cloud Computing - Carriers
Cloud Computing -
Scopes Between Providers & Consumers
Presentation Outline
1. SaaS
2. PaaS
3. IaaS
SaaS - Services
- Business Services - SaaS Provider provides various business services to start-up the business. The SaaS business
services include ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), billing, and sales.
- Document Management - SaaS document management is a software application offered by a third party (SaaS
providers) to create, manage, and track electronic documents. Skip Ad
- Social Networks - As we all know, social networking sites are used by the general public, so social networking service
providers use SaaS for their convenience and handle the general public's information.
- Mail Services - To handle the unpredictable number of users and load on e-mail services, many e-mail providers
offering their services using SaaS.
59
SaaS - Advantages
1. Easy to buy :- SaaS pricing is based on a monthly fee or annual fee subscription, so it allows organizations to access
business functionality at a low cost, which is less than licensed applications.
2. One to Many :- SaaS services are offered as a one-to-many model means a single instance of the application is shared by
multiple users.
3. Less hardware:-The software is hosted remotely, so organizations do not need to invest in additional hardware.
4. Low maintenance:- Software as a service removes the need for installation, set-up, and daily maintenance for the
organizations. The initial set-up cost for SaaS is typically less than the enterprise software. SaaS vendors are pricing their
applications based on some usage parameters, such as a number of users using the application. So SaaS does easy to
monitor and automatic updates.
5. No versions update:- All users will have the same version of the software and typically access it through the web
browser. SaaS reduces IT support costs by outsourcing hardware and software maintenance and support to the IaaS
provider.
6. Multi-device support:- SaaS services can be accessed from any device such as desktops, laptops, tablets, phones, and
thin clients.
7. API Integration:- SaaS services easily integrate with other software or services through standard APIs.
8. No client-side installation:- SaaS services are accessed directly from the service provider using the internet connection,
so do not need to require any software installation.
60
SaaS - Disadvantages
1. Security:- Actually, data is stored in the cloud, so security may be an issue for some users. However, cloud computing is
not more secure than in-house deployment.
2. Latency issue:- Since data and applications are stored in the cloud at a variable distance from the end-user, there is a
possibility that there may be greater latency when interacting with the application compared to local deployment.
Therefore, the SaaS model is not suitable for applications whose demand response time is in milliseconds.
3. Total Dependency on Internet:-Without an internet connection, most SaaS applications are not usable.
4. Switching between SaaS vendors is difficult:- Switching SaaS vendors involves the difficult and slow task of transferring
the very large data files over the internet and then converting and importing them into another SaaS also.
61
SaaS - Providers
Provider Services
NetSuite ERP, accounting, order management, CRM, Professionals Services Automation (PSA), and
e-commerce applications.
64
PaaS - Services
- Programming languages:- PaaS providers provide various programming languages for the developers to develop the
applications. Some popular programming languages provided by PaaS providers are Java, PHP, Ruby, Perl, and Go.
- Application frameworks:-PaaS providers provide application frameworks to easily understand the application
development. Some popular application frameworks provided by PaaS providers are Node.js, Drupal, Joomla,
WordPress, Spring, Play, Rack, and Zend.
- Databases:-PaaS providers provide various databases such as ClearDB, PostgreSQL, MongoDB, and Redis to
communicate with the applications.
- Other tools:-PaaS providers provide various other tools that are required to develop, test, and deploy the
applications. 65
PaaS - Advantages
1. Simplified Development:-PaaS allows developers to focus on development and innovation without worrying about
infrastructure management.
2. Lower risk:-No need for up-front investment in hardware and software. Developers only need a PC and an internet
connection to start building applications.
3. Prebuilt business functionality:-Some PaaS vendors also provide already defined business functionality so that users
can avoid building everything from very scratch and hence can directly start the projects only.
4. Instant community:-PaaS vendors frequently provide online communities where the developer can get the ideas to share
experiences and seek advice from others.
5. Scalability:-Applications deployed can scale from one to thousands of users without any changes to the applications.
66
PaaS - Disadvantages
1) Vendor lock-in
One has to write the applications according to the platform provided by the PaaS vendor, so the migration of an application to
another PaaS vendor would be a problem.
2) Data Privacy
Corporate data, whether it can be critical or not, will be private, so if it is not located within the walls of the company, there can
be a risk in terms of privacy of data.
It may happen that some applications are local, and some are in the cloud. So there will be chances of increased complexity
when we want to use data which in the cloud with the local data.
67
PaaS - Providers
Providers Services
Google App Engine (GAE) App Identity, URL Fetch, Cloud storage client library, Logservice
Salesforce.com Faster implementation, Rapid scalability, CRM Services, Sales cloud, Mobile connectivity, Chatter.
68
IaaS -
- Iaas is also known as Hardware as a Service (HaaS). It is one of the layers of the cloud computing platform. It allows
customers to outsource their IT infrastructures such as servers, networking, processing, storage, virtual machines,
and other resources. Customers access these resources on the Internet using a pay-as-per use model.
69
IaaS - Services
- Compute: Computing as a Service includes virtual central processing units and virtual main memory for the Vms
that is provisioned to the end- users.
- Storage: IaaS provider provides back-end storage for storing files.
- Network: Network as a Service (NaaS) provides networking components such as routers, switches, and bridges for
the Vms.
- Load balancers: It provides load balancing capability at the infrastructure layer.
70
IaaS - Advantages
1. Shared infrastructure:- IaaS allows multiple users to share the same physical infrastructure.
2. Web access to the resources:- Iaas allows IT users to access resources over the internet.
3. Pay-as-per-use model:- IaaS providers provide services based on the pay-as-per-use basis. The users are required to pay
for what they have used.
4. Focus on the core business:- IaaS providers focus on the organization's core business rather than on IT infrastructure.
5. On-demand scalability:- On-demand scalability is one of the biggest advantages of IaaS. Using IaaS, users do not worry
about to upgrade software and troubleshoot the issues related to hardware components.
71
IaaS - Disadvantages
1. Security:- Security is one of the biggest issues in IaaS. Most of the IaaS providers are not able to provide 100% security.
2. Maintenance & Upgrade:- Although IaaS service providers maintain the software, but they do not upgrade the software
for some organizations.
3. Interoperability issues:- It is difficult to migrate VM from one IaaS provider to the other, so the customers might face
problem related to vendor lock-in.
72
PaaS - Providers
IaaS Vendor Iaas Solution Details
Amazon Web Services Elastic, Elastic Compute Cloud The cloud computing platform pioneer, Amazon offers auto scaling, cloud monitoring, and load
Netmagic Solutions Netmagic IaaS Cloud Netmagic runs from data centers in Mumbai, Chennai, and Bangalore, and a virtual data center
in the United States. Plans are underway to extend services to West Asia.
Rackspace Cloud servers, cloud files, cloud The cloud computing platform vendor focuses primarily on enterprise-level hosting services.
sites, etc.
Reliance Reliance Internet Data Center RIDC supports both traditional hosting and cloud services, with data centers in Mumbai,
Communications Bangalore, Hyderabad, and Chennai. The cloud services offered by RIDC include IaaS and SaaS.
Sify Technologies Sify IaaS Sify's cloud computing platform is powered by HP's converged infrastructure. The vendor offers
Tata Communications InstaCompute InstaCompute is Tata Communications' IaaS offering. InstaCompute data centers are located in
73
Hyderabad and Singapore, with operations in both countries.
Cloud Architecture - Diagram
Cloud Architecture - Component
1. Frontend :
Frontend of the cloud architecture refers to the client side of cloud computing system. Means it contains all the
user interfaces and applications which are used by the client to access the cloud computing services/resources.
For example use of a web browser to access the cloud platform.
Client Infrastructure – Client Infrastructure refers to the frontend components. It contains the
applications and user interfaces which are required to access the cloud platform.
Cloud Architecture - Component
2. Backend :
Backend refers to the cloud itself which is used by the service provider. It contains the resources as well as
manages the resources and provides security mechanisms. Along with this it includes huge storage, virtual
applications, virtual machines, traffic control mechanisms, deployment models etc.
1. Application –
Application in backend refers to a software or platform to which client accesses. Means it provides the
service in backend as per the client requirement.
Cloud Architecture - Component
2. Service – Service in backend refers to the major three types of cloud based services like SaaS, PaaS
and IaaS. Also manages which type of service the user accesses.
3. Cloud Runtime – Runtime cloud in backend refers to provide of execution and runtime
platform/environment to the virtual machine.
4. Storage – Storage in backend refers to provide flexible and scalable storage service and management of
stored data.
5. Infrastructure – Cloud Infrastructure in backend refers to hardware and software components of cloud
like it includes servers, storage, network devices, virtualization software etc.
Cloud Architecture - Component
- A hypervisor is a form of virtualization software used in Cloud hosting to divide and allocate the
resources on various pieces of hardware. The program which provides partitioning, isolation or
abstraction is called virtualization hypervisor. The hypervisor is a hardware virtualization
technique that allows multiple guest operating systems (OS) to run on a single host system at the
same time. A hypervisor is sometimes also called a virtual machine manager(VMM).
Cloud Architecture - Hypervisor Type
- TYPE-1 Hypervisor: The hypervisor runs directly on the underlying host system. It is also known as
“Native Hypervisor” or “Bare metal hypervisor”. It does not require any base server operating
system. It has direct access to hardware resources.
- Examples of Type 1 hypervisors include VMware ESXi, Citrix XenServer and Microsoft Hyper-V
hypervisor.
- TYPE-2 Hypervisor: A Host operating system runs on the underlying host system. It is also known
as ‘Hosted Hypervisor”. Such kind of hypervisors doesn’t run directly over the underlying hardware
rather they run as an application in a Host system(physical machine). Basically, software installed on
an operating system. Hypervisor asks the operating system to make hardware calls.
- Example of Type 2 hypervisor includes VMware Player or Parallels Desktop. Hosted hypervisors are
often found on endpoints like PCs. The type-2 hypervisor is are very useful for engineers, security
analyst(for checking malware, or malicious source code and newly developed applications).
Cloud Architecture - Container
- Containers are lightweight packages of your application code together with dependencies such as
specific versions of programming language runtimes and libraries required to run your software
services.Containerization allows our development teams to move fast, deploy software efficiently,
and operate at an unprecedented scale.
- Containers make it easy to share CPU, memory, storage, and network resources at the operating
systems level and offer a logical packaging mechanism in which applications can be abstracted
from the environment in which they actually run.
Cloud Architecture - Container Benefits
- The container’s system requires an underlying operating system that provides the basic services to all
of the containerized applications using virtual-memory support for isolation. A hypervisor, on the other
hand, runs VMs that have their own operating system using hardware VM support.
- Container systems have a lower overhead than VMs and container systems typically target
environments where thousands of containers are in play. Container systems usually provide service
isolation between containers. As a result, container services such as file systems or network support can
have limited resource access.
Cloud Architecture - Container Benefits
Cloud Architecture - Container Reference
https://cloud.google.com/learn/what-are-containers#:~:text=Containers%20are%20packages%20of%
20software,on%20a%20developer's%20personal%20laptop.
https://www.geeksforgeeks.org/hypervisor/
Cloud Architecture - Scaling (Horizontal,
Vertical)
1. Horizontal scaling refers to provisioning additional servers to meet your needs, often splitting workloads
between servers to limit the number of requests any individual server is getting. Horizontal scaling in cloud
computing means adding additional instances instead of moving to a larger instance size.
2. Vertical scaling refers to adding more or faster CPUs, memory, or I/O resources to an existing server, or
replacing one server with a more powerful server. In a data center, administrators traditionally achieved
vertical scaling by purchasing a new, more powerful server and discarding or repurposing the old one.
Today’s cloud architects can accomplish AWS vertical scaling and Microsoft Azure vertical scaling by
changing instance sizes. AWS and Azure cloud services have many different instance sizes, so vertical
scaling in cloud computing is possible for everything from EC2 instances to RDS databases.
Cloud Architecture - Scaling (Horizontal,
Vertical)
One of the fundamental differences between the two is that horizontal scaling requires breaking a
sequential piece of logic into smaller pieces so that they can be executed in parallel across
multiple machines. In many respects, vertical scaling is easier because the logic really doesn’t
need to change. Rather, you’re just running the same code on higher-spec machines. However,
there are many other factors to consider when determining the appropriate approach.
Cloud Architecture - Scaling (Horizontal,
Vertical)
Horizontal Scaling Vertical Scaling
Vertical)
Databases In a database world, horizontal
scaling is usually based on the
In vertical scaling, the data lives on a single node and
scaling is done through multi-core, e.g. spreading the
partitioning of data (each node only load between the CPU and RAM resources of the
contains part of the data). machine.
Downtime In theory, adding more machines to Vertical scaling is limited to the capacity of one machine,
the existing pool means you are scaling beyond that capacity can involve downtime and
not limited to the capacity of a has an upper hard limit, i.e. the scale of the hardware on
single unit, making it possible to which you are currently running.
scale with less downtime.
Concurrency Also described as distributed programming, as it involves Actor model: concurrent
distributing jobs across machines over the network. programming on multi-core
Several patterns associated with this model: machines is often performed
Master/Worker*, Tuple Spaces, Blackboard, via multi-threading and
MapReduce. in-process message passing.
Message passing In distributed computing, the lack of a shared address In a multi-threaded scenario,
space makes data sharing more complex. It also makes you can assume the existence
the process of sharing, passing or updating data more of a shared address space, so
costly since you have to pass copies of the data. data sharing and message
passing can be done by
passing a reference.
90
Cloud History - Cluster Computing
Cluster computing is a
collection of tightly or loosely
connected computers that
work together so that they act
as a single entity. The
connected computers execute
operations all together thus
creating the idea of a single
system. The clusters are
generally connected through
fast local area networks
(LANs).
91
Cloud History - Cluster Type
- High performance (HP) clusters : HP clusters use computer clusters and supercomputers to solve
advance computational problems. They are used to performing functions that need nodes to communicate
as they perform their jobs. They are designed to take benefit of the parallel processing power of several
nodes.
- Load-balancing clusters : Incoming requests are distributed for resources among several nodes running
similar programs or having similar content. This prevents any single node from receiving a
disproportionate amount of task. This type of distribution is generally used in a web-hosting environment.
- High Availability (HA) Clusters : HA clusters are designed to maintain redundant nodes that can act as
backup systems in case any failure occurs. Consistent computing services like business activities,
complicated databases, customer services like e-websites and network file distribution are provided. They
are designed to give uninterrupted data availability to the customers.
92
Cloud History - Cluster Type
- High performance (HP) clusters : HP clusters utilize computer clusters and supercomputers
to solve advanced computational problems. They are employed to perform tasks that require nodes
to communicate with each other while executing their jobs. These clusters are designed to leverage
the parallel processing power of multiple nodes.
93
Applications
1. Scientific Research
2. Engineering
Simulations
3. Big Data Analytics
4. Medical Applications
5. Weather Forecasting
94
Cloud History - Cluster Type
- High performance (HP) clusters : HP clusters utilize computer clusters and supercomputers
to solve advanced computational problems. They are employed to perform tasks that require nodes
to communicate with each other while executing their jobs. These clusters are designed to leverage
the parallel processing power of multiple nodes.
Architecture Advantages
1. Head Node (Master Node)
● Faster computation times for
○ Manages and schedules jobs, and coordinates the activities of the
complex problems.
compute nodes.
● Cost-effective compared to a single
2. Compute Nodes
supercomputer.
○ Perform the actual computations.
● Flexible and scalable.
○ Often equipped with multiple CPUs or GPUs for enhanced performance.
● Handles large-scale data processing
3. Network Infrastructure
efficiently.
○ Connects all nodes for fast data exchange. Typically high-speed networks
like InfiniBand are used.
4. Storage System
○ Provides fast and scalable storage for data-intensive applications. 95
Cloud History - Cluster Type
- Load-balancing clusters : Incoming requests are distributed for resources among several nodes
running similar programs or having similar content. This prevents any single node from receiving a
disproportionate amount of task. This type of distribution is generally used in a web-hosting
environment.
1. Load Balancer
○ Distributes requests to the nodes.
2. Nodes
○ Servers that execute the requested
tasks, running similar programs or
services.
3. Monitoring System
○ Tracks node performance and health
to adjust the distribution dynamically.
96
Cloud History - Cluster Type
- Load-balancing clusters : Incoming requests are distributed for resources among several nodes
running similar programs or having similar content. This prevents any single node from receiving a
disproportionate amount of task. This type of distribution is generally used in a web-hosting
environment.
Popular Load-Balancing Techniques
1. Round-Robin
○ Distributes requests sequentially to all nodes.
2. Least Connections
○ Directs traffic to the node with the fewest active
connections.
3. IP Hashing
○ Routes requests based on the client’s IP
address.
4. Weighted Load Balancing
○ Nodes with higher capacities handle more
traffic.
97
Cloud History - Cluster Type
Applications
Advantages
1. Web Hosting
○ Used in environments where websites experience high 1. High Availability
traffic, ensuring fast and reliable service. ○ Ensures services are always available, even
2. Database Management during node failures or maintenance.
○ Distributing database queries across multiple servers 2. Better Resource Utilization
to maintain performance under heavy usage. ○ Prevents overloading of specific nodes,
3. Cloud Services leading to optimal use of computational
○ Ensuring that cloud platforms like AWS, Google resources.
Cloud, and Azure can handle varying workloads 3. Scalability
efficiently. ○ Easily scales to accommodate increasing
4. E-commerce Platforms workloads by adding new nodes.
○ High-traffic online shopping sites use load-balancing 4. Improved Performance
clusters to provide seamless customer experiences. ○ Reduces response times for user requests
5. Streaming Services by balancing the load effectively.
○ Video and audio streaming services distribute content
delivery to avoid disruptions. 98
Cloud History - Cluster Type
- High Availability (HA) Clusters : High Availability (HA) Clusters are designed to minimize
downtime and ensure continuous availability of services, applications, or resources by using
multiple interconnected nodes. If one node in the cluster fails, another automatically takes over to
maintain uninterrupted service.
99
Cloud History - Cluster Type
Key Features Applications
- Open Cluster : IPs are needed by every node and those are accessed only through the internet or
web. This type of cluster causes enhanced security concerns.
- Close Cluster : The nodes are hidden behind the gateway node, and they provide increased
protection. They need fewer IP addresses and are good for computational tasks.
101
Cloud History - Cluster Classification
102
Cloud History - Cluster Advantage
- High Performance : The systems offer better and enhanced performance than that of mainframe
computer networks.
- Easy to manage : Cluster Computing is manageable and easy to implement.
- Scalable : Resources can be added to the clusters accordingly.
- Expandability : Computer clusters can be expanded easily by adding additional computers to the
network. Cluster computing is capable of combining several additional resources or the networks to
the existing computer system.
- Availability : The other nodes will be active when one node gets failed and will function as a proxy
for the failed node. This makes sure for enhanced availability.
- Flexibility : It can be upgraded to the superior specification or additional nodes can be added.
103
Cloud History - Cluster Disadvantage
- High cost : It is not so much cost-effective due to its high hardware and its design.
- More space is needed : Infrastructure may increase as more servers are needed to manage and
monitor.
104
Cloud History - Cluster Application
105
Cloud History - Cluster Computing Architecture
106
Cloud History -
Cluster Computing Components
1) Cluster Nodes
2) Cluster Operating System
3) The switch or node
interconnect
4) Network switching hardware
107
Cloud History - Cluster Computing Reference
- https://www.geeksforgeeks.org/difference-between-cloud-computing-and-clus
ter-computing/
- https://www.geeksforgeeks.org/an-overview-of-cluster-computing/
108
Cloud History - Distributed Computing
Distributed computing (or distributed processing) is the technique of linking together multiple
computer servers over a network into a cluster, to share data and to coordinate processing power. Such
a cluster is referred to as a “distributed system.” Distributed computing offers advantages in scalability
(through a “scale-out architecture”), performance (via parallelism), resilience (via redundancy), and
cost-effectiveness (through the use of low-cost, commodity hardware).
109
Cloud History - Distributed System Architecture
Client-server: In the early days, distributed systems architecture consisted of a server as a shared
resource like a printer, database, or a web server. It had multiple clients (for example, users behind
computers) that decide when to use the shared resource, how to use and display it, change data, and
send it back to the server. Code repositories like git is a good example where the intelligence is placed
on the developers committing the changes to the code.
110
Cloud History - Distributed System Architecture
Distributed Systems Architecture has evolved with web applications into:
- Three-tier: The Three-Tier Client-Server Architecture divides systems into presentation, application, and
data layers, increasing scalability, maintainability, and efficiency. By separating the concerns, this model
optimizes resource management and allows for independent scaling and updates, making it a popular choice
for complex distributed systems.
111
Cloud History - Distributed System Architecture
Distributed Systems Architecture has evolved with web applications into:
112
Cloud History - Distributed System Architecture
113
Cloud History - Distributed System Architecture
Distributed Systems Architecture has evolved with web applications into:
- Peer-to-peer: There are no centralized or special machine that does the heavy lifting and
intelligent work in this architecture. All the decision making and responsibilities are split up
amongst the machines involved and each could take on client or server roles. Blockchain is a good
example of this.
114
Cloud History - Distributed System Architecture
Distributed Systems Architecture has evolved with web applications into:
- Three-tier: In this architecture, the clients no longer need to be intelligent and can rely on a
middle tier to do the processing and decision making. Most of the first web applications fall under
this category. The middle tier could be called an agent that receives requests from clients, that
could be stateless, processes the data and then forwards it on to the servers.
- Multi-tier: Enterprise web services first created n-tier or multi-tier systems architectures. This
popularized the application servers that contain the business logic and interacts both with the
data tiers and presentation tiers.
- Peer-to-peer: There are no centralized or special machine that does the heavy lifting and
intelligent work in this architecture. All the decision making and responsibilities are split up
amongst the machines involved and each could take on client or server roles. Blockchain is a good
example of this.
115
Cloud History -
Distributed Computing Advantages
- Scalability: Distributed computing clusters are easy to scale through a “scale-out
architecture” in which higher loads can be handled by simply adding new hardware (versus
replacing existing hardware).
- Performance: Through parallelism in which each computer in the cluster simultaneously
handles a subset of an overall task, the cluster can achieve high levels of performance through
a divide-and-conquer approach.
- Resilience: Distributed computing clusters typically copy or “replicate” data across all
computer servers to ensure there is no single point of failure. Should a computer fail, copies of
the data on that computer are stored elsewhere so that no data is lost.
- Cost-effectiveness: Distributed computing typically leverages low-cost, commodity
hardware, making initial deployments as well as cluster expansions very economical.
116
Cloud History -
Distributed Computing Advantages
- Data Integration & Consistency: being able to synchronize the order of changes to
data and states of the application in a distributed system is challenging, especially when
there nodes are starting, stopping or failing.
- Network and Communication Failure: messages may not be delivered to the right
nodes or in the incorrect order which lead to a breakdown in communication and
functionality.
- Management Overhead: more intelligence, monitoring, logging, load balancing
functions need to be added for visibility into the operation and failures of the distributed
systems.
117
118
Cloud History - Parallel Computing
It is the use of multiple processing elements simultaneously for solving any problem. Problems are
broken down into instructions and are solved concurrently as each resource that has been applied to
work is working at the same time.
119
Cloud History - Parallel Computing Types
- Bit-level parallelism – It is the form of parallel computing which is based on the increasing
processor’s size. It reduces the number of instructions that the system must execute in order to
perform a task on large-sized data.
- Instruction-level parallelism – A processor can only address less than one instruction for each
clock cycle phase. These instructions can be re-ordered and grouped which are later on executed
concurrently without affecting the result of the program. This is called instruction-level parallelism.
- Task Parallelism – Task parallelism employs the decomposition of a task into subtasks and then
allocating each of the subtasks for execution. The processors perform the execution of sub-tasks
concurrently.
- Data-level parallelism (DLP) –Instructions from a single stream operate concurrently on several
data – Limited by non-regular data manipulation patterns and by memory bandwidth
120
Cloud History - Parallel Computing Applications
121
Cloud History - Parallel Computing Limitations
- It addresses such as communication and synchronization between multiple sub-tasks and processes
which is difficult to achieve.
- The algorithms must be managed in such a way that they can be handled in a parallel mechanism.
- The algorithms or programs must have low coupling and high cohesion. But it’s difficult to create
such programs.
- More technically skilled and expert programmers can code a parallelism-based program well.
122
Cloud History - Grid Computing
- 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 as a
virtual supercomputer. The task that they work on may include analyzing huge datasets or simulating
situations that 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 supercomputer comprises 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. The concept of grid computing isn’t new, but it is not yet perfected as there are no
standard rules and protocols established and accepted by people.
123
Cloud History - Grid Computing Architecture
124
Cloud History - Grid Computing Architecture
125
Cloud History - Grid Computing Architecture
126
127
Cloud History - Grid Computing Advantages
- It is not centralized, as there are no servers required, except the control node which is just used
for controlling and not for processing.
- Multiple heterogeneous machines i.e. machines with different Operating Systems can use a
single grid computing network.
- Tasks can be performed parallelly across various physical locations and the users don’t have to
pay for them (with money).
128
Cloud History - Grid Computing Disadvantages
129
Cloud History
- If you look back at history, in 1960s when the computers were very expensive, IBM and DEC used to
provide their computers for timesharing. You could submit jobs to be run on IBM mainframes.
- In 1961, John MacCharty suggested in a speech at MIT that computing can be sold like a utility just
like a water or electricity
- In 1972 IBM developed the first Virtual Machine.
- The cloud symbol was used way back in 1977.
- Once the internet and world wide web came into picture, Many telecommunication companies
offered VPN or Virtual Private network and Compaq started offering online disk space were you could
keep files.
- The word cloud itself was coined by Ramesh Chellappa in 1997. The word cloud was used as a
metaphor for the Internet and cloud symbol was used to represent network of computing equipment.
- In 1999 Cloud companies such as Salesforce and VM Ware were incorporated.
- In 2002 Amazon launched Amazon Web Services, In 2006 Hadoop was Released.
- In 2008 Google launched Google App Engine
- In 2009-2010 Microsoft released Microsoft Azure and in next few years almost everyone jumped onto
130
cloud computing bandwagon.
Cloud History
131
Cloud History
132
Cloud History
133
https://www.bcs.org/articles-opinion-and-research/history-of-the-cloud/
Cloud History
134
Cloud History
Distributed Computing
Mainframe Computing
Clustering Computing
Grid Computing
Cloud Computing
135
Cloud Data Centre -
Region, Availability Zones, Local Zones
Regions
AWS has the concept of a Region, which is a physical location around the world where we cluster
data centers. We call each group of logical data centers an Availability Zone. Each AWS Region
consists of multiple, isolated, and physically separate AZs within a geographic area. Unlike other
cloud providers, who often define a region as a single data center, the multiple AZ design of every
AWS Region offers advantages for customers. Each AZ has independent power, cooling, and
physical security and is connected via redundant, ultra-low-latency networks. AWS customers
focused on high availability can design their applications to run in multiple AZs to achieve even
greater fault-tolerance. AWS infrastructure Regions meet the highest levels of security,
compliance, and data protection.
AWS provides a more extensive global footprint than any other cloud provider, and to support its
global footprint and ensure customers are served across the world, AWS opens new Regions
rapidly. AWS maintains multiple geographic Regions, including Regions in North America, South
America, Europe, China, Asia Pacific, South Africa, and the Middle East.
136
Cloud Data Centre - Region
A Region, which is a physical location around the world where we cluster data centers. We call
each group of logical data centers an Availability Zone. Each Region consists of multiple, isolated,
and physically separate AZs within a geographic area.
Some cloud providers, often define a region as a single data center. Each AZ has independent
power, cooling, and physical security and is connected via redundant, ultra-low-latency networks.
The customers focused on high availability can design their applications to run in multiple AZs to
achieve even greater fault-tolerance. AWS infrastructure Regions meet the highest levels of
security, compliance, and data protection.
AWS
137
Cloud Data Centre - Availability Zones (AZ)
An Availability Zone (AZ) is one or more discrete data centers with redundant power,
networking, and connectivity in a Region. AZs give customers the ability to operate production
applications and databases that are more highly available, fault tolerant, and scalable than would
be possible from a single data center. All AZs in the Region are interconnected with
high-bandwidth, low-latency networking, over fully redundant, dedicated metro fiber providing
high-throughput, low-latency networking between AZs. All traffic between AZs is encrypted. The
network performance is sufficient to accomplish synchronous replication between AZs.
AZs make partitioning applications for high availability easy. If an application is partitioned
across AZs, companies are better isolated and protected from issues such as power outages,
lightning strikes, tornadoes, earthquakes, and more. AZs are physically separated by a
meaningful distance, many kilometers, from any other AZ, although all are within 100 km (60
miles) of each other.
AWS
138
Cloud Data Centre - Local Zones
Local Zones place compute, storage, database, and other select services closer to end-users. With
The Local Zones, you can easily run highly-demanding applications that require single-digit
millisecond latencies to your end-users such as media & entertainment content creation,
real-time gaming, reservoir simulations, electronic design automation, and machine learning.
Each Local Zone location is an extension of a Region where you can run your latency sensitive
applications using such as Amazon Elastic Compute Cloud, Amazon Virtual Private Cloud,
Amazon Elastic Block Store, Amazon File Storage, and Amazon Elastic Load Balancing in
geographic proximity to end-users. AWS Local Zones provide a high-bandwidth, secure
connection between local workloads and those running in the AWS Region, allowing you to
seamlessly connect to the full range of in-region services through the same APIs and tool sets.
AWS
139
Cloud Data Centre - Application Layer
Application layers offers an interface between the host and the user, and among multiple hosts.
Classic business applications employ database which contain a three layer architecture like,
140
Cloud Data Centre - DBMS Layer
- Database is a planned mode to save data in rationally ordered tables which are unified. A
database assists to optimize the recovery and storage of data. A DBMS is a compilation of
computer programs which manage the preservation, formation, and employment of a database.
The DBMS handles demand of an application for data and instruct the operating system to access
suitable data. The DBMS controls incoming data, arranges, and allows the data to be extorted or
customized by user or further programs. Some of the well-known tools of DBMS are SQL Server,
Oracle, MySQL.
141
Cloud Data Centre - Compute
142
Cloud Data Centre - Compute
143
Cloud Data Centre - Storage
144
Cloud Data Centre - Storage RAID
RAID - Redundant Arrays of Independent Disks.
RAID, or “Redundant Arrays of Independent Disks” is a technique which makes use of a combination of
multiple disks instead of using a single disk for increased performance, data redundancy or both. The term
was coined by David Patterson, Garth A. Gibson, and Randy Katz at the University of California, Berkeley in
1987.
Data redundancy, although taking up extra space, adds to disk reliability. This means, in case of disk failure,
if the same data is also backed up onto another disk, we can retrieve the data and go on with the operation.
On the other hand, if the data is spread across just multiple disks without the RAID technique, the loss of a
single disk can affect the entire data.
145
Cloud Data Centre - Storage RAID
RAID is very transparent to the underlying system. This means, to the host system, it appears as a single
big disk presenting itself as a linear array of blocks. This allows older technologies to be replaced by RAID
without making too many changes in the existing code.
146
Cloud Data Centre - RAID Features
● Reliability: How many disk faults can the system tolerate?
● Availability: What fraction of the total session time is a system in uptime mode, i.e. how available is the
system for actual use?
● Performance: How good is the response time? How high is the throughput (rate of processing work)?
Note that performance contains a lot of parameters and not just the two.
● Capacity: Given a set of N disks each with B blocks, how much useful capacity is available to the user?
147
Cloud Data Centre - RAID Levels
● RAID-0 (Stripping)
● RAID-1 (Mirroring)
● RAID-2 (Bit-Level Stripping with Dedicated Parity)
● RAID-3 (Byte-Level Stripping with Dedicated Parity)
● RAID-4 (Block-Level Stripping with Dedicated Parity)
● RAID-5 (Block-Level Stripping with Distributed Parity)
● RAID-6 (Block-Level Stripping with two Parity Bits)
148
Cloud Data Centre - RAID Levels
149
Cloud Data Centre - RAID Levels
RAID-0, Stripping
● In the figure, blocks “0,1,2,3” form a stripe.
● Instead of placing just one block into a disk at a time,
we can work with two (or more) blocks placed into a
disk before moving on to the next one.
150
Cloud Data Centre - RAID Levels
RAID-1, Mirroring
● More than one copy of each block is stored in a separate
disk. Thus, every block has two (or more) copies, lying on
different disks.
151
Cloud Data Centre - RAID Levels
152
Cloud Data Centre - RAID Levels
153
Cloud Data Centre - RAID Levels
RAID-2 consists of bit-level striping using a Hamming Code parity. RAID-3 consists of byte-level striping with
dedicated parity. These two are less commonly used.
RAID-6 is a recent advancement that contains a distributed double parity, which involves block-level striping
with 2 parity bits instead of just 1 distributed across all the disks. There are also hybrid RAIDs, which make
use of more than one RAID levels nested one after the other, to fulfill specific requirements.
References:
● https://en.wikipedia.org/wiki/RAID
● Operating Systems in Three Easy Pieces by Remzi H. Arpaci-Dusseau.
154
155
156
157
158