Uploaded by Mathew Sawe


High-performance computing (HPC) is the ability to process data and perform complex
calculations at high speeds. To put it into perspective, a laptop or desktop with a 3 GHz
processor can perform around 3 billion calculations per second. While that is much faster than
any human can achieve, it pales in comparison to HPC solutions that can perform quadrillions of
calculations per second.
One of the best-known types of HPC solutions is the supercomputer. A supercomputer contains
thousands of compute nodes that work together to complete one or more tasks. This is called
parallel processing. It’s similar to having thousands of PCs networked together, combining
compute power to complete tasks faster.
High-performance computing (HPC) is the use of super computers and parallel processing
techniques for solving complex computational problems. The term HPC is occasionally used as a
replacement for supercomputing, although technically a supercomputer is a system that performs
at or near the currently highest operational rate for computers.
A supercomputer is a computer with a high level of performance compared to a generalpurpose computer.
Parallel computing is a type of computing architecture in which several processors execute or
process an application or computation simultaneously. Parallel computing helps in performing
large computations by dividing the workload between more than one processor, all of which
work through the computation at the same time. Most supercomputers employ parallel
computing principles to operate.
Parallel computing is also known as parallel processing.
How Does HPC Work?
HPC solutions have three main components:
To build a high-performance computing architecture, compute servers are networked together
into a cluster. Software programs and algorithms are run simultaneously on the servers in the
cluster. The cluster is networked to the data storage to capture the output. Together, these
components operate seamlessly (without interruption) to complete a diverse set of tasks.
HPC technology is implemented in multidisciplinary areas including:
Geographical data
Oil and gas industry modeling
Electronic design automation
Climate modeling
Media and entertainment
The common term for a high performance computer today is a cluster
Cluster Computing
Cluster computing is nothing but two or more computers that are networked together to provide
solutions as required. However, this idea should not be confused with a more general client-server
model of computing as the idea behind clusters is quite unique.
A computer cluster consists of a set of loosely or tightly connected computers that work
together so that in many respects they can be viewed as a single system
The components of a cluster are usually connected to each other through fast local area networks
(“LAN”) with each node (computer used as a server) running its own instance of an operating
system. Computer clusters emerged as a result of convergence of a number of computing trends
including the availability of low cost microprocessors, high-speed networks, and software for
high performance distributed computing. Compute clusters are usually deployed to improve
performance and availability over that of a single computer, while typically being more costeffective than single computers of comparable speed or availability.
A cluster of computers joins computational powers of the compute nodes to provide a more
combined computational power. Therefore, as in the client-server model, rather than a simple
client making requests of one or more servers, cluster computing utilize multiple machines to
provide a more powerful computing environment perhaps through a single operating system.
In its simplest structure, HPC clusters are intended to utilize parallel computing to apply more
processor force for the arrangement (solution) of a problem.
HPC clusters will typically have a large number of computers (often called ‘nodes’) and, in
general, most of these nodes would be configured identically.
Compute nodes
A compute node is the place where all the computing is performed. Most of the nodes in a cluster
are ordinarily compute nodes. With a specific end goal to give a general arrangement, a compute
node can execute one or more tasks, taking into account the scheduling system.
Cluster Structure
It’s tempting to think of a cluster as just a bunch of interconnected machines, but when you begin
constructing a cluster, you’ll need to give some thought to the internal structure of the cluster.
This will involve deciding what roles the individual machines will play and what the
interconnecting network will look like.
Symmetric Cluster
The simplest approach is a symmetric cluster. With a symmetric cluster each node can function
as an individual computer. This is extremely straightforward to set up. You just create a subnetwork with the individual machines (or simply add the computers to an existing network) and
add any cluster-specific software you'll need. Since all traffic must pass through the head,
asymmetric clusters tend to provide a high level of security. If the remaining nodes are
physically secure and your users are trusted, you'll only need to harden the head node.
Symmetric clusters
There are several disadvantages to a symmetric cluster. Cluster management and security can be
more difficult. Workload distribution can become a problem, making it more difficult to achieve
optimal performance.
There are several disadvantages to a symmetric cluster. Cluster management and security can be
more difficult. Workload distribution can become a problem, making it more difficult to achieve
optimal performance.
A Symmetric Architecture.
The head often acts as a primary server for the remainder of the clusters. The primary
disadvantage of this architecture comes from the performance limitations imposed by the cluster
head. For this reason, a more powerful computer may be used for the head. While beefing up the
head may be adequate for small clusters, its limitations will become apparent as the size of the
cluster grows. An alternative is to incorporate additional servers within the cluster. For example,
one of the nodes might function as an NFS server, a second as a management station that
monitors the health of the clusters, and so on.
Asymmetric clusters
The cluster architecture is classified as;
High Performance Computing
High Availability Computing
The choice of architecture differs by depending on the type of applications and purposes. High
availability (HA) clusters are used in mission critical applications to have constant availability of
services to end-users through multiple instances of one or more applications on many computing
High Performance Computing (HPC) clusters are built to improve throughput in order to handle
multiple jobs of various sizes and types or to increase performance.
The most common HPC clusters are used to shorten turnaround times on compute-intensive
problems by running the job on multiple nodes at the same time or when the problem is just too
big for a single system
The term "cluster" can take different meanings in different contexts. This article focuses on three
types of clusters:
Fail-over clusters
Load-balancing clusters
High-performance clusters
Fail-over clusters
The simplest fail-over cluster has two nodes: one stays active and the other stays on stand-by but
constantly monitors the active one. In case the active node goes down, the stand-by node takes
over, allowing a mission-critical system to continue functioning.
Load-balancing clusters
Load-balancing clusters are commonly used for busy Web sites where several nodes host the
same site, and each new request for a Web page is dynamically routed to a node with a lower
High-performance clusters
These clusters are used to run parallel programs for time-intensive computations and are of
special interest to the scientific community. They commonly run simulations and other CPUintensive programs that would take an inordinate amount of time to run on regular hardware.
Cluster Computing
Cluster computing is nothing but two or more computers that are networked together to provide
solutions as required. However, this idea should not be confused with a more general clientserver model of computing as the idea behind clusters is quite unique.
A cluster of computers joins computational powers of the compute nodes to provide a more
combined computational power. Therefore, as in the client-server model, rather than a simple
client making requests of one or more servers, cluster computing utilize multiple machines to
provide a more powerful computing environment perhaps through a single operating system.
In its simplest structure, HPC clusters are intended to utilize parallel computing to apply more
processor force for the arrangement (solution) of a problem.
Cluster Classifications
The various features of clusters are as follows.
1. High Performance
2. Expandability and Scalability
3. High Throughput
4. High Availability
The components of clusters are the hardware and software used to build clusters and nodes. They
are as follows.
Memory and Cache
Disk and I/O
System Bus
Incorrectly designed infrastructure
Hard to manage cluster
Not having the right monitoring tools
Difficult cluster manageability
Lack of proper monitoring tools:
Common uses of high-performance clusters
Almost every industry needs fast processing power. With the increasing availability of cheaper
and faster computers, more companies are interested in reaping the technological benefits. There
is no upper boundary to the needs of computer processing power; even with the rapid increase in
power, the demand is considerably more than what's available.
Life sciences research
Proteins molecules are long flexible chains that can take on a virtually infinite number of 3D
shapes. In nature, when put in a solvent, they quickly "fold" to their native states. Incorrect
folding is believed to lead to a variety of diseases like Alzheimer's; therefore, the study of protein
folding is of fundamental importance.
One way scientists try to understand protein folding is by simulating it on computers. In nature,
folding occurs quickly (in about one millionth of a second), but it is so complex that its
simulation on a regular computer could take decades. This focus area is a small one in an
industry with many more such areas, but it needs serious computational power.
Other focus areas from this industry include pharmaceutical modeling, virtual surgery training,
condition and diagnosis visualizations, total-record medical databases, and the Human Genome
Oil and gas exploration
Seismograms convey detailed information about the characteristics of the interior of the Earth
and seafloors, and an analysis of the data helps in detecting oil and other resources. Terabytes of
data are needed to reconstruct even small areas; this analysis obviously needs a lot of
computational power. The demand for computational power in this field is so great that
supercomputing resources are often leased for this work.
Other geological efforts require similar computing power, such as designing systems to predict
earthquakes and designing multispectral satellite imaging systems for security work.
Graphics rendering
Manipulating high-resolution interactive graphics in engineering, such as in aircraft engine
design, has always been a challenge in terms of performance and scalability because of the sheer
volume of data involved. Cluster-based techniques have been helpful in this area where the task
to paint the display screen is split among various nodes of the cluster, which use their graphics
hardware to do the rendering for their part of the screen and transmit the pixel information to a
master node that assembles the consolidated image for the screen.
Reasons to Use a Cluster
Clusters or combination of clusters are used when content is critical or when services have to be
available and / or processed as quickly as possible. Internet Service Providers (ISPs) or ecommerce sites often require high availability and load balancing in a scalable manner. The
parallel clusters are heavily involved in the film industry for rendering high quality graphics and
animations, recalling that the Titanic was rendered within this platform in the Digital Domain
laboratories. The Beowulf clusters are used in science, engineering and finance to work on
projects of protein folding, fluid dynamics, neural networks, genetic analysis, statistics,
economics, astrophysics among others. Researchers, organizations and companies are using
clusters because they need to increase their scalability, resource management, availability or
processing to supercomputing at an affordable price level.
Reasons to Use HPC
HPC is primarily used for two reasons. First, thanks to the increased number of central
processing units (CPUs) and nodes, more computational power is available. Greater
computational power enables specific models to be computed faster, since more operations can
be performed per time unit. This is known as the speedup.
Second, in the case of a cluster, the amount of memory available normally increases in a linear
fashion with the inclusion of additional nodes. As such, larger and larger models can be
computed as the number of units grows. This is referred to as the scaled speedup. Applying such
an approach makes it possible to, in some sense, “cheat” the limitations posed by Amdahl’s law,
which considers a fixed-size problem. Doubling the amount of computational power and
memory allows for a task that is twice as large as the base task to be computed within the same
stretch of time.
Virtualization refers to the creation of a virtual resource such as a server, desktop, operating
system, file, storage or network.
The main goal of virtualization is to manage workloads by radically transforming traditional
computing to make it more scalable. Virtualization has been a part of the IT landscape for
decades now, and today it can be applied to a wide range of system layers, including operating
system-level virtualization, hardware-level virtualization and server virtualization.
Virtualization is a large umbrella of technologies and concepts that are meant to provide an abstract
environment — whether virtual hardware or an operating system — to run applications. The term
virtualization is often synonymous with hardware virtualization, which plays a fundamental role in
efficiently delivering Infrastructure-as-a-Service (IaaS) solutions for cloud computing. In fact,
virtualization technologies have along trail in the history of computer science and have been available in
many flavors by providing virtual environments at the operating system level, the programming
language level, and the application level. Moreover, virtualization technologies provide a virtual
environment for not only executing applications but also for storage, memory, and networking.
Since its inception, virtualization has been sporadically explored and adopted, but in the last few years
there has been a consistent and growing trend to leverage this technology. Virtualization technologies
have gained renewed interested recently due to the confluence of several phenomena:
• Increased performance and computing capacity
• Underutilized hardware and software resources
• Lack of space
• Greening initiatives
• Rise of administrative costs
Virtualization is a broad concept that refers to the creation of a virtual version of something, whether
hardware, a software environment, storage, or a network. In a virtualized environment there are three
major components: guest, host, and virtualization layer. The guest represents the system component
that interacts with the virtualization layer rather than with the host, as would normally happen. The host
represents the original environment where the guest is supposed to be managed. The virtualization
layer is responsible for recreating the same or a different environment where the guest will operate.
Such a general abstraction finds different applications and then implementations of the virtualization
technology. Virtualization commonly implemented with hypervisor technology, which is a software or
firmware elements that can virtualizes system resources.
The Use of Computers
Basic techniques used in virtualization
Emulation: It is a virtualization technique which converts the behavior of the computer
hardware to a software program and lies in the operating system layer which lies on the
hardware. Emulation provides enormous flexibility to guest operating system but the speed of
translation process is low compared to hypervisor and requires a high configuration of hardware
resources to run the software.
Virtual Machine Monitor or Hypervisor: A software layer that can monitor and virtualize the
resources of a host machine conferring to the user requirements. It is an intermediate layer
between operating system and hardware. Basically, hypervisor is classified as native and hosted.
The native based hypervisor runs directly on the hardware whereas host based hypervisor runs on
the host operating system. The software layer creates virtual resources such as CPU, memory,
storage and drivers.
Hypervisor Types
Type 1 (bare metal) hypervisors.
Type 1, or bare metal, hypervisors run on the server hardware. They get more control over the
host hardware, thus providing better performance and security. And guest virtual machines run
on top of the hypervisor layer. There are a couple of hypervisors available on the market that
belong to this hypervisor family, for example, Microsoft Hyper-V, VMware vSphere ESXi
Server, and Citrix XenServer.
Type 2 (hosted) hypervisors
These second type of hypervisors run on top of the operating system as an application installed
on the server. And that's why they are often referred to as hosted hypervisors. In type 2
hypervisor environments, the guest virtual machines run on top of the hypervisor layer.
While looking at the type 2 hypervisor architecture, we can see that the hypervisor is installed on
top of the operating system layer, which doesn't allow the hypervisor to directly access the
hardware. This inability to have direct access to the host's hardware increases overhead for the
hypervisor, and thus the resources that you may run on the type 1 hypervisor are more while
those on the type 2 hypervisor are less for the same hardware.
The second major disadvantage of type 2 hypervisors is that this hypervisor runs as a Windows
NT service; so if this service is killed, the virtualization platform will not be available anymore.
The examples of Type 2 hypervisor are Microsoft Virtual Server, Virtual PC, and VMware
Player/VMware Workstation.
Para Virtualization: This technique provides special hypercalls that substitutes the instruction
set architecture of host machine. It relates communication between hypervisor and guest
operating system to improve efficiency and performance. Accessing resources in para
virtualization is better than the full virtualization model since all resources must be emulated in
full virtualization model. The drawback of this technique is to modify the kernel of guest
operating system using hypercalls. This model is only suitable with open source operating
This does not emulate the hardware environment in the software, instead it does organize the
access to hardware resources in aid of the virtual machine. The para-virtualized type of hardware
virtualization offers possible performance benefits when a guest machine operating system is
running in the virtualized environment with modifications done to the guest that is been
Full Virtualization: In this type of virtualization, a complete look-alike of the real hardware is
virtualized to allow the software (consisting of guest operating system) to function without any
modification as shown below.
Full virtualization
Types of virtualization
Virtualization is a broad term, and addresses a wide range of core-computing elements, but here
we will mainly discuss three major types of virtualization, which are as follows:
Server virtualization
Network virtualization
Storage virtualization
Virtualization types
Server Virtualization: In server virtualization, single server performs the task of multiple
servers by portioning out the resources of an individual server across multi-environment. The
hypervisor layer allows for hosting multiple applications and operating systems locally or
remotely. The advantages of virtualization include cost savings, lower capital expenses, high
availability and efficient use of resources.
Virtualization helps organizations to consolidate various IT workloads while running
independently on a single hardware. What this consolidation mainly does is to achieve cost
reduction by getting rid of running dedicated hardware for one application. Other than the cost
factor, server consolidation greatly helps to ensure that existing hardware equipment does not
stay underutilized and it is utilized in a more productive way.
Client / Desktop Virtualization: This client virtualization technology makes the system
administrator to virtually monitor and update the client machines like workstation desktop,
laptop and mobile devices. It improves the client machines management and enhances the
security to defend from hackers and cybercriminals. There are three types of client virtualization.
First, remote or server hosted virtualization which is hosted on a server machine and operated by
the client across a network. Second, local or client hosted virtualization in which the secured and
virtualized operating environment runs on local machine. Third, application virtualization that
provides multiple ways to run an application which is not in traditional manner. In this technique
an isolated virtualized environment or partitioning technique is used to run an application.
Storage Virtualization: It creates the abstraction of logical storage from physical storage. Three
kinds of data storage are used in virtualization, they are DAS (Direct Attached Storage), NAS
(Network Attached Storage) and SAN (Storage Area Network). DAS is the conventional method
of data storage where storage drives are directly attached to server machine. NAS is the shared
storage mechanism which connects through network. The NAS is used for file sharing, device
sharing and backup storing among machines. SAN is a storage device that are shared with
different server over a high accelerate network. Hypervisor is the software package that controls
working access to the physical hardware of host machine. There are two kinds of hypervisor
models as hosted and bare metal / native. Hosted hypervisor instance operates on top of the host
operating system whereas bare metal based hypervisor operates directly on the hardware of host
Benefits of Virtualization
Sharing of resources helps cost reduction
Isolation: Virtual machines are isolated from each other as if they are physically
Encapsulation: Virtual machines encapsulate a complete computing environment
Hardware Independence: Virtual machines run independently of underlying hardware
Portability: Virtual machines can be migrated between different hosts.
Advantages of Virtualization
Security: A security breach on one of the virtual machines does not affect the other VM because
of isolation. This is achieved by the different compact environment that have different or
separate security measures in the different guest machines.
Memory virtualization.
Reliability and Availability: When there’s a software failure in one virtual machine or guest
machine, it doesn’t affect other virtual machines.
• Cost: Virtualization is cost effective by combining small servers to secure a more powerful
server. The cost effectiveness of virtualization runs down to the hardware, operations (man
power), floor space, and software licenses.
The cost reduction created from virtual machine ranges from 29% to 64%.
• Adaptability to Workload Differences: In virtualization when workload changes or varies,
the workload degree can be optimized easily by shifting the resources and priority allocations
between or among virtual machines. Processors can also be moved from one virtual machine to
• Load Balancing: The software state of a VM is relatively condensed by the hypervisor, this
makes it possible for migration of the entire virtual machine to another platform, it improves load
• Legacy Applications: This enables the running of legacy applications on old OD in the guest
machines. For example if an enterprise decides to migrate to a different OS, it is possible to
maintain the old legacy applications on the old VM or guest machine.
Nowadays we are witnessing the emergence of a different technology that enhances business and
personal use, the most important one especially from enterprise company perspective is cloud
computing. Cloud computing is a service model for IT provisioning, often based on virtualization and
distributed computing technologies
Cloud Basic Services
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a
shared pool of configurable computing resources (e.g., networks, servers, storage, applications,
and services) that can be rapidly provisioned and released with minimal management effort or
service provider interaction.
Cloud Types
Most people separate cloud computing into two distinct sets of models:
A. Deployment models: This refers to the location and management of the cloud's
B. Service models: This consists of the particular types of services that you can access on a
cloud computing platform.
A deployment model defines the purpose of the cloud and the nature of how the cloud is located.
The NIST definition for the four deployment models is as follows:
1. Public cloud: The public cloud infrastructure is available for public use alternatively for a
large industry group and is owned by an organization selling cloud services.
2. Private cloud: The private cloud infrastructure is operated for the exclusive use of an
organization. The cloud may be managed by that organization or a third party. Private clouds
may be either on- or off-premises.
3. Hybrid cloud: A hybrid cloud combines multiple clouds (private, community of public)
where those clouds retain their unique identities, but are bound together as a unit. A hybrid cloud
may offer standardized or proprietary access to data and applications, as well as application
4. Community cloud: A community cloud is one where the cloud has been organized to serve a
common function or purpose. It may be for one organization or for several organizations, but
they share common concerns such as their mission, policies, security, regulatory compliance
needs, and so on. A community cloud may be managed by the constituent organization(s) or by a
third party.
In the deployment model, different cloud types are an expression of the manner in which
infrastructure is deployed. You can think of the cloud as the boundary between where a client's
network, management and responsibilities ends and the cloud service provider's begins. As cloud
computing has developed, different vendors offer clouds that have different services associated.
Cloud is discussed in terms of services: three service models are available at different layers;
they are known as:
1. Infrastructure as a Service: IaaS provides virtual machines, virtual storage, virtual
infrastructure and other hardware assets as resources that clients can provision. The IaaS service
provider manages all the infrastructure, while the client is responsible for all other aspects of the
deployment. This can include the operating system, applications, and user interactions with the
2. Platform as a Service: PaaS provides virtual machines, operating systems, applications,
services, development frameworks, transactions, and control structures. The client can deploy its
applications on the cloud infrastructure or use applications that were programmed using
languages and tools that are supported by the PaaS service provider. The service provider
manages the cloud infrastructure, the operating systems, and the enabling software. The client is
responsible for installing and managing the application that it is deploying.
3. Software as a Service: SaaS is a complete operating environment with applications,
management and the user interface. In the SaaS model, the application is provided to the client
through a thin client interface (a browser, usually), and the customer's responsibility begins and
ends with entering and managing its data and user interaction. Everything from the application
down to the infrastructure is the vendor's responsibility. Examples of IaaS service providers
• Amazon Elastic Compute Cloud (EC2)
• Eucalyptus
• GoGrid
• FlexiScale
• Linode
• RackSpace Cloud
• Terremark
Examples of PaaS services are:
• Force.com
• GoGrid CloudCenter
• Google AppEngine
• Windows Azure Platform
Examples of SaaS cloud service providers are:
• GoogleApps
• Oracle On Demand
The five essential characteristics that cloud computing systems must offer:
1. On-demand self-service: A client can provision computer resources without the need for
interaction with cloud service provider personnel.
2. Broad network access: Access to resources in the cloud is available over the network using
standard methods in a manner that provides platform-independent access to clients of all types.
This includes a mixture of heterogeneous operating systems, and thick and thin platforms such as
laptops, mobile phones, and PDA.
3. Resource pooling: A cloud service provider creates resources that are pooled together in a
system that supports multi-tenant usage. Physical and virtual systems are dynamically allocated
or reallocated as needed. Intrinsic in this concept of pooling is the idea of abstraction that hides
the location of resources such as virtual machines, processing, memory, storage, and network
bandwidth and connectivity.
4. Rapid elasticity: Resources can be rapidly and elastically provisioned. The system can add
resources by either scaling up systems (more powerful computers) or scaling out systems (more
computers of the same kind), and scaling may be automatic or manual. From the standpoint of
the client, cloud computing resources should look limitless and can be purchased at any time and
in any quantity.
5. Measured service: The use of cloud system resources is measured, audited, and reported to
the customer based on a metered system. A client can be charged based on a known metric such
as amount of storage used, number of transactions, network I/O (Input/Output) or bandwidth,
amount of processing power used, and so forth. A client is charged based on the level of services
Cloud Computing has numerous advantages. Some of them are listed below 
One can access applications as utilities, over the Internet.
One can manipulate and configure the applications online at any time.
It does not require to install a software to access or manipulate cloud application.
Cloud Computing offers online development and deployment tools, programming untime
environment through PaaS model.
Cloud resources are available over the network in a manner that provide platform
independent access to any type of clients.
Cloud Computing offers on-demand self-service. The resources can be used without
interaction with cloud service provider.
Cloud Computing is highly cost effective because it operates at high efficiency with
optimum utilization. It just requires an Internet connection Cloud Computing offers load
balancing that makes it more reliable.
Why organizations are interested in cloud computing?
Cloud computing can significantly reduce the cost and complexity of owning and operating
computers and networks. If an organization uses a cloud provider, it does not need to spend
money on information technology infrastructure, or buy hardware or software licences. Cloud
services can often be customized and flexible to use, and providers can offer advanced services
that an individual company might not have the money or expertise to develop.
Threats in cloud computing and how they occur
Data breaches
When a virtual machine is able to access the data from another virtual machine on the same
physical host, a data breach occurs – the problem is much more prevalent when the tenants of the
two virtual machines are different customers.
Data loss
The data stored in the cloud could be lost due to the hard drive failure.
Account Hijacking
It’s often the case that only a password is required to access our account in the cloud and
manipulate the data, which is why the usage of two-factor authentication is preferred.
Insecure APIs
Various cloud services on the Internet are exposed by application programming interfaces. Since
the APIs are accessible from anywhere on the Internet, malicious attackers can use them to
compromise the confidentiality and integrity of the enterprise customers.
Denial of Service
An attacker can issue a denial of service attack against the cloud service to render it inaccessible,
therefore disrupting the service. There are a number of ways an attacker can disrupt the service
in a virtualized cloud environment: by using all its CPU, RAM, disk space or network
Malicious Insiders
Employees working at cloud service provider could have complete access to the company
resources. Therefore cloud service providers must have proper security measures in place to
track employee actions like viewing a customer’s data. Since cloud service provides often don’t
follow the best security guidelines and don’t implement a security policy, employees can gather
confidential information from arbitrary customers without being detected.
Abuse of cloud services
One of cloud computing’s greatest benefits is that it allows even small organizations access to
vast amounts of computing power. It would be difficult for most organizations to purchase and
maintain tens of thousands of servers, but renting time on tens of thousands of servers from a
cloud computing provider is much more affordable. However, not everyone wants to use this
power for good. It might take an attacker years to crack an encryption key using his own limited
hardware, but using an array of cloud server she might be able to crack it in minutes.
Cloud computing security
Cloud computing security or, more simply, cloud security refers to a broad set of policies,
technologies, and controls deployed to protect data, applications, and the associated
infrastructure of cloud computing. It is a sub-domain of computer security, network security,
and, more broadly, information security.
Because of the cloud's very nature as a shared resource, control are of particular concern. With
more organizations using associated cloud providers for data operations, proper
vulnerable areas have become a priority for organizations contracting with a cloud computing
Cloud computing security processes should address the incorporate to maintain the customer's
regulations. The processes will also likely include a in the case of a cloud security breach.
The three most important protection goals- confidentiality, integrity, authenticity – are
introduced in the next few sections, and then explained in more detail with reference to selected
cloud computing scenarios.
Pillars of Cloud Computing Security
The confidentiality of a system is guaranteed providing it prevents unauthorized gathering of
information. In data secure systems, the “confidentiality” characteristic requires authorizations
and checks to be defined, to ensure that information cannot be accessed by subjects who do not
have corresponding rights. This comprises both access to stored data authorized by users and
data transferred via a network. It must be possible to assign and withdraw the rights that are
necessary to process this data, and checks must be implemented to enforce compliance.
Cryptographic techniques and access controls based on strong authentication are normally used
to protect confidentiality.
A system guarantees data integrity if it is impossible for subjects to manipulate the protected data
unnoticed or in an unauthorized way. Data, messages, and information are considered to have
integrity if they are trustworthy and cannot be tampered with. A cloud computing system assures
the integrity of the protected data if this information cannot be modified by third parties. If
integrity is specified as a protection goal for cloud services, not only the cloud surface itself that
is accessed by the end user must achieve this goal but also all other components within a cloud
The authenticity of a subject or object is defined as its genuineness and credibility; these can be
verified on the basis of its unique identity and characteristic features. Information is authentic if
it can be reliably assigned to the sender, and if it can be proved that this information has not been
changed since it was created and distributed. A secure technique for identifying the
communication partners and mechanisms for ensuring authenticity are essential here.
Cloud security controls
Cloud security architecture is effective only if the correct defensive implementations are in place.
An efficient cloud security architecture should recognize the issues that will arise with security
management. The security management addresses these issues with security controls. These
controls are put in place to safeguard any weaknesses in the system and reduce the effect of an
attack. While there are many types of controls behind a cloud security architecture, they can
usually be found in one of the following categories.
Deterrent controls
These controls are intended to reduce attacks on a cloud system. Much like a warning
sign on a fence or a property, deterrent controls typically reduce the threat level by
informing potential attackers that there will be adverse consequences for them if they
proceed. (Some consider them a subset of preventive controls.)
Preventive controls
Preventive controls strengthen the system against incidents, generally by reducing if not
actually eliminating vulnerabilities. Strong authentication of cloud users, for instance,
makes it less likely that unauthorized users can access cloud systems, and more likely
that cloud users are positively identified.
Detective controls
Detective controls are intended to detect and react appropriately to any incidents that
occur. In the event of an attack, a detective control will signal the preventative or
corrective controls to address the issue. System and network security monitoring,
including intrusion detection and prevention arrangements, are typically employed to
detect attacks on cloud systems and the supporting communications infrastructure.
Corrective controls
Corrective controls reduce the consequences of an incident, normally by limiting the
damage. They come into effect during or after an incident. Restoring system backups in
order to rebuild a compromised system is an example of a corrective control.