Cloud Computing Notes 4 Units
Cloud Computing Notes 4 Units
COLLEGE
MCA-302
CLOUD COMPUTING
Page | 1
NETWORK-CENTRIC COMPUTING AND NETWORK-CENTRIC
CONTENT
The notions of network-centric computing and network-centric content reflect the
fact that rather than locally, data processing and data storage now occur on distant
computer systems accessed over the pervasive Internet. Any type or quantity of
material, whether static or dynamic, monolithic or modular, live or saved, created
by aggregation or combined, is referred to as content. There are certain traits that
the two network-centric theories have in common:
• Data is a major component of most network-centric applications. For instance,
computer simulation is a potent instrument for scientific research in practically
all fields of science, from physics, biology, and chemistry, to archaeology. Data
analytics also enables businesses to enhance their operations. The aerospace and
automobile sectors make extensive use of sophisticated computer-aided design
tools like Catia (Computer Assisted Three-dimensional Interactive Application).
As a result of the extensive usage of sensors, numerous choices are made by
groups dispersed around the globe using shared data sets. Another illustration of
these cooperative activities is open source software development sites.
• Thin clients running on low-resource systems are used to access the systems.
Google released Google Chrome OS in June 2011; it is based on the same-named
browser and is designed to work on low-end devices.
• Workflow management is supported by the infrastructure in some way. In fact,
coordination between multiple applications is necessary for complicated
computing activities; Web 2.0's underlying concept of service composition. The
paradigm change from local to network-centric data processing and storage has
both causes of concern and advantages:
• As a result of these systems' susceptibility to malicious assaults that could have
a significant user population as a target, managing vast pools of resources
presents additional difficulties. Phase transitions, where a very modest change in
the environment can result in an undesired system state, are phenomena specific
to complex systems that have an impact on large-scale systems. Alternate
resource management techniques like self-organization and choices based on
approximations of the system state need to be taken into account.
• Because complete performance isolation is elusive in such systems, ensuring
Quality of Service (QoS) promises is quite difficult.
• The sharing of data not only creates problems for security and privacy, but also
necessitates procedures for limiting access to authorised users and keeping
thorough logs of all data modifications.
Page | 2
• Cost-cutting. The ability to pay-as-you-go for computing is made possible by
resource concentration, which eliminates the need for an initial investment and
considerably lowers the expenses associated with upkeep and operation of the
local computer infrastructure.
• User comfort and elasticity, including the capacity to handle workloads with
extremely high peak-to-average ratios. The Internet will probably change as a
result of the production and consumption of audio and visual information. The
Internet is predicted to enable higher quality information in terms of resolution,
frame rate, colour depth, and stereoscopic images. The Future Internet1 will
likely be content-focused, it would seem. Information is the outcome of applying
functions on content.
The focus will be on the data that may be extracted by content mining when users
request named data and content providers submit data objects; the material should
be recognised as having meaningful semantic implications instead of being
considered a string of bytes. Users will be able to access the needed material from
the least intrusive location in terms of network latency or download time thanks
to content-centric routing. Providing secure services for content manipulation,
ensuring worldwide rights-management, exercising control over offensive
content, and reputation management come with their own set of difficulties. As
multimedia applications become more widespread, the demand on storage,
networking, and processing systems grows along with the media data's greater
footprint.
• Applications are almost universally network-intensive. High bandwidth
networks are required for massive data transfers. Applications like streaming
data, parallel computing, and computation steering can only function effectively
in low latency networks. In numerical simulation, "computation steering" refers
to the participatory direction-finding of a computational experiment.
• Resources for computing and communication (CPU cycles, storage, and
network bandwidth) can be pooled to enable data-intensive applications. Because
many programmes share a system, their peak resource demands are not
synchronised, which increases average system use, multiplexing results in
increased resource utilisation. Collaboration is facilitated via data exchange.
Many applications in science, engineering, business, finance, and government all
call for different kinds of analysis.
Page | 3
Peer-to-peer system:
A peer-to-peer network is a simple network of computers. It first came into
existence in the late 1970s. Here each computer acts as a node for file sharing
within the formed network. Here each node acts as a server and thus there is no
central server in the network. This allows the sharing of a huge amount of data.
The tasks are equally divided amongst the nodes. Each node connected in the
network shares an equal workload. For the network to stop working, all the nodes
need to individually stop working. This is because each node works
independently.
In the 1980s the first use of P2P networks occurred after personal
computers were introduced.
In August 1988, the internet relay chat was the first P2P network built to
share text and chat.
In June 1999, Napster was developed which was a file-sharing P2P
software. It could be used to share audio files as well. This software was
shut down due to the illegal sharing of files. But the concept of network
sharing i.e P2P became popular.
In June 2000, Gnutella was the first decentralized P2P file sharing network.
This allowed users to access files on other users’ computers via a
designated folder.
Types of P2P networks
1. Unstructured P2P networks: In this type of P2P network, each device is
able to make an equal contribution. This network is easy to build as devices
can be connected randomly in the network. But being unstructured, it
becomes difficult to find content. For example, Napster, Gnutella, etc.
2. Structured P2P networks: It is designed using software that creates a
virtual layer in order to put the nodes in a specific structure. These are not
easy to set up but can give easy access to users to the content. For example,
P-Grid, Kademlia, etc.
Page | 4
3. Hybrid P2P networks: It combines the features of both P2P networks and
client-server architecture. An example of such a network is to find a node
using the central server.
Features of P2P network
These networks do not involve a large number of nodes, usually less than
12. All the computers in the network store their own data but this data is
accessible by the group.
Unlike client-server networks, P2P uses resources and also provides them.
This results in additional resources if the number of nodes increases. It
requires specialized software. It allows resource sharing among the
network.
Since the nodes act as clients and servers, there is a constant threat of
attack.
Almost all OS today support P2P networks.
P2P Network Architecture
In the P2P network architecture, the computers connect with each other in a
workgroup to share files, and access to internet and printers.
Each computer in the network has the same set of responsibilities and
capabilities.
Each device in the network serves as both a client and server.
The architecture is useful in residential areas, small offices, or small
companies where each computer act as an independent workstation and
stores the data on its hard drive.
Each computer in the network has the ability to share data with other
computers in the network.
The architecture is usually composed of workgroups of 12 or more
computers.
Page | 5
Old Idea
The idea of accessing information and services over networks isn't new. Concepts
like mainframe computing, where users connected to a central computer, have
been around for decades.
Conclusion
Cloud computing is an idea that has existed for a long time but is now more viable
and beneficial than ever due to technological advancements. It’s transforming
how we use and think about technology.
Page | 6
Delivery Models
Public Cloud:
Description: Services are provided over the internet and shared among
multiple organizations.
Examples: Amazon Web Services (AWS), Microsoft Azure, Google
Cloud Platform.
Benefits: Cost-effective, scalable, and no need for infrastructure
management.
Private Cloud:
Description: Dedicated resources for a single organization, either hosted
on-premises or by a third party.
Benefits: Greater control, security, and compliance, suitable for businesses
with strict data regulations.
Hybrid Cloud:
Description: Combines public and private clouds, allowing data and
applications to move between them.
Benefits: Flexibility, optimized resource use, and the ability to scale when
needed while keeping sensitive data secure.
Community Cloud:
Description: Shared infrastructure for a specific community with common
concerns (e.g., security, compliance).
Benefits: Cost-sharing among organizations and tailored to specific needs.
Service Models:
Page | 7
Platform as a Service (PaaS):
Description: Offers a platform allowing developers to build, deploy, and
manage applications without dealing with the underlying infrastructure.
Examples: Google App Engine, Microsoft Azure App Service.
Benefits: Simplifies the development process, enabling faster deployment
and easier management of applications.
Software as a Service (SaaS):
Description: Delivers software applications over the internet on a
subscription basis.
Examples: Google Workspace, Microsoft 365, Salesforce.
Benefits: No installation required, automatic updates, and accessible from
any device with internet connectivity.
Page | 8
others; this tests the confidence and trust in to days evolving information society.
Identity fraud and theft are made possible by the unauthorized access to personal
data in circulation and by new forms of dissemination through social networks
and they could also pose a danger to cloud computing.
The question of what can be done proactively about ethics of cloud computing
does not have easy answers as many undesirable phenomena in cloud computing
will only appear in time. But the need for rules and regulations for the governance
of cloud computing are obvious. The term governance means the manner in which
something is governed or regulated, the method of management, the system of
regulations. Explicit attention to ethics must be paid by governmental
organizations providing research funding; private companies are less constraint
by ethics oversight and governance arrangements are more conducive to profit
generation.
Accountability is a necessary ingredient of cloud computing; adequate
information about how data is handled within the cloud and about allocation of
responsibility are key elements to enforcing ethics rules in cloud computing.
Recorded evidence allows us to assign responsibility; but there can be tension
between privacy and accountability and it is important to establish what is being
recorded, and who has access to the records.
Unwanted dependency on a cloud service provider, the so-called vendor lock-in,
is a serious concern and the current standardization efforts at NIST attempt to
address this problem. Another concern for the users is a future with only a handful
of companies which dominate the market and dictate prices and policies
Cloud vulnerabilities:
Cloud computing offers many advantages, it also comes with vulnerabilities and
risks. Here are some of the key vulnerabilities associated with cloud computing:
1. Data Breaches
Description: Unauthorized access to sensitive data stored in the cloud can
occur due to weak security measures or vulnerabilities in the cloud service
provider.
Impact: Loss of sensitive information, financial loss, and damage to
reputation.
Page | 9
2. Insider Threats
Description: Employees or contractors with access to cloud systems can
intentionally or unintentionally compromise data.
Impact: Data loss, unauthorized access, and potential breaches of
compliance.
3. Account Hijacking
Description: Attackers can gain access to user accounts through phishing,
weak passwords, or credential theft.
Impact: Unauthorized actions taken on behalf of the user, data exposure,
and service disruption.
4. Data Loss
Description: Data can be lost due to accidental deletion, corruption, or
failure of the cloud provider’s infrastructure.
Impact: Irretrievable data can severely affect business operations and lead
to significant losses.
5. Insecure APIs
Description: Many cloud services offer APIs for interaction. If these APIs
are poorly designed or secured, they can be exploited by attackers.
Impact: Unauthorized access to cloud services and data, leading to
potential breaches.
6. Compliance Violations
Description: Organizations must adhere to various regulatory standards
(e.g., GDPR, HIPAA). Cloud providers may not always ensure
compliance.
Impact: Legal consequences, fines, and damage to reputation if data is
mishandled.
7. Denial of Service (DOS) Attacks
Description: Attackers can overwhelm cloud services with traffic, making
them unavailable to legitimate users.
Impact: Service downtime, loss of revenue, and customer dissatisfaction.
Page | 10
8. Vendor Lock-In
Description: Difficulty in migrating data and applications from one cloud
provider to another due to proprietary technologies.
Impact: Limited flexibility, potential higher costs, and dependence on a
single vendor’s services.
9. Shared Responsibility Model
Description: Cloud providers and customers share security
responsibilities, which can lead to confusion about who is responsible for
what.
Impact: Security gaps may arise if customers fail to secure their
applications and data adequately.
10. Misconfiguration
Description: Incorrect settings in cloud services can expose data or create
security vulnerabilities.
Impact: Increased risk of breaches and unintentional data exposure.
Page | 11
Compliance and Legal Issues: Navigating various regulatory
requirements across different regions can be challenging. Organizations
must ensure they meet local laws concerning data storage and processing.
Data Transfer and Migration: Moving large volumes of data to the cloud
can be time-consuming and costly. Ensuring data integrity during
migration is also critical.
Page | 12
Parallel and distributed system:
Parallel computing:
It is also known as parallel processing. It utilizes several processors. Each of the
processors completes the tasks that have been allocated to them. In other words,
parallel computing involves performing numerous tasks simultaneously. A
shared memory or distributed memory system can be used to assist in parallel
computing. All CPUs in shared memory systems share the memory. Memory is
shared between the processors in distributed memory systems.
Advantages:
It saves time and money because many resources working together cut
down on time and costs.
It may be difficult to resolve larger problems on Serial Computing.
You can do many things at once using many computing resources.
Parallel computing is much better than serial computing for modelling,
simulating, and comprehending complicated real-world events.
Disadvantages:
The multi-core architectures consume a lot of power.
Parallel solutions are more difficult to implement, debug, and prove right
due to the complexity of communication and coordination, and they
frequently perform worse than their serial equivalents.
Page | 13
Parallel computing architecture:
Parallel computing architecture refers to a type of computing design that enables
multiple processes to be executed simultaneously, improving performance and
efficiency for complex computations. Here’s an overview of its key concepts:
1.Basic Concepts:
Parallelism: Involves dividing a problem into smaller sub-problems that
can be solved concurrently. This can be applied at various levels, including
data, task, and instruction levels.
Concurrency vs. Parallelism: Concurrency involves managing multiple
tasks at the same time (not necessarily simultaneously), while parallelism
specifically refers to performing multiple operations at the same time.
2. Architecture Types:
Shared Memory Architecture: All processors share a common memory
space. They can read and write to this shared memory, which simplifies
communication but can lead to bottlenecks and issues like race conditions.
Distributed Memory Architecture: Each processor has its own local
memory. Processors communicate through message passing, which avoids
some bottlenecks but can complicate programming and data sharing.
Hybrid Architecture: Combines elements of both shared and distributed
memory architectures, often used in large-scale systems like
supercomputers.
3. Processor Types
Multi-core Processors: Single chips containing multiple cores, allowing
for multiple threads to be executed in parallel within the same physical
processor.
Clusters: Groups of interconnected computers (nodes) that work together
to perform parallel processing, often connected via high-speed networks.
Grid Computing: A form of distributed computing where a network of
computers collaborates on tasks, typically over the internet.
4. Programming Models
Thread-based: Utilizes threads to run multiple sequences of instructions
in parallel. Commonly used in shared memory architectures (e.g., Open-
MP, P-threads).
Page | 14
Message Passing: Involves processes communicating through messages,
suited for distributed memory systems (e.g., MPI - Message Passing
Interface).
Data Parallelism: Involves distributing data across multiple processors to
perform the same operation on different pieces of data simultaneously
(e.g., SIMD - Single Instruction, Multiple Data).
5. Applications
Scientific Computing: Large-scale simulations, modeling, and data
analysis.
Machine Learning: Training complex models on vast datasets.
Image and Signal Processing: Tasks that can be divided into smaller,
independent operations.
6. Challenges
Synchronization: Coordinating between processes can introduce
overhead and complexity.
Load Balancing: Distributing work evenly among processors to maximize
efficiency.
Scalability: Ensuring that adding more processors effectively improves
performance.
7. Future Trends
Exascale Computing: Developing systems capable of performing at least
one exaflop (10^18 calculations per second).
Heterogeneous Computing: Using different types of processors (e.g.,
GPUs alongside CPUs) to optimize performance for specific tasks.
Distributed system:
It comprises several software components that reside on different systems but
operate as a single system. A distributed system's computers can be physically
close together and linked by a local network or geographically distant and linked
by a wide area network (WAN). A distributed system can be made up of any
number of different configurations, such as mainframes, PCs, workstations, and
minicomputers. The main aim of distributed computing is to make a network
work as a single computer.
Page | 15
There are various benefits of using distributed computing. It enables scalability
and makes it simpler to share resources. It also aids in the efficiency of
computation processes.
Advantages
It is flexible, making it simple to install, use, and debug new services.
In distributed computing, you may add multiple machines as required.
If the system crashes on one server, that doesn't affect other servers.
A distributed computer system may combine the computational capacity
of several computers, making it faster than traditional systems.
Disadvantages
Data security and sharing are the main issues in distributed systems due to
the features of open systems
Because of the distribution across multiple servers, troubleshooting and
diagnostics are more challenging.
The main disadvantage of distributed computer systems is the lack of
software support.
Page | 16
A process group is a collection of cooperating processes; these processes work in
concert and communicate with one another in order to reach a common goal. For
example a parallel algorithm to solve a system of partial deferential equations
(PDEs) over a domain D may partition the data in several segments and assign
each segment to one of the members of the process group. The processes in the
group must cooperate with one another and iterate until the common boundary
values computed by one process agree with the common boundary values
computed by another.
Page | 17
Given two processes p1 and p2 connected by a communication channel that can
lose a message with probability ϵ > 0, no protocol capable of guaranteeing that
two processes will reach agreement exists, regardless of how small the probability
ϵ is.
The proof of this statement is by contradiction; assume that such a protocol exists
and it consists of n messages; recall that a protocol is a finite sequence of
messages. Since any message might be lost with probability ϵ the protocol should
be able to function when only n − 1 messages reach their destination, the last one
being lost. Induction on the number of messages proves that indeed no such
protocol exists; indeed, the same reasoning leads us to conclude that the protocol
should function correctly with (n − 2) messages, and so on.
In practice, error detection and error correction codes allow processes to
communicate reliably though noisy digital channels. The redundancy of a
message is increased by more bits and packaging a message as a code word; the
recipient of the message is then able to decide if the sequence of bits received is
a valid code word and, if the code satisfies some distance properties, then the
recipient of the message is able to extract the original message from a bit string
in error.
Page | 18
of sending, TS(m) = LC(send(m)). The rules to update the logical clock are
specified by the following relationship:
{
LC + 1 if e is a local event or a send(m) event
LC(e) :=(23) max(LC,TS(m) + 1) if e = receive(m).
1 2 3 45 12
p1
m1 m2 m5
1 2 6 7 8 9
p2
m3 m4
1 2 3 1011
p3
Three processes and their logical clocks; The usual labeling of events as
is omitted to avoid overloading the figure; only the logical clock
values for the local and for the communication events are marked. The
correspondence between the events and the logical clock values is obvious:
10,
12, and so on. Global ordering of all events is not possible; there is no way
to establish the ordering of events and .
Page | 19
instructions to navigate from a monitoring facility with two messages, “turn left”
and ”turn right”, being delivered out of order.
Process Process
p i p j
deliver
Channel/ Channel/
Process receive Process
Interface Interface
Channel
Message receiving and message delivery are two distinct operations. The channel
process interface implements the delivery rules, e.g., FIFO delivery.
Message receiving and message delivery are two distinct operations; a delivery
rule is an additional assumption about the channel-process interface. This rule
establishes when a message received is actually delivered to the destination
process. The receiving of a message m and its delivery are two distinct events in
a causal relation with one another, a message can only be delivered after being
received
receive(m) → deliver(m).
Page | 20
p1
m3
m2
p2
m1
p3
Violation of causal delivery when more than two processes are involved; message
m1 is delivered to process p2 after message m3, though message m1 was sent
before m3. Indeed, message m3 was sent by process p1 after receiving m2, which
in turn was sent by process p3 after sending message m1.
When more than two processes are involved in a message exchange, the message
delivery may be FIFO, but not causal as shown in the Figure where we see that
• send(m2) → deliver(m2).
• send(m3) → deliver(m3).
We call the process responsible for constructing the global state of the system,
the monitor; a monitor sends messages requesting information about the local
state of every process and gathers the replies to construct the global state.
Intuitively, the construction of the global state is equivalent to taking snapshots
of individual processes and then combining these snapshots into a global view.
Yet, combining snapshots is straightforward if and only if all processes have
Page | 21
access to a global clock and the snapshots are taken at the same time; hence, the
snapshots are consistent with one another.
A run is a total ordering R of all the events in the global history of a distributed
computation consistent with the local history of each participant process; a run
Concurrency
Atomic actions
Parallel and distributed applications must take special precautions for handling
shared resources. For example, consider a financial application where the shared
resource is an account record; a thread running on behalf of a transaction first
accesses the account to read the current balance, then updates the balance, and,
finally, writes back the new balance. When a thread is interrupted before being
able to complete the three steps of the process the results of the financial
transactions are incorrect if another thread operating on the same account is
Page | 22
allowed to proceed. Another challenge is to deal with a transaction involving the
transfer from one account to another. A system crash after the completion of the
operation on the first account will again lead to an inconsistency, the amount
debited from the first account is not credited to the second.
In these cases, as in many other similar situations, a multi-step operation should
be allowed to proceed to completion without any interruptions, the operation
should be atomic. An important observation is that such atomic actions should
not expose the state of the system until the action is completed. Hiding the internal
state of an atomic action reduces the number of states a system can be in thus, it
simplifies the design and maintenance of the system. An atomic action is
composed of several steps and each one of them may fail; therefore, we have to
take additional precautions to avoid exposing the internal state of the system in
case of such a failure.
Committed
Commit
Newaction
Pending Discarded
Abort
Aborted
Page | 23
A monitor provides special procedures to access the data in a critical section.
Consensus protocols
Consensus protocols are fundamental components of blockchain that enable
networks to function in distributed environments. They are essential for the
efficiency of the blockchain system and the information workflow among
blockchain participants. Here are some consensus protocols:
Page | 24
Dag-based Consensus
A type of distributed ledger technology that relies on consensus algorithms. In
such a network, transactions that prevail require majority support within the
network
Hybrid PoW/PoS consensus
A mechanism that counterbalances the weaknesses of PoW and PoS algorithms
Stellar Consensus Protocol (SCP)
A federated consensus protocol that doesn't require a central authority to validate
transactions. Instead, a group of trusted nodes called “validators” work together
to reach consensus
Page | 25
Enforced modularity: the client-server paradigm:
Enforced modularity in the client-server paradigm of cloud computing refers to
the architectural practice of distinctly separating the responsibilities and
functionalities of client and server components. This separation enhances the
overall efficiency, scalability, and maintainability of applications deployed in the
cloud.
Scalability:
Each component can scale independently. For instance, if a particular application
feature experiences high demand, the server can be scaled up (or more instances
can be added) without needing to change the client.
Interoperability:
Clients can be diverse (web apps, mobile apps, IoT devices) but interact with the
same server APIs. This allows different clients to use the same backend services,
promoting a consistent experience across platforms.
Page | 26
Enhanced Security:
By enforcing modularity, sensitive operations and data remain on the server,
reducing exposure. The client typically interacts with abstracted data, minimizing
direct access to sensitive information.
API-Centric Communication:
Communication between client and server is typically done through well-defined
APIs (REST, GraphQL, etc.), which standardize interactions. This encapsulation
of functionality allows clients to request services without needing to understand
server-side implementations.
Resource Optimization:
Cloud providers can dynamically allocate resources to clients and servers based
on demand, optimizing performance and cost. For example, more resources can
be allocated to the server during peak times without affecting client performance.
Cloud infrastructure:
Page | 27
o Databases: AWS offers managed database services such as Amazon
RDS (Relational Database Service) for SQL databases and Amazon
Dynamo DB for NoSQL databases.
o Networking: Amazon VPC (Virtual Private Cloud) allows users to
create isolated networks within the cloud. Services like AWS Direct
Connect provide dedicated network connections.
2. Scalability and Flexibility:
o AWS allows businesses to scale resources up or down based on
demand. This elasticity ensures that users only pay for what they use,
optimizing costs.
3. Global Infrastructure:
o AWS operates in multiple geographic regions with data centres
worldwide, providing low-latency access and redundancy. This
global presence supports compliance with local data regulations.
4. Security and Compliance:
o AWS prioritizes security, offering features like identity and access
management (IAM), encryption, and compliance certifications (like
GDPR, HIPAA). AWS Shield and AWS WAF provide additional
protection against DDOS attacks and web threats.
5. Cost Management:
o AWS uses a pay-as-you-go pricing model, which means customers
are billed based on usage. Tools like the AWS Pricing Calculator
help users estimate costs.
6. Developer Tools:
o AWS provides a suite of tools to support development and
deployment, such as AWS Code Pipeline for CI/CD, AWS Cloud
Formation for infrastructure as code, and AWS Cloud Watch for
monitoring and logging.
7. Machine Learning and AI:
o AWS offers a variety of machine learning services, such as Amazon
Sage Maker for building and training models, and services for AI-
powered applications, including natural language processing and
image recognition.
8. Ecosystem and Integration:
o AWS integrates with a wide array of third-party services and
applications, facilitating a diverse ecosystem that supports various
use cases.
Page | 28
Cloud computing the google perspective
Page | 29
Microsoft windows azure and online services in cloud computing
Use Cases:
Web and Mobile Applications: Developers can quickly build and deploy
scalable web and mobile applications.
Data Backup and Disaster Recovery: Businesses can back up data to
Azure for recovery in case of data loss.
Big Data Processing: Organizations can process large amounts of data
using Azure's analytics services.
Page | 30
IoT Solutions: Azure provides services for building and managing IoT
applications.
Online Services:
Azure also includes various online services that enhance productivity and
collaboration, such as:
Key Features:
Page | 31
Popular Open-Source Platforms for Private Clouds:
1. OpenStack:
o A widely used platform for building and managing private clouds.
o Provides a suite of interrelated services for computing, storage, and
networking.
o Highly scalable and supports multi-tenancy.
2. Cloud Stack:
o An open-source cloud computing software designed for creating,
managing, and deploying large networks of virtual machines.
o Easy to install and use, making it suitable for small to large
enterprises.
3. Kubernetes:
o Primarily a container orchestration platform, but can be used to
manage workloads in a private cloud environment.
o Supports microservices architecture and offers features for scaling,
self-healing, and automated deployment.
4. Open Nebula:
o A cloud management platform that allows for the management of
virtualized data centers.
o Offers an easy-to-use interface and can manage both virtual and
physical resources.
5. Proxmox VE:
o A virtualization management platform that combines KVM-based
virtualization and container-based virtualization (LXC).
o Provides a web interface for managing virtual machines and storage.
6. Eucalyptus:
o An open-source software platform for building private clouds that is
compatible with Amazon Web Services (AWS).
o Focuses on ease of use and integration with existing IT
infrastructure.
Use Cases:
Page | 32
Cost Savings: Organizations can reduce operational costs by leveraging
existing hardware and avoiding vendor lock-in.
Not to mention, the sole vendor may choose to raise service fees and
charge more for processing time, memory, storage space, and network
bandwidth than other cloud service providers. In this situation, choosing a
different cloud service provider is the option. Unfortunately, the amount of
data that has to be transferred from the old to the new supplier could make
this option quite expensive. Terabytes, or even petabytes, of data must be
transferred over the network, which takes a while and costs a lot in terms
of network capacity.
Page | 33
Replication of the data across various cloud service providers is one way
to prevent the issues caused by vendor lock-up. The simple reproduction is
relatively expensive and also presents technical difficulties. The cost of
maintaining data consistency could have a significant impact on the virtual
storage system's performance, which consists of numerous full clones of
the organization's data dispersed across various suppliers. Another
approach might be built on an expansion of the RAID-5 system's design
philosophy, which is utilised to store data reliably.
Block-level stripping with distributed parity is used by a RAID-5 system
across a disc array, as shown in Figure. The disc controller distributes
sequential data blocks to the physical discs and creates a parity block by
bit-wise XO-Ring the data blocks. In order to prevent the bottleneck that
could occur if all parity blocks were written to a single dedicated drive, as
is the case with RAID-4 systems, the parity block is written on a distinct
disc for each file. After a single disc loss, we may restore the data using
this method.
Key Concepts:
1. Intercloud Definition:
o The Intercloud is a collective space formed by multiple
interconnected clouds (public, private, hybrid) that can
communicate and share resources, applications, and data.
o It enables a more flexible and dynamic cloud environment where
organizations can leverage services from multiple providers.
2. Interoperability:
o Interoperability in cloud computing ensures that different cloud
platforms can work together, which is crucial for avoiding vendor
lock-in and ensuring data portability.
o It involves standard protocols, APIs, and formats that allow different
cloud services to exchange information and function cooperatively.
3. Benefits of Intercloud:
o Flexibility: Organizations can choose services from different
providers based on their specific needs without being constrained by
a single vendor.
Page | 34
o Scalability: Businesses can scale resources up or down across
multiple clouds, optimizing performance and costs.
o Resilience: By distributing workloads across various clouds,
organizations can enhance disaster recovery and fault tolerance.
o Innovation: Access to a broader range of services and technologies
fosters innovation and experimentation.
Challenges:
Conclusion:
Page | 35
Energy use and ecological impact of large-scale data centers
The energy use and ecological impact of large-scale data centers are critical
concerns in today’s digital landscape. As the demand for cloud computing, big
data, and online services grows, so does the need for data centers, which consume
significant amounts of energy and resources.
Ecological Impact:
1. Carbon Footprint:
o The carbon footprint of data centers can be substantial, especially
when they rely on fossil fuels for electricity. This contributes to
greenhouse gas emissions and climate change.
2. Water Use:
o Cooling systems often require significant amounts of water, which
can lead to resource depletion in regions facing water scarcity. The
environmental impact varies depending on local climate and water
availability.
3. Land Use:
o The construction of large data centers can result in habitat disruption
and loss of biodiversity. They require substantial land and can
impact local ecosystems.
4. Electronic Waste:
Page | 36
o The rapid pace of technological advancement leads to frequent
hardware upgrades and disposals, resulting in electronic waste (e-
waste) that can be difficult to recycle and manage sustainably.
Mitigation Strategies:
Page | 37
Support Response Times: Defines how quickly the service provider will
respond to issues or support requests.
Penalty Clauses: Specifies penalties for failing to meet agreed-upon
service levels (e.g., service credits).
Monitoring and Reporting: Details how service performance will be
monitored and reported to the customer.
Visual Representation
Page | 38
Responsibility sharing between user and cloud service provider:
Page | 39
Importance of Responsibility Sharing
END OF UNIT-I
Page | 40
UNIT-II
Cloud computing: Applications and paradigms
Challenges for cloud computing
Cloud is an important resource with its various benefits, but it has various risks
and challenges as well. This article will dive deep into a few of the most common
cloud computing challenges faced by the industry, cloud security challenges and
risks, and cliched cloud computing problems and solutions.
No identity access management, lack of visibility and control tools, data misuse,
and cloud misconfiguration are the common reasons behind cloud privacy leaks.
There are also concerns about malicious insiders, insecure APIs, and neglect or
oversights in cloud data management.
Page | 41
Solution:
Install and implement the latest software updates, as well as configure network
hardware to prevent security vulnerabilities. Using antivirus and firewalls,
increasing bandwidth for Cloud data availability, and implementing
cybersecurity solutions are some ways to prevent data security risks.
Multi-cloud environments:
Multi-cloud environments present issues and challenges such as – configuration
errors, data governance, lack of security patches, and no granularity. It is difficult
to apply data management policies across various boards while tracking the
security requirements of multi-clouds.
Solution:
Implementing a multi-cloud data management solution can help you manage
multi-cloud environments. We should be careful while choosing the solution, as
not all tools offer specific security functionalities, and multi-cloud environments
continue to become highly sophisticated and complex.
Performance challenges:
The performance and security of cloud computing solutions depend on the
vendors, and keep in mind that if a Cloud vendor goes down, you may lose your
data too.
Solution:
Cloud Service Providers should have real-time SaaS monitoring policies.
Page | 42
Match the target cloud environment’s specifications by rebuilding
application stacks
Managing services and apps in the target cloud ecosystem
Working with data encryption during migration
Configuring networks in the target cloud for operations
Solution:
Before starting work on projects, setting Cloud interoperability as well as
portability standards can help organizations solve this problem. The use of multi-
layer authorization and authentication tools is a good choice for account
verifications in hybrid, public, and private cloud ecosystems.
Solution:
Focus on improving operational efficiency and pay more for higher bandwidth to
address network dependencies.
Page | 43
Solution:
Hire Cloud professionals having specializations in DevOps as well as automation.
If a Cloud vendor gets hacked, the sensitive data of organizations using their
services gets compromised.
Solution:
Improve both aspects by implementing the NIST Framework standards in Cloud
environments.
Password security:
Account managers manage all their cloud accounts using the same passwords.
Password management poses a critical problem, and it is often found that users
resort to using weak and reused passwords.
Solution:
Secure all your accounts by using a strong password management solution. To
further improve security, in addition to a password manager, use Multifactor
Authentication (MFA). Cloud-based password managers should alert users of
security risks and leaks.
Cost management:
Although Cloud Service Providers (CSPs) offer a pay-as-you-go subscription
model for services, hidden costs are charged as underutilized resources in
enterprises, making the costs can add up.
Page | 44
Solution:
Implementing resource utilization monitoring tools as well as auditing systems
regularly are some ways organizations can fix this. It’s one of the most efficient
methods to deal with major challenges and manage budgets in cloud computing.
Lack of expertise:
Cloud computing is a highly competitive field, and there are many professionals
who lack the required knowledge and skills to be employed in the industry. There
is also a huge gap in supply and demand for certified individuals and many job
vacancies.
Solution:
Companies should help existing IT staff in upskilling their careers and skills by
investing in Cloud training programs.
Control or governance:
Good IT governance makes sure that the right tools are used and assets get
implemented as per procedures and agreed-on policies. Lack of governance is a
common problem in cloud computing, and companies utilize tools that do not
align with their vision. IT teams don’t get total control of compliance, data quality
checks, and risk management, thus creating many uncertainties when migrating
to the cloud from traditional infrastructures.
Solution:
Traditional IT operations should be adopted to accommodate Cloud migrations.
Compliance:
When it comes to having the best data compliance policies, cloud Service
Providers (CSP) are not up-to-date. Organizations run into compliance issues
Page | 45
with state laws and regulations whenever a user transfers data from internal
servers to the cloud.
Solution
The General Data Protection Regulation Act is expected to address compliance
issues in the future for CSPs.
Page | 46
Microsoft Azure App Service: Develop and host web apps
in the cloud.
4. Data as a Service (DaaS):
o Examples:
AWS Redshift: Data warehousing service for analytics.
Snowflake: Cloud-based data platform for data storage and
analysis.
5. Function as a Service (FaaS):
o Examples:
AWS Lambda: Run code in response to events without
managing servers.
Azure Functions: Execute event-driven code without
provisioning infrastructure.
Page | 47
6. Health and Telemedicine Solutions:
o Opportunity: Cloud-based applications that facilitate remote
healthcare services and health data management.
o Potential Applications: Telehealth platforms, remote patient
monitoring systems, and personalized health management apps.
Frontend
Backend
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.
Page | 48
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.
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.
Runtime Cloud: Runtime cloud in backend provides the execution and Runtime
platform/environment to the Virtual machine.
Storage: Storage in backend provides flexible and scalable storage service and
management of stored data.
Page | 49
Internet: Internet connection acts as the medium or a bridge between frontend
and backend and establishes the interaction and communication between frontend
and backend.
1. Definition of Workflows:
o A workflow is a sequence of tasks or activities that are performed to
accomplish a specific business process or function. These tasks can
Page | 50
be automated and can include data processing, service calls, and
human interactions.
2. Orchestration vs. Choreography:
o Orchestration: A centralized approach where a single service (the
orchestrator) manages the workflow, controlling the execution of
tasks and handling dependencies.
o Choreography: A decentralized approach where each service
involved in the workflow knows when to execute its tasks based on
events, without a central coordinator.
1. Tasks:
o Individual units of work that can be executed. Tasks may include
data transformations, API calls, or human approvals.
2. Triggers:
o Events that initiate workflows, such as changes in data, user actions,
or scheduled times.
3. Data Flow:
o The movement of data between tasks, which can include input and
output parameters, ensuring tasks have the necessary data to execute.
4. Dependencies:
o Relationships between tasks that determine the order of execution.
For example, Task B can only start after Task A completes
successfully.
5. Error Handling:
o Mechanisms to manage failures, retries, and compensating actions
when a task fails, ensuring workflow resilience.
1. Workflow Engines:
o Specialized software that manages the execution of workflows,
handling task scheduling, execution, and monitoring. Examples
include Apache Airflow, Camunda, and AWS Step Functions.
2. Event-Driven Architecture:
o Using event streams to trigger workflows based on specific
conditions or changes in state. This approach supports real-time
processing and can enhance responsiveness.
3. API Integration:
o Workflows often involve calling multiple APIs from different
services. Coordinating these API calls requires careful handling of
responses and managing the sequence of operations.
Page | 51
4. Human Task Management:
o Some workflows require human input or approval. Coordination
tools help manage these interactions, track status, and notify users
when their input is needed.
5. Monitoring and Logging:
o Continuous monitoring of workflow execution helps identify
bottlenecks, failures, and performance metrics. Logging provides
insights for debugging and optimizing workflows.
Page | 52
State machine model
ZooKeeper uses a state machine model to ensure that updates to ZooKeeper are
either fully successful or completely fail. This helps to preserve data integrity.
Hierarchical namespace
ZooKeeper's namespace is organized similarly to a file system, with data registers
called znodes that are similar to files and directories.
Replication
ZooKeeper uses replication to scale and increase reliability. Data is replicated to
all ZooKeeper servers in the ensemble.
Consistency
ZooKeeper guarantees that clients always see the same version of the distributed
system, regardless of which server they connect to.
Reliability
Once an update is applied successfully, it remains in ZooKeeper until a client
overwrites it. This ensures that important information and processes are not lost
due to system malfunctions.
Timeliness
Clients are guaranteed to have the most recent version of the system within a
certain time limit.
Page | 53
The MapReduce programming model:
MapReduce is a programming model that's used to process large data sets across
clusters of computers in cloud computing. It's a core component of the Hadoop
framework and is used to access big data stored in the Hadoop File System
(HDFS).
Page | 54
Case Study: Grep and Web Applications:
Scenario
Let’s explore a hypothetical case study where a web application leverages Grep-
like functionality within a cloud computing environment. The application is an
online code repository platform that allows users to upload, search, and
collaborate on code snippets and documentation.
Objectives
Architecture Overview
1. Cloud Infrastructure:
o Platform: The application is hosted on a cloud provider (e.g., AWS,
Azure, Google Cloud).
o Services Used:
Compute: Virtual machines or containers (e.g., Kubernetes)
for hosting the application.
Storage: Cloud storage services (e.g., AWS S3) for storing
code snippets and related files.
Database: A managed database service (e.g., Amazon RDS,
Google Cloud SQL) for metadata and user information.
2. Grep-like Functionality:
o Implement a microservice that uses Grep functionality to search
through code snippets.
o Utilize regular expressions to provide advanced search features (e.g.,
searching for specific functions, variable names).
Implementation Steps
Benefits Achieved
Page | 56
High-Performance Computing on cloud:
High Performance Computing (HPC) generally refers to the practice of
combining computing power to deliver far greater performance than a typical
desktop or workstation, in order to solve complex problems in science,
engineering, and business.
Page | 57
Cloud Computing for Biology Research
Definition:
Cloud computing enables the delivery of computing services over the internet,
providing remote access to resources and tools.
Key Benefits:
Scalability:
Researchers can easily scale resources based on their needs, from storage
to processing power, accommodating fluctuating demands.
Cost-Effectiveness:
Eliminates the need for expensive hardware and maintenance costs.
Researchers pay only for the resources they use, reducing financial
barriers.
Data Storage and Management:
Large datasets generated from experiments, such as genomic data, can be
stored securely in the cloud, allowing for efficient data management.
High-Performance Computing (HPC):
Cloud services offer access to HPC resources that can perform complex
calculations and simulations, facilitating advanced biological research.
Collaboration:
Researchers can work together in real-time, sharing data and tools across
institutions and geographical locations, enhancing collaborative efforts.
Accessibility:
Data and applications can be accessed from anywhere, enabling
researchers to work remotely or while traveling.
Data Security:
Cloud providers implement robust security measures, including
encryption and compliance with regulations, ensuring the protection of
sensitive biological data.
Integration with Tools:
Many cloud platforms offer specialized tools for bioinformatics and data
analysis, streamlining research workflows.
Page | 58
Social Computing
Definition:
Social computing refers to the use of social media and online platforms to
facilitate human interactions and collaborations.
Key Features:
User Interaction:
Platforms like Facebook, Twitter, and LinkedIn enable users to create
profiles, share information, and engage with content, enhancing
communication.
Community Building:
Social computing fosters the formation of online communities where
individuals with shared interests can connect, collaborate, and support
each other.
Crowdsourcing:
Harnesses collective intelligence by allowing large groups to contribute
ideas, solutions, or content, which can drive innovation and problem-
solving.
Data Analysis:
Social computing involves analyzing interactions on social platforms to
understand trends, behaviors, and sentiments, informing decision-making.
Feedback Mechanisms:
Businesses and organizations can gather user feedback through social
media, improving products and services based on direct customer input.
Collaboration Tools:
Various platforms offer tools for collaborative projects, enabling users to
work together on tasks and share resources seamlessly.
Influence and Reach:
Social computing amplifies the influence of individuals and
organizations, allowing messages to reach broader audiences quickly.
Social Impact:
Facilitates activism and social change by enabling communities to
organize and mobilize around common causes.
Page | 59
Digital Content in Cloud Computing
Definition:
Digital content refers to any form of information stored electronically, while
cloud computing provides a framework for its management and distribution.
Key Aspects:
Page | 60
Cloud resource virtualization:
Virtualization
Definition:
Virtualization is the process of creating virtual instances of physical computing
resources, allowing multiple workloads to run on a single hardware platform.
Key Features:
Definition:
A Virtual Machine Monitor (VMM), or hypervisor, is software that creates and
manages virtual machines by interfacing with the physical hardware.
Types:
Page | 61
Type 2 Hypervisors: These run on top of a host operating system. While
easier to set up, they introduce additional overhead, which can impact
performance. Examples include VMware Workstation and Oracle
VirtualBox.
Key Functions:
Definition:
A Virtual Machine (VM) is a software-based emulation of a physical computer,
running its own operating system and applications, and utilizing virtual hardware
resources.
Characteristics:
Page | 62
Security: Each VM runs in isolation, which helps protect against security
breaches. Administrators can implement security policies at the VM level,
enhancing overall system security.
Snapshot and Cloning: VMs can be backed up using snapshots, which
capture their state at a specific point in time. This feature facilitates easy
recovery and testing of applications.
Cost Efficiency: By maximizing the use of physical hardware, VMs help
reduce overall infrastructure costs. Organizations can consolidate their IT
resources while maintaining high availability and performance.
Separate applications
Ensure that applications don't interfere with each other by sharing the same
resources.
Use a single address space for each application group to prevent software
attacks.
Public cloud services often use a private IP address space to protect them
from outside access.
Use encryption
Encryption encodes data so that only authorized parties can decode it.
There are three main types of encryption: at rest, in transit, and in use.
Page | 63
Update security policies
Ensure that security policies and data security requirements match the new
work environment.
Page | 64
What is Paravirtualization?
Paravirtualization is the category of CPU virtualization which uses hypercalls for
operations to handle instructions at compile time. In paravirtualization, guest OS
is not completely isolated but it is partially isolated by the virtual machine from
the virtualization layer and hardware. VMware and Xen are some examples of
paravirtualization.
Page | 65
S.No. Full Virtualization Paravirtualization
Paravirtualization is faster in
Full Virtualization is slow than
operation as compared to full
paravirtualization in operation.
4. virtualization.
It is less streamlined
compared to para- It is more streamlined.
9. virtualization.
Page | 66
Hardware Support for Virtualization:
1. CPU Virtualization
2. Memory Management
3. I/O Virtualization
Direct I/O Access: Techniques like Single Root I/O Virtualization (SR-
IOV) enable VMs to access network and storage devices directly,
bypassing the hypervisor for improved performance and reduced latency.
Virtualized Network Interface Cards (vNICs): Hardware support for
virtual networking, including vNICs, allows VMs to communicate over the
network as if they were physical machines, enabling efficient data transfer
and communication.
4. Storage Virtualization
Page | 67
Hardware-Assisted RAID: Using RAID technology for data redundancy
and performance can enhance storage reliability in virtual environments,
ensuring that VMs maintain high availability.
5. Graphics Virtualization
6. Security Features
7. Scalability
Page | 68
Case study: Xen
Xen is an open source hypervisor based on paravirtualization. It is the most
popular application of paravirtualization. Xen has been extended to compatible
with full virtualization using hardware-assisted virtualization. It enables high
performance to execute guest operating system. This is probably done by
removing the performance loss while executing the instructions requiring
significant handling and by modifying portion of the guest operating system
executed by Xen, with reference to the execution of such instructions. Hence this
especially support x86, which is the most used architecture on commodity
machines and servers.
Pros:
a) Xen server is developed over open-source Xen hypervisor and it uses a
combination of hardware-based virtualization and paravirtualization. This tightly
coupled collaboration between the operating system and virtualized platform
enables the system to develop lighter and flexible hypervisor that delivers their
functionalities in an optimized manner.
b) Xen supports balancing of large workload efficiently that capture CPU,
Memory, disk input-output and network input-output of data. It offers two modes
to handle this workload: Performance enhancement, and For handling data
density.
Page | 69
c) It also comes equipped with a special storage feature that we call Citrix storage
link. Which allows a system administrator to uses the features of arrays from
Giant companies- Hp, Netapp, Dell Equal logic etc.
d) It also supports multiple processor, live migration one machine to another,
physical server to virtual machine or virtual server to virtual machine conversion
tools, centralized multiserver management, real time performance monitoring
over window and linux.
Cons:
a) Xen is more reliable over linux rather than on window.
b) Xen relies on 3rd-party component to manage the resources like drivers,
storage, backup, recovery & fault tolerance.
c) Xen deployment could be a burden some on your Linux kernel system as time
passes.
d) Xen sometimes may cause increase in load on your resources by high input-
output rate and may cause starvation of other Vm’s.
Definition of Paravirtualization
Page | 70
o The need for modification allows the OS to manage resources more
efficiently since it can communicate directly with the hypervisor,
avoiding the overhead of hardware emulation.
2. Performance Improvement:
o Paravirtualization can lead to better performance than full
virtualization because it reduces the overhead associated with
simulating hardware. The guest OS can make hypercalls for
operations like memory management, I/O processing, and other
functions, leading to faster execution.
o This is particularly beneficial for workloads requiring high
performance, as it minimizes the context switching and emulation
overhead that typically occurs in fully virtualized environments.
3. Resource Management:
o The hypervisor can more effectively manage CPU and memory
resources in a paravirtualized environment. Since the guest OS is
aware of its virtualization context, it can request resources from the
hypervisor more efficiently.
o This cooperative resource management helps in achieving better
overall system performance and allows for dynamic allocation of
resources based on workload demands.
4. Isolation and Security:
o Although paravirtualization offers performance benefits, it still
maintains isolation between VMs. Each guest OS runs in its own
environment, ensuring that issues in one VM do not affect others.
o The hypervisor can enforce security policies, manage access, and
monitor VM behaviour, adding a layer of security that is crucial in
cloud computing environments.
Page | 71
o Many cloud service providers utilize paravirtualization to offer
optimized virtual environments for their customers. By modifying
guest OSes for better interaction with the hypervisor, they can
provide more efficient resource management and improved
performance.
Examples of Paravirtualization
Page | 72
o Bridged networking facilitates seamless connectivity and is often
used in cloud environments where VMs need to be part of the same
subnet.
3. VLAN Support:
o Xen enables the use of Virtual Local Area Networks (VLANs) to
segregate traffic between different tenants or applications. By
implementing VLAN tagging, administrators can isolate network
traffic for security and performance optimization.
o This segregation helps in multi-tenant environments, ensuring that
different customers’ traffic does not interfere with each other,
thereby enhancing security and performance.
4. Network I/O Scheduling:
o Xen incorporates network I/O scheduling mechanisms to manage
the bandwidth allocated to each VM’s vNIC. This ensures fair
allocation of network resources, preventing any single VM from
monopolizing the bandwidth.
o Through techniques like credit scheduling and fair queuing, Xen can
dynamically adjust the bandwidth allocated to each VM based on
demand, optimizing overall network performance.
5. Paravirtualized Network Drivers:
o Xen uses paravirtualized network drivers (such as the xennet driver)
to improve the efficiency of network communication between VMs
and the hypervisor. These drivers are designed to minimize overhead
by enabling direct communication between VMs and the hypervisor
without the need for full hardware emulation.
o This leads to lower latency and higher throughput, making network
communication faster and more efficient.
6. Support for Network Function Virtualization (NFV):
o Xen supports Network Function Virtualization, allowing network
functions such as firewalls, routers, and load balancers to be
implemented as virtualized services. This reduces the need for
dedicated hardware, enabling more efficient use of resources.
o By deploying these functions as VMs, organizations can scale
services on demand and improve agility in network management.
1. Traffic Shaping:
o Traffic shaping can be implemented within Xen to control the flow
of data packets, ensuring that network performance remains stable
even during peak loads. By prioritizing certain types of traffic, such
as VoIP or video streaming, organizations can optimize the user
experience.
Page | 73
2. Offloading Capabilities:
o Xen supports various offloading capabilities such as TCP
segmentation offload (TSO) and checksum offload. By offloading
these tasks to the network interface card (NIC), the hypervisor
reduces the CPU load and enhances network performance.
3. Integration with SDN (Software-Defined Networking):
o Xen can be integrated with SDN solutions, allowing for more
dynamic and flexible network management. Through SDN, network
resources can be provisioned and adjusted programmatically,
optimizing performance based on real-time demands.
4. Monitoring and Analytics:
o Continuous monitoring of network performance metrics allows for
the identification of bottlenecks or inefficiencies. By analyzing
traffic patterns and resource usage, administrators can make
informed decisions to optimize network configurations.
1. Enhanced Performance:
o VBlades leverage the unique architecture of Itanium processors to
provide enhanced performance for virtual machines (VMs). By
using paravirtualization, guest operating systems can make direct
hypercalls to the hypervisor, reducing the overhead associated with
traditional virtualization techniques.
o This direct communication minimizes context switching and
resource contention, enabling better utilization of the processor's
capabilities.
2. Scalability:
o The Itanium architecture is designed to handle large amounts of data
and support multiple threads, making it ideal for cloud computing
Page | 74
environments that require scalability. VBlades can efficiently
manage numerous VMs, providing resources dynamically based on
demand.
o As cloud workloads fluctuate, VBlades can scale resources up or
down seamlessly, optimizing performance while controlling costs.
3. Optimized Memory Management:
o VBlades implement efficient memory management techniques, such
as shared memory and dynamic memory allocation, to ensure that
VMs utilize memory resources effectively. This helps reduce
memory overhead and improve overall system performance.
o Paravirtualization allows the guest OS to request memory directly
from the hypervisor, optimizing memory usage and enabling better
handling of large datasets.
4. I/O Virtualization:
o VBlades utilize paravirtualized I/O drivers that facilitate efficient
data transfer between VMs and physical devices. This reduces the
latency typically associated with I/O operations and improves
throughput.
o By allowing VMs to communicate more directly with I/O resources,
VBlades enhance the overall performance of applications running in
a virtualized environment.
5. Fault Isolation and Security:
o VBlades provide robust fault isolation between VMs, ensuring that
a failure in one VM does not affect others. This isolation is crucial
for maintaining the reliability of cloud services.
o Security measures can be implemented at the hypervisor level,
enhancing the protection of sensitive data and applications running
in the cloud.
1. Cost Efficiency:
o By optimizing resource utilization and improving performance,
VBlades can reduce operational costs for cloud service providers.
Efficient resource management allows for better allocation of
hardware resources, minimizing waste.
2. High Availability:
o VBlades are designed to support high availability, enabling quick
recovery from failures and minimizing downtime. This is
particularly important for mission-critical applications running in
cloud environments.
3. Support for Mixed Workloads:
Page | 75
o The ability of VBlades to manage diverse workloads makes them
suitable for multi-tenant cloud environments. They can efficiently
support different types of applications, from high-performance
computing tasks to general-purpose workloads.
4. Flexibility and Agility:
o VBlades provide cloud service providers with the flexibility to
quickly provision new VMs based on customer demand. This agility
is essential in today’s fast-paced IT landscape, where resource needs
can change rapidly.
Use Cases
1. Enterprise Applications:
o Organizations running enterprise applications can benefit from the
optimized performance and scalability offered by VBlades, making
them ideal for ERP, CRM, and other critical business functions.
2. High-Performance Computing:
o VBlades are well-suited for HPC environments where performance
is paramount. Applications such as scientific simulations, data
analysis, and financial modeling can leverage the advantages of
Itanium’s architecture.
3. Cloud Service Providers:
o Service providers can use VBlades to offer competitive cloud
services, attracting customers with improved performance,
reliability, and cost efficiency.
VMs can degrade over time due to a number of factors, including: Disk
fragmentation, Virtual machine sprawling, Memory and CPU bottlenecks, and
Infrequent patch updates.
Cloud VMs offer organizations access to the computing power of an entire data
center's worth of computers, rather than a single machine. However, if not
configured properly, multiple virtual machines sharing the same hardware
resources can lead to decreased performance and efficiency.
1. Security Vulnerabilities
Page | 78
6. Licensing and Cost Concerns
Hidden Costs: While virtualization can reduce hardware costs, it can also
lead to hidden expenses related to software licensing, management tools,
and additional infrastructure needed to support virtualization.
Resource Overprovisioning: Organizations may overprovision resources
to ensure performance, leading to unnecessary costs. Without proper
monitoring and management, the potential for waste increases.
Definition
Software Fault Isolation (SFI) is a technique used to protect and isolate the
execution of software components, ensuring that faults or vulnerabilities in one
component do not compromise the integrity or security of other components or
the system as a whole. In the context of cloud computing, SFI is particularly
important due to the multi-tenant nature of cloud environments, where multiple
users and applications share the same physical infrastructure.
1. Isolation Mechanisms:
o SFI uses various mechanisms to isolate code and data segments,
preventing unauthorized access or modification. This isolation can
be achieved through language-based techniques, such as using
specialized compilers or runtime environments that enforce isolation
at the code level.
2. Memory Protection:
o SFI often employs memory protection techniques to ensure that one
process or VM cannot access the memory space of another. This is
crucial for preventing data leaks and ensuring that vulnerabilities in
one application do not allow access to sensitive data in another.
3. Sandboxing:
o By running potentially unsafe code in a sandboxed environment, SFI
limits the code's access to system resources and other applications.
This containment helps prevent harmful actions from affecting the
entire system or other users.
4. Dynamic Enforcement:
o SFI can dynamically enforce isolation policies at runtime, checking
and validating memory accesses and operations as they occur. This
Page | 79
real-time enforcement adds an additional layer of security by
adapting to different execution contexts.
1. Enhanced Security:
o By isolating applications and processes, SFI reduces the risk of
exploitation. If a vulnerability is found in one component, attackers
cannot easily use it to compromise other parts of the system.
2. Fault Tolerance:
o SFI improves the overall fault tolerance of cloud applications. If one
component fails, it does not affect the functionality of other
components, allowing for continued operation and reducing
downtime.
3. Multi-Tenancy Support:
o In cloud environments where multiple tenants share resources, SFI
ensures that each tenant's applications are isolated from one another.
This is essential for maintaining privacy and compliance with data
protection regulations.
4. Easier Debugging and Maintenance:
o Isolated components are easier to debug and maintain. Faults can be
contained within a specific module, making it simpler to identify and
resolve issues without impacting the entire system.
1. Performance Overhead:
o Implementing SFI can introduce performance overhead due to
additional checks and enforcement mechanisms. While the impact
may be acceptable in many cases, it can be a concern for high-
performance applications.
2. Complex Implementation:
o Designing and implementing SFI can be complex, especially in large
systems with many interacting components. Ensuring that all
components adhere to isolation policies requires careful planning
and testing.
3. Compatibility Issues:
o Existing applications may need significant modifications to be
compatible with SFI mechanisms. This can be a barrier to adoption,
especially for legacy systems.
Page | 80
Use Cases in Cloud Computing
1. Multi-Tenant Applications:
o SFI is particularly useful in multi-tenant cloud applications, where it
is crucial to ensure that tenants cannot access each other’s data or
resources.
2. Microservices Architecture:
o In microservices architectures, where applications are composed of
numerous small services, SFI can help isolate these services to
prevent faults in one service from impacting others.
3. Containerization:
o While containers provide some level of isolation, SFI can further
enhance security by adding layers of protection between
containerized applications.
Resource management policies are the high-level guidelines that dictate how
resources are allocated and managed in a cloud environment. These policies can
vary based on organizational needs, service level agreements (SLAs), and
operational goals. Key types of policies include:
a. Allocation Policies
Page | 81
b. Scheduling Policies
c. Scaling Policies
Cost Awareness: Policies that account for the cost of resources, helping
organizations optimize spending by selecting appropriate instance types
and managing usage.
Budget Constraints: Establishing budgets for different departments or
projects to control resource allocation and spending.
Page | 82
b. Load Balancing
c. Virtualization Technologies
e. Resource Provisioning
Page | 83
Complexity: Managing resources across different environments (public,
private, hybrid clouds) adds complexity to resource management efforts.
Control theory, traditionally used in engineering and systems design, can provide
valuable insights and techniques for task scheduling in cloud computing
environments. By applying principles of control theory, cloud systems can
achieve more efficient and effective management of resources, leading to
improved performance, scalability, and reliability. Here’s how control theory can
be applied to task scheduling in the cloud:
Concept: Feedback control systems adjust their operations based on the output
of the system. In cloud computing, this can translate to adjusting task scheduling
based on the current performance metrics (e.g., CPU usage, response time).
Application:
Concept: PID controllers are widely used in control systems to maintain a desired
setpoint by adjusting inputs based on the proportional, integral, and derivative of
the error.
Application:
Page | 84
Queuing Theory
Concept: Queuing theory studies the behavior of queues, helping to model and
analyze task scheduling by predicting waiting times and system congestion.
Application:
Stability Analysis
Application:
Application:
Page | 85
Application:
Concept: MPC is a control strategy that uses a model of the system to predict
future behavior and optimize control actions accordingly.
Application:
Introduction
Stability in this context refers to the ability of the resource allocation system to
maintain consistent performance levels under varying loads without leading to
resource contention, overutilization, or underutilization. A stable system can
effectively allocate resources based on demand while adapting to fluctuations
without causing degradation in service quality.
1. Higher-Level Controller:
Page | 86
o Responsible for global resource management and coordination
across multiple lower-level resource managers.
o Sets policies, monitors performance metrics, and allocates higher-
level resources based on overall system goals (e.g., SLA adherence,
cost optimization).
2. Lower-Level Resource Managers:
o Handle the allocation of physical or virtual resources (e.g., CPU,
memory, storage) to specific workloads or applications.
o React to local resource demands and can dynamically adjust based
on real-time metrics.
Ensuring Stability
Page | 87
marketing campaign), the controller increases the allocation of VMs
to ensure the application remains responsive.
o Stability Achieved: By dynamically scaling the resources based on
demand, the architecture prevents server overloads, ensuring stable
performance without downtime.
2. Example 2: Machine Learning Workloads
o Scenario: A cloud service provides resources for machine learning
model training, which can be resource-intensive and vary in time
requirements.
o Higher-Level Controller: Allocates GPU resources based on the
overall demand for training jobs across different users.
o Lower-Level Resource Managers: Prioritize jobs based on
deadlines and resource availability. If one job requires a significant
amount of GPU power and is nearing its deadline, it can be
prioritized over less time-sensitive jobs.
o Stability Achieved: This prioritization ensures that critical tasks are
completed on time while maintaining overall system performance,
leading to a stable and efficient resource allocation.
Challenges to Stability
Page | 88
Static thresholds
These thresholds remain constant, and can lead to alert fatigue because they
don't adapt to changing conditions.
Dynamic thresholds
These thresholds adjust automatically based on real-time data, which can
reduce unnecessary alerts.
Here are some examples of feedback control based on dynamic thresholds:
Cloud computing
A cloud might stop accepting additional load when a threshold, such as
80%, is reached.
Bus control
A dynamic threshold based control strategy chooses a different threshold
value each time a bus stops at a control point. This reduces the penalty to
passengers delayed on-board the bus at a control point.
Road traffic resilience assessment
Dynamic thresholds can be used to assess the resilience of road traffic. For
example, a threshold could be established for normal fires and another for
extreme fires.
Introduction
1. Monitoring Agents:
Page | 89
o These agents continuously collect performance metrics from various
cloud resources (e.g., CPU usage, memory utilization, network
bandwidth).
o They provide real-time data that APMs use to make informed
decisions about resource allocation and performance tuning.
2. Control Logic:
o This includes algorithms and rules that determine how resources
should be allocated, scaled, or adjusted based on the metrics
collected.
o Control logic can utilize techniques from control theory, such as
feedback loops, to maintain desired performance levels.
3. Actuation Mechanisms:
o Actuators execute the decisions made by the control logic, such as
launching new virtual machines, scaling applications up or down, or
reallocating resources among different services.
Coordination Mechanisms
1. Hierarchical Coordination:
o APMs can be organized in a hierarchical structure where higher-
level managers oversee lower-level managers. For example, a global
APM may manage multiple local APMs responsible for specific
applications or services.
o This structure allows for centralized decision-making while enabling
local managers to optimize performance for their specific context.
2. Communication Protocols:
o APMs must communicate effectively to share metrics, alerts, and
decisions. This can involve standardized protocols (e.g., REST
APIs, message queues) that allow APMs to send and receive
information.
o Communication ensures that APMs can respond to system-wide
events, such as a sudden increase in demand or resource failure.
3. Collaboration and Consensus:
o APMs can collaborate to reach consensus on resource allocation
decisions. For instance, if multiple applications are competing for
limited resources, APMs can negotiate based on priority, resource
requirements, and SLAs.
o This collaborative approach helps prevent conflicts and optimizes
overall system performance.
Page | 90
4. Feedback Loops:
o Feedback mechanisms are essential for continuous improvement.
APMs can adjust their strategies based on past performance data and
current system conditions.
o For example, if an APM identifies that a specific application
consistently underperforms during peak loads, it can adapt its
resource allocation strategy for that application.
Challenges in Coordination
1. Complexity:
o As the number of applications and resources increases, coordinating
multiple APMs can become complex, requiring sophisticated
algorithms and protocols.
2. Latency:
o Communication delays between APMs can hinder real-time
responsiveness, affecting the ability to react to sudden changes in
demand.
3. Conflicting Objectives:
o Different applications may have varying performance requirements
and priorities, leading to potential conflicts in resource allocation
decisions.
Page | 91
A Utility-Based Model for Cloud-Based Web Services
Introduction
1. Resource Pooling:
o Cloud providers maintain a pool of computing resources (e.g.,
servers, storage, bandwidth) that can be dynamically allocated to
multiple users.
o This pooling allows for efficient resource utilization, as resources
can be shared among various applications and users, minimizing
waste.
2. On-Demand Provisioning:
o Users can request resources as needed, and the system provisions
these resources automatically. This flexibility is crucial for handling
variable workloads, such as traffic spikes during peak times.
o For example, an e-commerce site may need additional computing
power during sales events, which can be provisioned in real-time.
3. Metered Billing:
o In a utility-based model, users are billed based on their actual usage
of resources rather than a flat rate. This pay-as-you-go model aligns
costs with consumption, allowing for better budget management.
o Billing metrics can include CPU hours, data transfer, storage
capacity, and other resource metrics.
4. Service Level Agreements (SLAs):
o SLAs define the expected performance, availability, and reliability
of services. They ensure that users receive a guaranteed level of
service based on their subscription or usage level.
o For instance, an SLA might specify that a web service will have
99.9% uptime, with penalties for the provider if this metric is not
met.
Page | 92
Advantages of the Utility-Based Model
1. Cost Efficiency:
o Organizations can reduce capital expenditures by avoiding the need
to invest in on-premises infrastructure. They pay only for what they
use, making budgeting more predictable.
2. Scalability:
o The model allows for seamless scaling of resources to accommodate
changing workloads. Organizations can quickly scale up during peak
times and scale down during low-demand periods.
3. Flexibility:
o Users can choose different service levels and configurations based
on their needs, allowing for tailored solutions that match specific
business requirements.
4. Reduced Management Overhead:
o Cloud providers handle infrastructure management, maintenance,
and upgrades, allowing organizations to focus on their core business
activities rather than IT management.
1. Cost Management:
o While the pay-as-you-go model can be beneficial, it also requires
careful monitoring of resource usage to avoid unexpected costs.
Organizations may need to implement governance policies to
manage spending.
2. Performance Variability:
o Shared resources can lead to performance variability, especially
during peak usage times. Ensuring consistent performance requires
robust monitoring and management strategies.
3. Complexity in Resource Allocation:
o Determining the optimal allocation of resources in a utility model
can be complex, particularly in multi-tenant environments where
multiple users share the same resources.
Page | 93
o Applications like CRM and ERP systems operate on a utility model,
where businesses are charged based on user accounts, data storage,
and feature usage. This flexibility makes it easier for organizations
to adopt and scale SaaS solutions.
3. Data Analytics:
o Organizations can leverage cloud-based data analytics platforms that
charge based on the volume of data processed or the computational
power used. This model allows businesses to analyze large datasets
without investing in expensive infrastructure.
Page | 94
Benefits
Combinatorial auctions can improve economic efficiency by allowing bidders to
express their preferences more fully. They can also be used to reduce energy
consumption and security risks.
Examples of combinatorial auction-based resource allocation schemes
Priority Combinatorial Double Auction (PCDA): This scheme
estimates SLA violations for each task during the auction process and
allocates cloud resources based on user levels.
Combinatorial double auction-based market: In this scheme, a broker
allocates the providers' VMs according to the users' requests.
Combinatorial double auction scheme based on differential privacy:
This scheme uses differential privacy to protect the security of the auction
market.
Overview:
The simplest scheduling algorithm where tasks are processed in the order
they arrive.
Advantages:
Disadvantages:
Can lead to the "convoy effect," where short tasks wait for long tasks to
complete, leading to high average wait times.
Poor performance under varying workload conditions.
Page | 95
2. Shortest Job First (SJF)
Overview:
Prioritizes tasks with the shortest execution time, minimizing the average
wait time.
Advantages:
Disadvantages:
Can lead to starvation for longer tasks, as they may be perpetually delayed.
Requires knowledge of task execution times in advance.
Overview:
Each task is assigned a fixed time slice (quantum). After a task's time slice
expires, it is moved to the back of the queue.
Advantages:
Disadvantages:
Context switching can add overhead, especially with small time slices.
May lead to increased turnaround times for longer tasks.
4. Priority Scheduling
Overview:
Tasks are assigned priority levels, and those with higher priorities are
processed before lower-priority tasks.
Advantages:
Page | 96
Disadvantages:
Overview:
Advantages:
Disadvantages:
6. Task-Aware Scheduling
Overview:
Advantages:
Disadvantages:
Overview:
Page | 97
Distributes workloads evenly across available resources to avoid
overloading any single resource.
Common Techniques:
Advantages:
Disadvantages:
Overview:
Examples:
Advantages:
Disadvantages:
1. Fairness:
Page | 99
o STFQ focuses on equitable distribution of resources, ensuring that
no single task monopolizes the system. This is particularly important
in cloud environments where multiple tenants or applications share
resources.
2. Start Time:
o The algorithm tracks the start time of each task. Tasks are scheduled
based on their start times, which helps in managing the order of
execution fairly.
3. Time Quanta:
o STFQ divides time into small quanta. Each task gets a chance to
execute during its allocated quantum, which is determined by its
start time relative to others.
1. Task Arrival:
o When a new task arrives, its start time is recorded. The system
maintains a queue of tasks based on their start times.
2. Scheduling:
o At each scheduling decision point (often at the end of a quantum),
the algorithm checks the tasks in the queue. Tasks are granted
execution time based on their start times and the quantum allocation.
3. Fair Allocation:
o If multiple tasks are ready to execute, STFQ assigns execution time
in such a way that tasks that have waited longer receive priority. This
prevents starvation and ensures that all tasks receive their fair share
of resources.
4. Dynamic Adjustment:
o The system can dynamically adjust the execution order based on task
start times and current workload, providing a responsive scheduling
mechanism that adapts to changing conditions.
1. Fairness:
o STFQ ensures that all tasks receive fair treatment, reducing the
likelihood of resource starvation for lower-priority or longer-waiting
tasks.
2. Improved Performance:
o By minimizing contention and ensuring equitable resource
distribution, STFQ can enhance the overall performance of cloud
applications.
3. Scalability:
Page | 100
The algorithm can scale effectively in multi-tenant environments,
o
where numerous applications compete for resources. Its dynamic
nature allows it to adapt to varying workloads.
4. Reduced Latency:
o Tasks are executed based on their waiting time, which can lead to
lower average wait times compared to more static scheduling
algorithms.
1. Complexity:
o Implementing STFQ can be more complex than simpler scheduling
algorithms due to the need for maintaining task start times and
managing dynamic allocations.
2. Overhead:
o The continuous monitoring of tasks and dynamic adjustments can
introduce overhead, especially in systems with high task arrival
rates.
3. Resource Management:
o In highly variable workloads, the algorithm may struggle to predict
optimal resource allocations, potentially leading to inefficiencies.
Page | 101
Features
BVT scheduling can be implemented on multiprocessors and uniprocessors
with low overhead. It can also be used with a reservation or admission
control module for hard real-time applications.
Limitations
BVT scheduling may affect threads that are not allowed to borrow.
1 2 60
2 1 30
3 2 40
4 1 80
Page | 102
The objective of the given problem is to find a feasible set of solutions. Let us
apply the greedy approach.
2, 1 90
3, 1 or 1, 3 100
2, 3 70
4, 1 140
4, 3 120
The maximum profit is associated with the sequence {4,1}. Therefore, the
optimal order is {4,1}. One can also observe that while {4,1} is optimal, the
sequence {1,4} is not possible as deadline conditions are violated.
Page | 103
Scheduling MapReduce
MapReduce scheduling in cloud computing is a critical aspect of processing large
amounts of data on clusters. The goal of scheduling is to improve performance,
minimize response times, and utilize resources efficiently. Here are some aspects
of MapReduce scheduling:
Steps
The MapReduce scheduling system works in six steps:
Users submit jobs to a queue
The cluster runs the jobs in order
The master node distributes Map Tasks and Reduce Tasks to different
workers
Map Tasks read the data splits and run the map function on the data
TaskTracker
The TaskTracker is a worker that accepts Map and Reduce tasks from the
JobTracker, launches them, and keeps track of their progress
Tasks
Tasks run as separate processes and report progress periodically to their
parent TaskTracker
Resource usage
The TaskTracker keeps track of the resource usage of tasks, and kills tasks
that overshoot their memory limits
Public clouds
Public clouds are a natural host for MapReduce applications, but users are
responsible for deciding what type and amount of computing and storage
resources to rent
Page | 104
Deadline scheduling
This approach prioritizes tasks by their deadlines, running the task with the
earliest deadline first. While this method is good at meeting deadlines, it
can be less effective at maintaining a regular spacing between tasks.
Dynamic task scheduling
This approach can select the server with the best execution capability and
shortest predicted completion time to serve a task.
Data parallel task scheduling
This approach runs concurrent executions of tasks on multi-core cloud
resources to minimize cost and time constraints.
CEDA algorithm
This algorithm finds the critical path of a graph, calculates MTW and LFT,
and puts each task in order.
In cloud computing, scheduling is important for achieving high
performance and system throughput. The goal of scheduling is to map tasks
to resources in a way that optimizes one or more targets.
Page | 105
Key Components of Resource Management
1. Resource Allocation:
o Assigning resources to various applications and services based on
their requirements. This involves scheduling tasks and managing
resource pools to optimize utilization.
2. Monitoring and Measurement:
o Continuous tracking of resource usage, performance metrics, and
application states to make informed decisions about resource
adjustments. This includes tools that provide real-time analytics and
dashboards.
3. Optimization:
o Adjusting resource allocations based on workload patterns and
performance data to minimize waste and improve efficiency.
Techniques such as load balancing and resource pooling are
commonly used.
4. Policies and Governance:
o Establishing rules and policies for resource usage, including limits
on resource consumption, priority levels for different applications,
and compliance with service level agreements (SLAs).
Types of Scaling
Advantages:
Disadvantages:
Page | 106
2. Horizontal Scaling (Scaling Out/In):
o Involves adding or removing instances of an application across
multiple servers. For example, during peak traffic, additional
application instances can be launched.
Advantages:
Disadvantages:
1. Auto-Scaling:
o A feature offered by cloud service providers that automatically
adjusts the number of instances based on predefined policies and
metrics (e.g., CPU usage, memory utilization, request count).
2. Load Balancers:
o Distribute incoming traffic across multiple instances to ensure that
no single instance becomes overwhelmed. Load balancers can also
trigger scaling actions based on current load.
3. Predictive Scaling:
o Uses historical data and machine learning algorithms to predict
future demand and proactively scale resources before peak usage
occurs. This approach helps in managing workloads more efficiently
and preventing resource shortages.
4. Manual Scaling:
o Administrators can manually adjust resources based on observed
usage and performance metrics. While this approach allows for
targeted resource management, it may not respond quickly to sudden
changes in demand.
Page | 107
Challenges in Resource Management and Scaling
1. Complexity:
o Implementing effective resource management and scaling strategies
can be complex, particularly in large-scale cloud environments with
diverse applications.
2. Cost Management:
o While dynamic scaling can optimize resource usage, it may also lead
to increased costs if not monitored carefully. Organizations must
balance performance needs with budget constraints.
3. Latency and Performance:
o Scaling operations, especially vertical scaling, can introduce latency
as resources are reallocated. Ensuring minimal disruption during
scaling activities is essential for maintaining application
performance.
4. Monitoring and Analytics:
o Effective resource management relies on accurate monitoring and
analytics tools to provide insights into resource usage patterns and
performance metrics.
END OF UNIT-II
Page | 108
UNIT-III
Network support:
Packet-switched network:
A packet-switched network (PSN) is a kind of computer communications
network that sends data in the form of small packets. It allows the sender to send
data or network packets to the source and destination node over an internet
network channel that is transferred between multiple users and/or applications. A
packet-switched is also called a connectionless network, as it does not create an
endless connection between a source and destination points.
Hop in Networking:
In computer networking, a hop is the duration of the trip of a data packet when a
packet is transferred from a source point to the destination point. Data packets
pass via routers as they cross source and destination. The hop count is defined as
the number of network devices by which the data packets passes from source to
destination which is depending on routing protocol, It may include the
source/destination. The first hop is counted as hop 0 or hop 1.
Page | 109
Network technologies in PSN:
There are many network technologies in PSN. Some of them are given below:
The internet:
The internet, sometimes simply called the net, is a worldwide system of
interconnected computer networks and electronic devices that communicate with
each other using an established set of protocols.
Page | 110
Reduced risk and cost
Planning and implementing the migration now can reduce risk and cost,
rather than reconfiguring everything later.
Here are some steps to migrate from IPv4 to IPv6:
Plan: Conduct an inventory of IPv4 addresses and how they are used, assess
devices for IPv6 compatibility, and develop a plan.
Create IPv6 subnets: Create or associate IPv6 subnets.
Update the route table: Update the route table for IPv6 to the IGW.
Upgrade Security Group rules: Upgrade Security Group rules to include
the IPv6 addresses.
Migrate EC2 instances: Migrate EC2 instances that do not support IPv6.
Create firewall rules: Create firewall rules to allow or deny IPv6 address
ranges.
One service that can help with the migration is NAT Protocol Translation (NAT-
PT), which converts IPv4 addresses into IPv6 and vice versa.
The transformation of the internet can be viewed through several key phases:
Page | 111
5. The Cloud and Big Data (2010s-Present): Cloud computing enabled
businesses and individuals to store and process data remotely. This shift
facilitated the growth of big data analytics, machine learning, and AI
applications, leading to more personalized online experiences.
6. Web 3.0 and Decentralization (Emerging): The current trend toward
Web 3.0 focuses on decentralization, blockchain technology, and enhanced
user privacy. This phase aims to empower users with more control over
their data and foster greater trust in online interactions.
7. The Metaverse and Beyond: Looking ahead, concepts like the
metaverse—immersive virtual environments where users interact in real-
time—are gaining traction, suggesting another significant evolution in how
we experience the internet.
TCP congestion control is a method used by the TCP protocol to manage data
flow over a network and prevent congestion. TCP uses a congestion window and
congestion policy that avoids congestion. Previously, we assumed that only the
receiver could dictate the sender’s window size. We ignored another entity here,
the network. If the network cannot deliver the data as fast as it is created by the
sender, it must tell the sender to slow down. In other words, in addition to the
receiver, the network is a second entity that determines the size of the sender’s
window.
TCP Congestion Control ensures smooth data transmission over the network. For
an in-depth understanding of network protocols, the GATE CS Self-Paced Course
includes detailed networking modules.
Page | 112
Slow Start Phase
Exponential Increment: In this phase after every RTT the congestion window size
increments exponentially.
Example: If the initial congestion window size is 1 segment, and the first segment
is successfully acknowledged, the congestion window size becomes 2 segments.
If the next transmission is also acknowledged, the congestion window size
doubles to 4 segments. This exponential growth continues as long as all segments
are successfully acknowledged.
Initially cwnd = 1
Additive Increment: This phase starts after the threshold value also denoted as
ssthresh. The size of CWND (Congestion Window) increases additive. After each
RTT cwnd = cwnd + 1.
Initially cwnd = i
Page | 113
Retransmission can occur in one of two cases: when the RTO timer times out or
when three duplicate ACKs are received.
Network resource management refers to the processes and tools used to oversee
and optimize the various resources within a computer network. This involves
ensuring that network components—such as bandwidth, devices, and data—are
utilized efficiently to meet performance, reliability, and security goals. Key
aspects include:
Page | 114
correctly and consistently. This helps in troubleshooting and maintaining
network integrity.
4. Load Balancing: Distributing workloads across multiple network
resources to ensure no single resource is overwhelmed, improving
responsiveness and uptime for applications and services.
5. Resource Allocation: Dynamically assigning resources based on demand,
which might include adjusting bandwidth or reallocating servers based on
current usage patterns.
6. Security Management: Implementing policies and controls to protect
network resources from unauthorized access and threats. This includes
firewalls, intrusion detection systems, and access controls.
7. Capacity Planning: Forecasting future network needs based on current
usage trends and business growth, allowing organizations to upgrade
infrastructure proactively.
8. Quality of Service (QoS): Setting policies to prioritize certain types of
traffic, ensuring critical applications receive the necessary bandwidth and
performance levels.
1. Architecture
2. Scalability
Page | 115
3. Bandwidth and Latency
4. Fault Tolerance
5. Virtualization
6. Load Balancing
7. Security
Page | 116
Storage area network:
A dedicated, fast network that gives storage devices network access is called a
Storage Area Network (SAN). SANs are generally made up of several
technologies, topologies, and protocols that are used to connect hosts, switches,
storage elements, and storage devices. SANs can cover several locations.
Data transfer between the server and storage device is the primary goal of SAN.
Additionally, it makes data transmission across storage systems possible. Storage
area networks are primarily used to connect servers to storage devices including
disk-based storage and tape libraries.
Page | 117
Serial Attached SCSI(SAS): Serial Attached SCSI is a factor-to-point garage
protocol designed to attach servers to garage gadgets using high-pace serial
connections. SAS gives overall performance akin to Fibre Channel but with less
difficult cabling and decrease expenses. It helps direct-connected garage (DAS)
and may be used in SAN environments with SAS switches or routers.
Advantages of SANs
Increased accessibility of applications
Storage is available through numerous pathways for improved
dependability, availability, and serviceability and exists independently of
applications.
Improved functionality of the programme
Storage Area Networks (SANs) transfer storage processing from servers to
different networks.
High availability, scalability, flexibility, and easier management are all
made feasible by central and consolidated SANs.
By using a remote copy, remote site data transfer and vaulting SANs shield
data from malicious assaults and natural disasters.
Straightforward centralised administration
SANs make management easier by assembling storage media into single
images.
Disadvantages of SANs
If client PCs require high-volume data transfer, SAN is not the best option.
Low data flow is a good fit for SAN.
More costly
It is quite challenging to keep up.
Sensitive data may leak since every client computer has the same set of
storage devices. It is best to avoid storing private data on this network.
A performance bottleneck is the result of poor implementation.
Maintaining a data backup in the event of a system failure is challenging.
Too costly for small businesses
need a highly skilled individual
Page | 118
Content-delivery network:
A content delivery network (CDN) is a group of servers that work together to
deliver web content to users more quickly:
How it works
CDNs store copies of files in data centers around the world, and then deliver
content to users from the server closest to them. This reduces the distance data
has to travel, which speeds up loading times and improves user experience.
Benefits
CDNs can help with:
Performance: CDNs can improve performance by reducing latency and
network congestion.
User experience: CDNs can improve user experience by reducing the time
it takes for content to load, which can increase user engagement and
improve search engine rankings.
Reliability: CDNs can increase reliability and trustworthiness by ensuring
that content delivered through them maintains optimal quality.
Cost: CDNs can reduce overhead costs by eliminating the need to pay for
multiple providers and expensive foreign services.
Examples
Social media feeds, streaming platforms, and ecommerce sites are examples of
services that use CDNs to deliver content.
Key Features:
Page | 119
2. Applications: They are commonly used in peer-to-peer networks (like
BitTorrent), content delivery networks (CDNs), and virtual private
networks (VPNs).
3. Routing: In overlay networks, routing can be optimized for specific
applications or user needs, enabling features like improved data delivery
or enhanced security.
4. Fault Tolerance: Overlay networks can provide resilience by rerouting
traffic in case of node failures in the underlying network.
5. Scalability: They can easily scale by adding more nodes without major
changes to the underlying infrastructure.
Small-World Networks
Definition: Small-world networks are a type of graph in which most nodes are
not directly connected to each other, but can be reached from any other node by
a small number of hops. This phenomenon is often described using the phrase
"six degrees of separation."
Key Features:
Page | 120
Scale-free networks:
Key Features:
Page | 121
Epidemic algorithms
Key Concepts
Page | 122
4. Rumor Mongering:
o A node that hears a rumor (new information) informs its neighbours,
and the process continues. This approach is particularly effective for
spreading new updates quickly.
Storage systems:
The Evolution of storage technology:
Description: Portable storage media that became popular for data transfer
and backup. Initially 8 inches, later smaller sizes (5.25 and 3.5 inches) were
developed.
Impact: Made data sharing more accessible, but limited storage capacity
(typically 1.44 MB) constrained their use.
Page | 123
4. Optical Discs (CDs and DVDs) (1980s-1990s)
Description: Using flash memory, SSDs offered faster data access speeds,
lower power consumption, and increased durability compared to HDDs.
Impact: Revolutionized computing by significantly speeding up boot
times, application loading, and overall system performance.
Storage Models
Types:
o Direct Attached Storage (DAS): Storage directly connected to a
computer (e.g., hard drives). Simple but limited in sharing.
o Network Attached Storage (NAS): Dedicated file storage that
connects to a network, allowing multiple users to access files. Great
for file sharing.
o Storage Area Network (SAN): High-speed network providing
block-level storage to servers. Ideal for enterprise environments
needing fast access to large data sets.
o Cloud Storage: Data is stored on remote servers accessed via the
internet. Offers scalability, accessibility, and often automated
backups.
Key Considerations: Capacity, speed, scalability, reliability, and cost.
Page | 125
File Systems
Types:
o FAT (File Allocation Table): Simple and widely supported; good
for smaller storage devices but limited in scalability and features.
o NTFS (New Technology File System): Advanced file system used
by Windows, supporting large files, file permissions, and journaling.
o ext4 (Fourth Extended Filesystem): Common in Linux, supports
large files and efficient storage allocation.
o HFS+ (Hierarchical File System Plus): Used by macOS; supports
large files and advanced features like journaling.
Key Features: Hierarchical structure, metadata management, access
permissions, and file indexing.
Databases
Types:
o Relational Databases: Store data in tables with relationships
between them (e.g., MySQL, PostgreSQL). Use SQL for querying.
o NoSQL Databases: Non-relational, designed for unstructured data
(e.g., MongoDB, Cassandra). Offer flexibility in data modeling and
scalability.
o In-Memory Databases: Store data in RAM for faster access (e.g.,
Redis, Memcached). Useful for applications requiring high-speed
data processing.
Page | 126
o Graph Databases: Use graph structures to represent data
relationships (e.g., Neo4j). Ideal for social networks and
recommendation systems.
Key Features: Data integrity, querying capabilities, transaction
management, and scalability.
A Distributed File System (DFS) is a system that allows multiple users and
applications to access and manage files across multiple networked computers as
if they were on a single local system. It provides a way to store and retrieve data
in a distributed environment.
1. Data Distribution:
o Files are stored across multiple servers or nodes, allowing for
balanced storage and improved access times.
2. Transparency:
o Users can access files without needing to know where they are
physically located. The system abstracts the complexity of
distributed storage.
3. Scalability:
o Easily expands by adding more servers or nodes without significant
reconfiguration, accommodating growing data needs.
4. Fault Tolerance:
o Provides redundancy and data replication, ensuring that if one node
fails, data can still be accessed from another node.
5. Concurrency Control:
o Manages simultaneous access to files by multiple users, ensuring
data consistency and integrity.
Page | 127
General Parallel File System (GPFS)
1. Parallel Access:
o Multiple clients can read and write files simultaneously, improving
performance for data-intensive applications.
2. High Throughput:
o Optimized for large data transfers, GPFS supports high bandwidth
and low latency, making it suitable for applications like scientific
simulations and big data analytics.
3. Scalability:
o Can scale to thousands of nodes and petabytes of data, making it
suitable for enterprise-level storage needs.
4. Data Management:
o Offers features like data striping (spreading data across multiple
disks), which enhances performance, and integrated data protection
mechanisms to ensure data integrity.
5. Cross-Platform Support:
o Compatible with various operating systems, allowing integration in
heterogeneous environments.
6. Integrated with IBM Ecosystem:
o Often used in conjunction with IBM's other software and hardware
solutions, providing a comprehensive storage management
environment.
Page | 128
Google file System
Google Inc. developed the Google File System (GFS), a scalable distributed file
system (DFS), to meet the company’s growing data processing needs. GFS offers
fault tolerance, dependability, scalability, availability, and performance to big
networks and connected nodes. GFS is made up of a number of storage systems
constructed from inexpensive commodity hardware parts. The search engine,
which creates enormous volumes of data that must be kept, is only one example
of how it is customized to meet Google’s various data use and storage
requirements.
The Google File System reduced hardware flaws while gains of commercially
available servers.
GoogleFS is another name for GFS. It manages two types of data namely File
metadata and File Data.
The GFS node cluster consists of a single master and several chunk servers that
various client systems regularly access. On local discs, chunk servers keep data
in the form of Linux files. Large (64 MB) pieces of the stored data are split up
and replicated at least three times around the network. Reduced network overhead
results from the greater chunk size.
More than 1,000 nodes with 300 TB of disc storage capacity make up the largest
GFS clusters. This is available for constant access by hundreds of clients.
Page | 129
Components of GFS
A group of computers makes up GFS. A cluster is just a group of connected
computers. There could be hundreds or even thousands of computers in each
cluster. There are three basic entities included in any GFS cluster as follows:
Apache Hadoop:
Page | 131
Hadoop is particularly useful for handling large volumes of unstructured data,
making it popular in industries like finance, healthcare, and social media. Its
ability to scale from single servers to thousands of machines makes it a flexible
solution for big data challenges.
Page | 132
Transaction processing in NoSQL databases
Page | 133
Examples of NoSQL Databases and Their Transaction Processing
Use Cases
Big-Table:
You may store terabytes or even petabytes of data in Google Cloud BigTable, a
sparsely populated table that can scale to billions of rows and thousands of
columns. The row key is the lone index value that appears in every row and is
also known as the row value. Low-latency storage for massive amounts of single-
keyed data is made possible by Google Cloud Bigtable. It is the perfect data
source for MapReduce processes since it enables great read and write throughput
with low latency.
Page | 134
scalability In direct proportion to the number of machines in your cluster,
Google Cloud Bigtable scales. After a certain point, a self-managed HBase
system has a design bottleneck that restricts performance. This bottleneck
does not exist for Google Cloud Bigtable, therefore you can extend your
cluster to support more reads and writes.
Ease of administration Upgrades and restarts are handled by Google Cloud
Bigtable transparently, and it automatically upholds strong data durability.
Simply add a second cluster to your instance to begin replicating your data;
replication will begin immediately. Simply define your table schemas, and
Google Cloud Bigtable will take care of the rest for you. No more
managing replication or regions.
Cluster scaling with minimal disruption. Without any downtime, you may
scale down a Google Cloud Bigtable cluster after increasing its capacity
for a few hours to handle a heavy load. Under load, Google Cloud Bigtable
usually balances performance across all of the nodes in your cluster within
a few minutes after you modify the size of a cluster.
Page | 135
Megastore cloud:
Cloud Security:
Cloud security risk refers to the potential threats and vulnerabilities associated
with storing and processing data in cloud environments. As organizations
increasingly rely on cloud services, understanding these risks becomes crucial.
Here are some key aspects:
Page | 136
2. Insider Threats: Employees or contractors with access to cloud resources
may intentionally or unintentionally compromise data integrity or
confidentiality.
3. Compliance Risks: Many organizations must adhere to regulations (like
GDPR, HIPAA) that dictate how data should be managed and protected.
Failing to comply can lead to legal consequences and fines.
4. Insecure APIs: Application Programming Interfaces (APIs) used to
interact with cloud services can have vulnerabilities that attackers may
exploit to gain access or manipulate data.
5. Denial of Service (DoS) Attacks: Attackers may overwhelm cloud
services with excessive requests, making them unavailable to legitimate
users.
6. Data Loss: Data can be lost due to accidental deletion, corruption, or
provider outages. Ensuring proper backup and recovery measures is
essential.
7. Vendor Lock-In: Relying heavily on one cloud provider can create
challenges if switching providers becomes necessary, potentially leading
to data access issues or increased costs.
8. Shared Responsibility Model: Cloud security operates on a shared
responsibility model where the provider secures the infrastructure, while
the customer is responsible for securing their data and applications.
There are several top security concerns for cloud users, including:
Data loss
Data loss can be irreversible and can occur for a number of reasons,
including accidental deletion or loss of credentials.
Cloud-assisted malware
Page | 137
Insufficient identity and access management
APIs that fail to encrypt data, enforce proper access control, and sanitize
inputs appropriately can cause cross-system vulnerabilities.
System misconfigurations.
Online account hacking.
Zero-day attacks.
Insider threats.
Malware.
Data loss.
Data-security non-compliance.
Limited visibility
Compliance issues
Cybercriminals
Insider threats
System misconfigurations
Online account hacking
Zero-day attacks
Page | 138
Privacy and Privacy Impact Assessment:
Purpose of a PIA
Benefits of a PIA
Page | 139
Risk Management: Proactively addresses privacy risks, reducing the
likelihood of data breaches and legal issues.
Informed Decision-Making: Supports organizations in making informed
decisions about data management practices.
1. Authorization
2. Browsing
3. Trap doors
4. Invalid Parameters
5. Line Tapping
6. Electronic Data Capture
7. Lost Line
8. Improper Access Controls
9. Waste Recovery
10.Rogue Software
Page | 140
Goal of Security System
Integrity: Users with insufficient privileges should not alter the system’s
vital files and resources, and unauthorized users should not be permitted to
access the system’s objects.
Secrecy: Only authorized users must be able to access the objects of the
system. Not everyone should have access to the system files.
Availability: No single user or process should be able to eat up all of the
system resources; instead, all authorized users must have access to them.
A situation like this could lead to service denial. Malware in this instance
may limit system resources and prohibit authorized processes from using
them.
Malware
Malware is short for malicious software and refers to any software that is
designed to cause harm to computer systems, networks, or users. Malware
can take many forms. Malware is a program designed to gain access to
computer systems, generally for the benefit of some third party, without
the user’s permission.
Network Intrusion
Page | 141
Types of Threats
1. Program threats
Trojan Horse: A Trojan horse is malware that carries out malicious operations
under the appearance of a desired operation such as playing an online game.
Logic Bomb: A logic bomb is a malicious program that uses a trigger to activate
the malicious code. The logic bomb remains non-functioning until that trigger
event happens.
2. System Threats
Page | 142
Security of virtualization
The security of virtualization refers to the measures and practices used to protect
virtualized environments, including virtual machines (VMs), hypervisors, and the
underlying hardware. Virtualization allows multiple operating systems to run on
a single physical machine, providing benefits like resource efficiency and
scalability, but it also introduces specific security challenges.
Page | 143
Challenges in Virtualization Security
Best Practices
Security risks:
Page | 144
Security risks posed by a management OS
Page | 145
Xoar - breaking the monolithic design of TCB:
Page | 146
Xoar has nine classes of components of four types: permanent, self-destructing,
restarted upon request, and restarted on timer. A guest VM is started using the by
the Builder using the Toolstack; it is controlled by the XenStore-Logic. The
devices used by the guest VM are emulated by the Qemu component. Qemu is
responsible for device emulation
Component sharing between guest VMs in Xoar. Two VMs share only the
XenStore components. Each one has a private version of the BlkBack, NetBack
and Toolstack.
Page | 147
A Trusted Virtual Machine Monitor:
END OF UNIT-III
Page | 148
UNIT-IV
Complex System and Self-Organization:
Complex System:
Page | 149
5. Weather Systems: Meteorological patterns are influenced by numerous
interacting variables, leading to unpredictable and emergent weather
phenomena.
Implications
Abstraction and physical reality are concepts that often intersect in fields such as
philosophy, computer science, and systems theory. Here’s a breakdown of each
and their relationship:
Abstraction
Page | 150
2. Purpose: It allows individuals and systems to manage complexity, make
decisions, and communicate ideas without getting bogged down by every
detail.
3. Examples:
o In computer science, programming languages provide abstractions
(like functions or objects) that hide lower-level details (like memory
management).
o In mathematics, abstraction is used to develop theories (e.g., using
numbers instead of specific quantities).
4. Benefits:
o Simplifies problem-solving by allowing focus on relevant aspects.
o Facilitates communication and understanding among diverse
audiences.
Physical Reality
Page | 151
errors in application. Therefore, it’s crucial to validate abstractions against
real-world observations.
Quantifying complexity:
Emergence
Page | 152
Key Features of Emergence:
Self-Organization
Page | 153
2. From Micro to Macro: Self-organization often leads to emergent
phenomena, where the collective behavior of individuals results in higher-
level structures or functions.
3. Applications: Understanding both concepts can help in various fields,
from ecology and sociology to technology and engineering, as they provide
insights into how order and complexity arise from simpler interactions.
Composability Bounds
Page | 154
Scalability
1. Types of Scalability:
o Vertical Scalability (Scaling Up): Involves adding more resources
(CPU, RAM) to a single node to improve performance.
o Horizontal Scalability (Scaling Out): Involves adding more nodes
to a system (like servers in a cluster) to distribute the load.
2. Load Handling: A scalable system should be able to maintain or improve
its performance as the number of users or transactions increases.
3. Design Considerations: Designing for scalability often involves
architectural choices such as using distributed databases, load balancers,
and microservices.
4. Examples:
o Cloud services are designed to scale horizontally, allowing
organizations to pay for additional resources as needed.
o Content delivery networks (CDNs) distribute content across
multiple servers to ensure quick access and load balancing.
Page | 155
Modularity
Modularity refers to the design principle of dividing a system into smaller, self-
contained units or modules, each of which can perform a specific function. Key
aspects include:
Layering
Layering involves organizing a system into layers, where each layer provides
specific services or functionalities and interacts with adjacent layers. Key aspects
include:
Hierarchical Layering: Layers can also form a hierarchy, where higher layers
provide services to lower layers, maintaining a structured approach to system
functionality.
1. Abstraction: Each layer abstracts the complexities of the layer below it,
allowing higher layers to interact with a simplified interface.
Page | 156
2. Separation of Concerns: By separating functionality into different layers,
each layer can focus on a distinct aspect of the system (e.g., presentation,
logic, data).
3. Examples:
o The OSI model in networking has distinct layers (application,
transport, network, etc.) that each handle different aspects of data
communication.
o In software architecture, a typical web application might be divided
into presentation, business logic, and data access layers.
Hierarchy
Page | 157
More on the Complexity of Computing and Communication System:
1. Interconnected Components
2. Scalability Challenges
3. Dynamic Environments
Error Handling: Designing systems that can recover from failures (e.g.,
hardware malfunctions, network outages) requires implementing fault
tolerance mechanisms, which adds layers of complexity.
Redundancy: Ensuring reliability often necessitates redundant
components and pathways, which can increase both cost and complexity in
system architecture.
Page | 158
5. Security and Privacy Concerns
6. Complex Interactions
7. Data Management
Volume and Variety: The vast amounts of data generated and exchanged
require sophisticated storage, retrieval, and processing solutions.
Managing data integrity, consistency, and quality is critical.
Analytics and Processing: Implementing effective data analytics (e.g.,
real-time processing, machine learning) adds complexity as systems must
be designed to handle both structured and unstructured data.
8. User Experience
Page | 159
System of System: Challenges and Solutions:
1. Interoperability:
o Challenge: Different systems may use varying standards, protocols,
and data formats, making seamless communication difficult.
o Solution: Implement standard interfaces and data exchange
protocols. Middleware solutions can facilitate communication
between disparate systems.
2. Complexity Management:
o Challenge: The complexity of interactions among systems can lead
to unforeseen behaviors and difficulties in understanding the overall
system dynamics.
o Solution: Utilize modelling and simulation tools to visualize
interactions. Employ systems engineering principles to manage
complexity through structured design processes.
3. Scalability:
o Challenge: As new systems are added or existing systems scale,
maintaining performance and coherence can be difficult.
o Solution: Design with scalability in mind by using modular
architectures and service-oriented approaches that allow easy
integration of additional systems.
4. Governance and Control:
o Challenge: Each system in an SoS may have its own management
and operational procedures, leading to conflicts in governance and
priorities.
o Solution: Establish a clear governance framework that defines roles,
responsibilities, and decision-making processes across the SoS.
5. Reliability and Fault Tolerance:
o Challenge: The failure of one system can impact the entire SoS,
making it essential to design for reliability.
o Solution: Incorporate redundancy and failover mechanisms. Design
systems to detect failures and respond accordingly without
compromising the whole system.
6. Security:
Page | 160
o Challenge: The interconnected nature of systems increases
vulnerabilities, making the SoS more susceptible to cyber threats.
o Solution: Implement comprehensive security policies, including
regular audits, access controls, and encryption. Utilize intrusion
detection systems to monitor for anomalies.
7. Evolution and Adaptation:
o Challenge: Systems may evolve independently, leading to
compatibility issues and necessitating continuous updates.
o Solution: Adopt flexible architectures that can adapt to changes over
time. Establish protocols for regular system updates and integration
testing.
8. Data Management:
o Challenge: Managing data across multiple systems can lead to
inconsistencies, redundancy, and challenges in data sharing.
o Solution: Implement a unified data management strategy that
includes data governance policies and a centralized repository for
critical data.
Page | 161
Application development:
Different Amazon EC2 instance types are designed for certain activities. Consider
the unique requirements of your workloads and applications when choosing an
instance type. This might include needs for computing, memory, or storage.
Page | 162
1. General-Purpose Instances
Examples:
2. Compute-Optimized Instances
Examples:
3. Memory-Optimized Instances
Memory-optimized instances are geared for workloads that need huge datasets to
be processed in memory. Memory here defines RAM which allows us to do
multiple tasks at a time. Data stored is used to perform the central processing unit
(CPU) tasks it loads from storage to memory to run. This process of preloading
gives the CPU direct access to the computer program. Assume you have a
workload that necessitates the preloading of significant volumes of data prior to
Page | 163
executing an application. A high-performance database or a task that requires
real-time processing of a significant volume of unstructured data might be
involved in this scenario. In this case, consider using a memory-optimized
instance. It is used to run applications that require a lot of memory with high
performance.
Examples:
Storage-optimized instances are made for workloads that demand fast, sequential
read and write access to huge datasets. Distributed file systems, data warehousing
applications, and high-frequency online transaction processing (OLTP) systems
are examples of workloads that are suited for storage-optimized instances.
Storage-optimized instances are built to provide applications with the lowest
latency while accessing the data.
Examples:
Examples:
Page | 164
If the application utilizes floating-point calculations or graphics
processing, accelerated computing instances will be the best among all.
Also, data pattern matching can be done more efficiently with this instance
type.
To connect clients to cloud instances through a firewall, you can create a firewall
rule that allows the connection:
If a connection is dropped by a Google Cloud firewall rule, you can check the
firewall rules to see if the connection should be allowed. If the traffic should be
allowed, you can create or modify a firewall rule.
When securing application and transport layer protocols in Amazon EC2 (Elastic
Compute Cloud), you need to consider several best practices and security rules to
protect your data and resources. Here's an overview of key points:
1. Security Groups
Page | 165
Least Privilege Principle: Apply the least privilege principle by only
allowing access to specific ports and IP ranges that are necessary for your
application.
2. Network ACLs
CloudTrail and CloudWatch: Use AWS CloudTrail to log API calls and
AWS CloudWatch for monitoring your application and security logs. Set
up alerts for suspicious activities.
Network Flow Logs: Enable VPC Flow Logs to capture and monitor
traffic going to and from your EC2 instances for analysis.
Page | 166
7. IAM Roles and Policies
Use AWS Identity and Access Management (IAM) to create roles and
policies that grant only the necessary permissions to users and services
interacting with your EC2 instances.
By following these security practices, you can significantly enhance the security
of your EC2 instances at both the application and transport layers.
Page | 167
6. Add Storage:
o You can modify the storage size and type if needed. The default is
typically sufficient for testing.
o Click "Next: Add Tags".
7. Add Tags (Optional):
o Add tags to organize your resources (e.g., Name: MyLinuxInstance).
o Click "Next: Configure Security Group".
8. Configure Security Group:
o Create a new security group or select an existing one. Ensure you
add a rule to allow SSH (port 22) access:
Type: SSH
Protocol: TCP
Port Range: 22
Source: Choose your IP (or "Anywhere" for testing, though
it's less secure).
o Click "Review and Launch".
9. Review and Launch:
o Review your settings and click "Launch".
o You’ll be prompted to select an existing key pair or create a new
one. If creating a new key pair, download the .pem file and keep it
safe.
Page | 168
oReplace your-key-pair.pem with your actual key pair file name and
your-instance-public-dns with the public DNS or IP address of your
instance.
4. Accept the Warning:
o The first time you connect, you may see a warning about the
authenticity of the host. Type "yes" to continue.
Step 4: Post-Connection
Once connected, you can update your instance, install software, and
perform other configurations as needed.
Troubleshooting Tips
Page | 169
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.300</version> <!-- Check for the latest version -->
</dependency>
Here’s a simple example of how to upload and download files to/from S3.
s3Client.putObject(new PutObjectRequest(BUCKET_NAME,
file.getName(), file));
System.out.println("File uploaded: " + file.getName());
}
}
Page | 170
Download a File
public static void downloadFile(String fileName, String downloadPath) {
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
try {
Files.copy(inputStream, Paths.get(downloadPath));
System.out.println("File downloaded: " + downloadPath);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Make sure to call uploadFile and downloadFile with appropriate file paths in
your main method:
5. Additional Considerations
Region Configuration: You may need to specify the AWS region where
your bucket is located. You can configure this in the
AmazonS3ClientBuilder.
Error Handling: Always include error handling for production code.
Permissions: Ensure your IAM user has the correct permissions to access
the S3 bucket.
Page | 171
How to manage SQS services in c#:
You can install the AWS SDK for SQS via NuGet. Use the Package Manager
Console or add the package through the NuGet Package Manager in Visual
Studio.
Page | 172
Create a Queue
public async Task<string> CreateQueue(string queueName)
{
using var sqsClient = new AmazonSQSClient(RegionEndpoint.USEast1); //
Choose your region
var createQueueRequest = new CreateQueueRequest
{
QueueName = queueName
};
Send a Message
public async Task SendMessage(string queueUrl, string messageBody)
{
using var sqsClient = new AmazonSQSClient();
var sendMessageRequest = new SendMessageRequest
{
QueueUrl = queueUrl,
MessageBody = messageBody
};
Receive Messages
public async Task ReceiveMessages(string queueUrl)
{
using var sqsClient = new AmazonSQSClient();
var receiveMessageRequest = new ReceiveMessageRequest
{
QueueUrl = queueUrl,
MaxNumberOfMessages = 10,
WaitTimeSeconds = 5 // Long polling
};
Page | 173
foreach (var message in response.Messages)
{
Console.WriteLine($"Received message: {message.Body}");
// Process the message...
Delete a Message
public async Task DeleteMessage(string queueUrl, string receiptHandle)
{
using var sqsClient = new AmazonSQSClient();
var deleteMessageRequest = new DeleteMessageRequest
{
QueueUrl = queueUrl,
ReceiptHandle = receiptHandle
};
await sqsClient.DeleteMessageAsync(deleteMessageRequest);
Console.WriteLine("Message deleted.");
}
You can call the methods in your Main method or any other part of your
application:
Page | 174
5. Additional Considerations
To create an EC2 placement group and use MPI, you can follow these steps:
You can use MPI to run a multi-node job in AWS PCS with Slurm. Here are some
steps you can take to run an MPI job:
You can also use the NVIDIA Collective Communications Library (NCCL) with
MPI to support machine learning workloads.
Page | 175
How to install Simple notification service on Ubuntu:
2. Install Required Packages: You may need to install Python and pip if
they are not already installed:
4. Add AWS CLI to Your Path: If the CLI is not found, you might need to
add the installation path to your PATH environment variable. You can do
this by adding the following line to your .bashrc or .bash_profile:
export PATH=~/.local/bin:$PATH
source ~/.bashrc
aws --version
Step 2: Configure AWS CLI
aws configure
Page | 176
You will be prompted to enter:
Note the Topic ARN (Amazon Resource Name) returned in the response.
Check the subscribed email or endpoint to verify that the message has
been received.
Page | 177
How to install Hadoop on Eclipse on a Windows system:
1. Download JDK:
o Go to the Oracle JDK download page or OpenJDK.
o Download the appropriate installer for Windows.
2. Install JDK:
o Run the installer and follow the on-screen instructions.
o Make a note of the installation path (e.g., C:\Program
Files\Java\jdk-11).
3. Set Environment Variables:
o Right-click on This PC or My Computer and select Properties.
o Click on Advanced system settings > Environment Variables.
o Under System variables, click New and add:
Variable name: JAVA_HOME
Variable value: Path to your JDK installation (e.g.,
C:\Program Files\Java\jdk-11).
o Find the Path variable in the System variables section, select it,
and click Edit. Add a new entry:
%JAVA_HOME%\bin
java -version
1. Download Hadoop:
o Go to the Apache Hadoop Releases page.
o Download the binary release for Windows (e.g., hadoop-
x.y.z.tar.gz).
2. Extract Hadoop:
o Use a tool like 7-Zip to extract the downloaded file to a directory
(e.g., C:\hadoop).
Page | 178
Step 3: Set Environment Variables for Hadoop
1. Set HADOOP_HOME:
o Open Environment Variables as mentioned earlier.
o Click New under System variables and add:
Variable name: HADOOP_HOME
Variable value: Path to your Hadoop installation (e.g.,
C:\hadoop).
2. Update Path:
o Edit the Path variable again and add:
%HADOOP_HOME%\bin
1. Download Eclipse:
o Go to the Eclipse downloads page.
o Choose the Eclipse IDE for Java Developers and download the
installer.
2. Install Eclipse:
o Run the installer and follow the on-screen instructions to complete
the installation.
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>x.y.z</version> <!-- Use the version you downloaded
-->
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>x.y.z</version>
</dependency>
Page | 180
Cloud-based simulation of a distributed trust algorithm:
Distributed Trust Algorithms aim to evaluate and manage trust among multiple
parties in a decentralized environment. Key concepts include:
Define Objectives:
Choose Algorithms:
Choose a cloud platform (e.g., AWS, Azure, Google Cloud) that provides
the necessary resources (compute, storage, and networking).
Provision Resources:
Page | 181
Set up virtual machines (VMs) or containers to represent nodes in the
distributed system.
Use services like Kubernetes for orchestration if deploying in containers.
Development Environment:
Code the logic for how each node will behave in terms of sending and
receiving messages, updating trust scores, and evaluating peers.
Implement the chosen trust algorithms and ensure that nodes can
communicate and share trust data.
Initialization:
Deploy the simulation code across the cloud instances and initialize the
nodes with random or predefined trust scores.
Simulation Scenarios:
Data Collection:
6. Analyzing Results
Data Analysis:
Page | 182
Assess how effectively trust is established and maintained in various
scenarios.
Evaluation Criteria:
Document Findings:
Present Outcomes:
Share findings with stakeholders or publish them for the academic and
technical community to inform future developments in distributed trust
systems.
Page | 183
Trust models
Key Concepts
1. Data Streaming:
o Continuous flow of data generated from sources like sensors,
applications, or social media.
Page | 184
o Examples include video streaming, financial data feeds, and
telemetry from IoT devices.
2. Adaptivity:
o The capability to dynamically adjust the quality, format, and
delivery of the data stream based on real-time conditions.
o Ensures optimal performance and resource utilization.
1. Streaming Platforms:
o Services like Amazon Kinesis, Google Cloud Dataflow, and
Apache Kafka provide frameworks for ingesting, processing, and
analyzing streaming data.
o They support horizontal scaling, allowing the system to handle
varying loads seamlessly.
2. Auto-Scaling:
o Cloud providers offer auto-scaling features that adjust the number of
resources (like virtual machines or containers) based on incoming
data volume.
o This ensures that the system can handle spikes in data without
degradation in performance.
3. Load Balancing:
o Distributes incoming data streams across multiple servers or
instances to ensure even processing and minimize bottlenecks.
o Enhances reliability and availability.
4. Content Delivery Networks (CDNs):
o Services like Amazon CloudFront or Azure CDN optimize the
delivery of streaming content globally.
o They cache content closer to users, reducing latency and improving
user experience.
5. Adaptive Bitrate Streaming:
o For video and audio streams, adaptive bitrate technology
automatically adjusts the quality of the stream based on the viewer's
network conditions.
o Protocols like MPEG-DASH and HLS (HTTP Live Streaming) are
commonly used.
6. Real-time Analytics:
o Cloud services can integrate with analytics tools (e.g., Google
BigQuery, AWS Lambda) to process streaming data in real-time.
o This allows for immediate insights and decision-making based on
the incoming data.
Page | 185
Use Cases
1. Media Streaming:
o Platforms like Netflix or Spotify use adaptive streaming to deliver
high-quality content based on user bandwidth.
o The cloud infrastructure supports vast user bases with minimal
latency.
2. IoT Applications:
o In IoT scenarios, data from various sensors is streamed to the cloud
for real-time analysis.
o Adaptive processing ensures that critical data is prioritized and
processed efficiently.
3. Financial Services:
o Stock trading platforms rely on adaptive streaming for real-time data
feeds to make quick trading decisions.
o Cloud services enable the rapid processing of large volumes of
financial transactions.
Implementation Steps
Page | 186
Cloud based Optimal FPGA synthesis:
Key Concepts
1. FPGA Synthesis:
o The process of converting high-level hardware description
languages (HDLs) like VHDL or Verilog into a configuration that
can be loaded onto an FPGA.
o Involves several stages, including logic synthesis, technology
mapping, placement, and routing.
2. Cloud Computing:
o The delivery of computing services (including storage, processing
power, and networking) over the internet, allowing for on-demand
resource allocation.
o Provides flexibility, scalability, and cost-effectiveness compared to
traditional on-premises infrastructure.
3. Optimal Synthesis:
o The goal is to produce an efficient FPGA configuration that meets
performance (speed), area (resource usage), and power consumption
requirements.
o Techniques like optimization algorithms, machine learning, and
parallel processing can be applied to achieve optimal results.
1. Scalability:
o Cloud resources can be scaled up or down based on demand,
allowing for handling large designs or multiple synthesis jobs
simultaneously.
2. Cost Efficiency:
o Pay-as-you-go pricing models reduce the need for significant
upfront investment in hardware and maintenance.
3. Resource Availability:
o Access to powerful FPGA design tools and environments that may
not be feasible to run on local machines.
4. Collaboration:
Page | 187
o Teams can work together in a centralized environment, sharing
resources and tools without the need for physical infrastructure.
1. Design Entry:
o Engineers write the design in an HDL, which is then uploaded to the
cloud environment.
2. Environment Setup:
o Choose the appropriate cloud platform (e.g., AWS, Azure) and
FPGA development tools (e.g., Xilinx Vivado, Intel Quartus).
3. Synthesis Process:
o The HDL code undergoes synthesis using cloud-based tools, where
the following steps occur:
o Logic Synthesis: Converts HDL to a netlist, optimizing for area,
speed, and power.
o Technology Mapping: Maps the netlist to the FPGA’s resources.
o Placement and Routing: Determines the physical location of
components on the FPGA and the connections between them.
4. Optimization:
o Use optimization techniques such as:
High-Level Synthesis (HLS): Allows for design at a higher
abstraction level, optimizing performance and resource usage.
Machine Learning: Apply ML algorithms to predict and
enhance synthesis outcomes based on historical data.
Parallel Processing: Leverage multiple cloud instances to
perform different synthesis tasks simultaneously.
5. Testing and Validation:
o Simulate the design to ensure it meets specifications.
o Use cloud resources to run large-scale simulations and verify
functionality.
6. Implementation:
o Once validated, the design is programmed onto the FPGA.
o This can be done via cloud-based programming tools or downloaded
to local systems for programming.
7. Monitoring and Feedback:
o Monitor the FPGA performance once deployed, using cloud
analytics to gather data on resource utilization and performance
metrics.
o Use feedback for further optimizations in future designs.
Page | 188
Tools and Platforms
1. Cloud Providers:
o Major providers like AWS (with services like AWS F1 for FPGAs),
Microsoft Azure, and Google Cloud offer specialized FPGA
resources.
2. FPGA Development Tools:
o Xilinx Vivado and Intel Quartus provide comprehensive
environments for FPGA design and synthesis, which can be
integrated with cloud resources.
3. Collaboration Tools:
o Version control systems like Git can be integrated into the cloud
environment to facilitate team collaboration.
END OF UNIT-IV
Page | 189