0% found this document useful (0 votes)
10 views54 pages

CLOUDUnit 2

The document provides an overview of cloud computing architectural principles, focusing on virtualization, its types, and benefits. It explains how virtualization allows multiple virtual machines to operate on a single physical server, enhancing resource efficiency and management. Additionally, it discusses various virtualization types, including hardware, operating system, server, storage, network, data, and application virtualization, along with their advantages.

Uploaded by

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

CLOUDUnit 2

The document provides an overview of cloud computing architectural principles, focusing on virtualization, its types, and benefits. It explains how virtualization allows multiple virtual machines to operate on a single physical server, enhancing resource efficiency and management. Additionally, it discusses various virtualization types, including hardware, operating system, server, storage, network, data, and application virtualization, along with their advantages.

Uploaded by

gojosataro09876
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Unit-2

Insights about Cloud Computing


Architectural Principals
Topics
❖ Insights about Cloud Computing Architectural Principals
❖ High-performance computing,
❖ Utility and Enterprise grid computing,
❖ Benefits of cloud environments-scalability, affordability, providers, and security.
❖ Limitations Sensitive data Application development Third-party security level,
❖ Issues of regularity: Government policies, Cloud Security,
❖ Hands-On Amazon Services, Amazon Web Services, Amazon EC2.
❖ Virtualization
❖ Implementation Levels of Virtualization, Virtualization structure/tools and mechanisms:
❖ Hypervisor and
❖ Xen Architecture,
❖ Binary Translation with full Virtualization,
❖ Para Virtualization with Compiler Support.
Virtualization

Virtualization is the "creation of a virtual (rather than actual) version


of something, such as a server, a desktop, a storage device, an
operating system or network resources".

In other words, Virtualization is a technique, which allows to share a


single physical instance of a resource or an application among
multiple customers and organizations. It does by assigning a logical
name to a physical storage and providing a pointer to that physical
resource when demanded.

A Virtual machine provides an environment that is logically


separated from the underlying hardware.

The machine on which the virtual machine is going to create is


known as Host Machine and that virtual machine is referred as a
Guest Machine
What is virtualization and benefits of virtualization?
● Virtualization is a process that allows a computer to share its hardware resources with multiple digitally separated environments. Each
virtualized environment runs within its allocated resources, such as memory, processing power, and storage. With virtualization, organizations
can switch between different operating systems on the same server without rebooting.
● Virtual machines and hypervisors are two important concepts in virtualization.
● Virtualization provides several benefits to any organization:
● Efficient resource use
● Virtualization improves hardware resources used in your data center. For example, instead of running one server on one computer system, you
can create a virtual server pool on the same computer system by using and returning servers to the pool as required. Having fewer underlying
physical servers frees up space in your data center and saves money on electricity, generators, and cooling appliances.
● Automated IT management
● Now that physical computers are virtual, you can manage them by using software tools. Administrators create deployment and configuration
programs to define virtual machine templates. You can duplicate your infrastructure repeatedly and consistently and avoid error-prone manual
configurations.
● Faster disaster recovery
● When events such as natural disasters or cyberattacks negatively affect business operations, regaining access to IT infrastructure and replacing or
fixing a physical server can take hours or even days. By contrast, the process takes minutes with virtualized environments. This prompt response
significantly improves resiliency and facilitates business continuity so that operations can continue as scheduled.
How does virtualization work?
● Virtualization uses specialized software, called a hypervisor, to create several cloud instances
or virtual machines on one physical computer.

How is virtualization different from cloud computing?


❖ Cloud computing is the on-demand delivery of computing resources over the internet with pay-as-you-go pricing.
Instead of buying, owning, and maintaining a physical data center, you can access technology services, such as
computing power, storage, and databases, as you need them from a cloud provider.
❖ Virtualization technology makes cloud computing possible. Cloud providers set up and maintain their own data centers.
They create different virtual environments that use the underlying hardware resources. You can then program your
system to access these cloud resources by using APIs. Your infrastructure needs can be met as a fully managed service.
Cloud and Virtualization
• Virtual Workspaces:

– An abstraction of an execution environment that can be made dynamically available to authorized clients by using
well-defined protocols,

– Resource quota (e.g. CPU, memory share),

– Software configuration (e.g. OS).

• Implement on Virtual Machines (VMs):

– Abstraction of a physical host machine,

– Hypervisor intercepts and emulates instructions from VMs, and allows management of VMs,

– VMWare, Xen, KVM etc.

• Provide infrastructure API:

– Plug-ins to hardware/support structures

Credits: NPTEL Week 1 Lecture_1-5 CC_watermark.pdf


Hypervisor
The hypervisor is a firmware or low-level program that acts as a Virtual Machine Manager. The hypervisor is the virtualization
software that you install on your physical machine. It is a software layer that acts as an intermediary between the virtual machines
and the underlying hardware or host operating system. The hypervisor coordinates access to the physical environment so that several
virtual machines have access to their own share of physical resources. For example, if the virtual machine requires computing
resources, such as computer processing power, the request first goes to the hypervisor. The hypervisor then passes the request to the
underlying hardware, which performs the task.
There are two types of hypervisor:

Type 1 hypervisor executes on bare system. The type 1 hypervisor does not have any host operating system because they are installed
on a bare system. A type 1 hypervisor—also called a bare-metal hypervisor—runs directly on the computer hardware. It has some
operating system capabilities and is highly efficient because it interacts directly with the physical resources. LynxSecure, RTS
Hypervisor, Oracle VM, Sun xVM Server, VirtualLogic VLX are examples of Type 1 hypervisor.

Type 2 hypervisor is a software interface that emulates the devices with which a system normally interacts. A type 2 hypervisor runs
as an application on computer hardware with an existing operating system. Use this type of hypervisor when running multiple
operating systems on a single machine.

Containers, KVM, Microsoft Hyper V, VMWare Fusion, Virtual Server 2005 R2, Windows Virtual PC and VMWare workstation 6.0
are examples of Type 2 hypervisor. The following diagram shows the Type 2 hypervisor.
Virtual Machines or cloud instances
● VM technology allows multiple virtual machines to run on a single physical machine.
● After you install virtualization software on your computer, you can create one or more virtual machines. You can
access the virtual machines in the same way that you access other applications on your computer. Your computer is
called the host, and the virtual machine is called the guest. Several guests can run on the host. Each guest has its own
operating system, which can be the same or different from the host operating system.
● From the user’s perspective, the virtual machine operates like a typical server. It has settings, configurations, and
installed applications. Computing resources, such as central processing units (CPUs), Random Access Memory
(RAM), and storage appear the same as on a physical server. You can also configure and update the guest operating
systems and their applications as necessary without affecting the host operating system.
● Performance: Para-virtualization (e.g. Xen) is very close to raw physical performance!

Credits: NPTEL Week 1 Lecture_1-5 CC_watermark.pdf


Advantages of virtual machines:

– Run operating systems where the physical hardware is unavailable,

– Easier to create new machines, backup machines, etc.,

– Software testing using “clean” installs of operating systems and software,

– Emulate more machines than are physically available,

– Timeshare lightly loaded systems on one host,

– Debug problems (suspend and resume the problem machine),

– Easy migration of virtual machines (shutdown needed or not).

– Run legacy systems


Types of Virtualization:

1. Hardware Virtualization.
2. Operating system Virtualization.
3. Server Virtualization.
4. Storage Virtualization.
5. Desktop virtualization
6. Network virtualization
7. Data virtualization
8. Application virtualization
Hardware Virtualization
When the virtual machine software or virtual machine manager (VMM) is directly installed on the hardware system is known
as hardware virtualization.

The main job of hypervisor is to control and monitoring the processor, memory and other hardware resources.

After virtualization of hardware system we can install different operating system on it and run different applications on
those OS.

Usage:

Hardware virtualization is mainly done for the server platforms, because controlling virtual machines is much easier than
controlling a physical server.

Types of Hardware Virtualization


Here are the three types of hardware virtualization:

● Full Virtualization
● Emulation Virtualization
● Paravirtualization
Full Virtualization
In full virtualization, the underlying hardware is completely simulated. Guest software does not require any
modification to run. Full Virtualization was introduced by IBM in 1966. It is the first software solution for server
virtualization and uses binary translation and direct approach techniques. In full virtualization, the virtual machine
completely isolates the guest OS from the virtualization layer and hardware. Microsoft VMware vSphere/ESXi,
Microsoft Hyper-V,Oracle VirtualBox and Parallels systems are examples of full virtualization.
▪ Hypervisor Layer:
Full virtualization relies on a hypervisor, also known as a Virtual Machine Monitor (VMM), which sits
between the physical hardware and guest operating systems. The hypervisor manages and controls the
allocation of physical resources to virtual machines.
▪ Hardware Virtualization:
Full virtualization uses hardware-assisted virtualization technologies like Intel VT-x or AMD-V to enhance
performance. These technologies allow the hypervisor to run guest OSes directly on the physical CPU
without significant performance overhead.
▪ Isolation:
VMs created through full virtualization are completely isolated from each other. Each VM runs its own
instance of the guest operating system, which cannot interfere with other VMs.
Emulation Virtualization
In Emulation, the virtual machine
simulates the hardware and hence
becomes independent of it. In this,
the guest operating system does
not require modification.
Paravirtualization
In Paravirtualization, the hardware is not simulated. The guest software run their own isolated domains.
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.
● Hypervisor Layer:
Similar to full virtualization, paravirtualization also employs a hypervisor, but here,
the guest operating systems are aware of it. The hypervisor provides a set of APIs
that guest OSes must use to communicate with the underlying hardware.
● Guest OS Modifications:
Guest operating systems must be modified to replace certain hardware-related
instructions with hypercalls, which are calls to the hypervisor. These hypercalls
allow the guest OS to request services from the hypervisor, such as memory
management or CPU scheduling.
● Performance Benefits:
Since para virtualization avoids the overhead of emulating complete hardware, it
often offers better performance than full virtualization. Guest OSes can communicate
more directly with the hypervisor, resulting in improved efficiency.
● Examples:
Xen is a widely-used hypervisor that supports para virtualization. It is known for its
performance and scalability in virtualized environments.
Operating System Virtualization:
When the virtual machine software or virtual machine manager (VMM) is installed on the Host operating system instead of directly on the hardware
system is known as operating system virtualization.

● Operating System virtualization is the type where the division of OS happens. That is the core of the Operating System, which

is referred to as the kernel resources that get shared and allow isolated instances of namespaces to exist with dedicated

resources to run different applications. These instances are called containers.


● Different flavors of Operating Systems, which share the kernel resources of the host, can be run on that host machine with
applications running inside them as a container, and this is called an Operating System Virtualization.

Advantages of Operating System Virtualization are –

1. These are quicker than the server virtualization.


2. These are autonomous platforms as they share the host operating system’s storage funds and have their software and libraries
of dependence within them.
3. The migration of this container is very easy.
Server Virtualization
The Server Virtualization is the division of the physical server into multiple virtual servers for efficient utilization of server
resources. Server virtualization is a process that partitions a physical server into multiple virtual servers. It is an efficient and
cost-effective way to use server resources and deploy IT services in an organization. Without server virtualization, physical
servers use only a small amount of their processing capacities, which leave devices idle.

Virtualization of the servers hides or masks server resources such as processor, operating system, memory and presents users as
a private virtual server. This kind of virtualization technique is used in

● Web servers mainly so as to reduce the cost of web hosting services.


● In development and testing environments.
● Simulation of private cloud.
● In hosting applications that have a clustered architecture.
Storage Virtualization

Storage virtualization pools all the storage devices as a single storage device and presents it to the host. So, with this, the storage administrator will
be able to create or design logical storage units in a better way so as to have backup, recovery, archive and application data type of storage by
masking the complexity of the SAN (Storage Area Network).

Storage virtualization combines the functions of physical storage devices such as network attached storage (NAS) and storage area network (SAN).
You can pool the storage hardware in your data center, even if it is from different vendors or of different types. Storage virtualization uses all your
physical data storage and creates a large unit of virtual storage that you can assign and control by using management software. IT administrators
can streamline storage activities, such as archiving, backup, and recovery, because they can combine multiple network storage devices virtually into
a single storage device.

Advantages of Storage Virtualization are –

● One can create shared storage easily.


● Easy to pool the storage resources masking the SAN.
● With virtual storage, the failure of the host doesn’t compromise the data necessarily.
● It is easy to protect partition and use the storage with storage virtualization.
● Duplication, Re-duplication, replication and disaster recovery can be achieved with storage virtualization.
Network virtualization

● Any computer network has hardware elements such as switches, routers, and firewalls. An
organization with offices in multiple geographic locations can have several different network
technologies working together to create its enterprise network. Network virtualization is a process
that combines all of these network resources to centralize administrative tasks. Administrators can
adjust and control these elements virtually without touching the physical components, which
greatly simplifies network management.
● The following are two approaches to network virtualization.
● Software-defined networking
● Software-defined networking (SDN) controls traffic routing by taking over routing management
from data routing in the physical environment. For example, you can program your system to
prioritize your video call traffic over application traffic to ensure consistent call quality in all online
meetings.
● Network function virtualization
● Network function virtualization technology combines the functions of network appliances, such as
firewalls, load balancers, and traffic analyzers that work together, to improve network performance.
● Data virtualization
● Modern organizations collect data from several sources and store it in different formats. They might also
store data in different places, such as in a cloud infrastructure and an on-premises data center. Data
virtualization creates a software layer between this data and the applications that need it. Data
virtualization tools process an application’s data request and return results in a suitable format. Thus,
organizations use data virtualization solutions to increase flexibility for data integration and support cross-
functional data analysis.
● Application virtualization
● Application virtualization pulls out the functions of applications to run on operating systems other than the
operating systems for which they were designed. For example, users can run a Microsoft Windows
application on a Linux machine without changing the machine configuration. To achieve application
virtualization, follow these practices:
● Application streaming – Users stream the application from a remote server, so it runs only on the end user's
device when needed.
● Server-based application virtualization – Users can access the remote application from their browser or
client interface without installing it.
● Local application virtualization – The application code is shipped with its own environment to run on all
operating systems without changes.
Xen Hypervisor
Xen is an open source hypervisor program developed by Cambridge University.
Xen is a micro kernel hypervisor, which separates the policy from the mechanism.
The core components of a Xen system are the hypervisor, kernel, and applications.
The organization of the three components is important. Like other virtualization
systems, many guest OSes can run on top of the hypervisor.
Xen is a hypervisor that runs directly on the system hardware. Xen inserts a
virtualization layer between the system hardware and the virtual machines,
turning the system hardware into a pool of logical computing resources that Xen
can dynamically allocate to any guest operating system. The operating systems
running in virtual machines interact with the virtual resources as if they were
physical resources.

Figure shows a system with Xen running virtual machines.

Xen is running three virtual machines. Each virtual machine is running a guest
operating system and applications independent of other virtual machines while
sharing the same physical resources.
Xen Architecture
● However, not all guest OSes are created equal. The guest OS, which
has control ability, is called Domain 0, and the others are called
Domain U.
● a) Dom0 / Domain0 / privileged domain / xen-server / host
Dom0 is the first domain started by the Xen hypervisor on boot. It has
special privileges like being able to cause new domains to start or
being able to access the hardware directly. It is responsible for
running all of the device drivers for the hardware. For hardware that
is made available to other domains, like network interfaces and disks,
it will run the BackendDriver, which multiplexes and forwards to the
hardware requests from the FrontendDriver in each DomU.
Although any operating system can be ported to run on Xen as a
DomU, only Linux has been given the tools and kernel patches
necessary to run in Dom0.
● b) DomU / DomainU / unprivileged domain / virtual machine /
guest
A DomU is the counterpart to Dom0; it is an unprivileged domain
with (by default) no access to the hardware. It must run a
FrontendDriver for multiplexed hardware it wishes to share with
other domains. A DomU is started by xend in Dom0, which the user
accesses with the xm command-line tool.
● c) hypervisor / virtual machine monitor
The hypervisor is Xen itself. It is between the hardware and the
operating system of the various domains. The hypervisor is
responsible for checking page tables, allocating resources for new
domains, and scheduling domains. It presents the domains with a
virtual machine that looks similar but not identical to the native
architecture. It is also responsible for booting the machine to start the
Dom0.
The Xen architecture’s special Dom0 (domain 0) and several guest domains
for user applications.
● d) virtual machine environment / virtualization environment
The virtual machine environment puts it all together. The Dom0, the
DomU and the hypervisor make up the virtualization environment.
The whole system is able to run multiple operating systems
simultaneously.
KVM Hypervisor

The Kernel-based Virtual Machine (KVM) is a full native virtualization


solution for Linux on x86 hardware containing virtualization extensions
(Intel VT or AMD-V). Limited support for paravirtualization is also
available for Linux and Windows guests in the form of a paravirtual
network driver.

KVM is currently designed to interface with the kernel via a loadable kernel
module. Operating system versions supported include a wide variety of
guest operating systems like Linux, BSD, Solaris, Windows, Haiku,
ReactOS, and AROS Research Operating System.

In the KVM architecture, the virtual machine is implemented as regular


Linux process, scheduled by the standard Linux scheduler. In fact, each
virtual CPU appears as a regular Linux process. This allows KVM to
benefit from all the features of the Linux kernel.
Binary Translation with Full Virtualization
● Depending on implementation technologies, hardware virtualization can be classified into two categories: full virtualization and host-based virtualization.
Full virtualization does not need to modify the host OS. It relies on binary translation to trap and to virtualize the execution of certain sensitive,
nonvirtualizable instructions. The guest OSes and their applications consist of noncritical and critical instructions. In a host-based system, both a host OS
and a guest OS are used. A virtuali-zation software layer is built between the host OS and guest OS. These two classes of VM architec-ture are introduced
next.
● 1. Full Virtualization
● With full virtualization, noncritical instructions run on the hardware directly while critical instructions are discovered and replaced with traps into the
VMM to be emulated by software. Both the hypervisor and VMM approaches are considered full virtualization. Why are only critical instructions trapped
into the VMM? This is because binary translation can incur a large performance overhead. Noncritical instructions do not control hardware or threaten the
security of the system, but critical instructions do. Therefore, running noncritical instructions on hardware not only can promote efficiency, but also can
ensure system security.
● 2. Binary Translation of Guest OS Requests Using a VMM
● This approach was implemented by VMware and many other software companies. As shown in next slide Figure 3.6 VMware puts the VMM at Ring 0 and
the guest OS at Ring 1. The VMM scans the instruction stream and identifies the privileged, control- and behavior-sensitive instructions. When these
instructions are identified, they are trapped into the VMM, which emulates the behavior of these instructions. The method used in this emulation is called
binary translation. Therefore, full virtualization combines binary translation and direct execution. The guest OS is completely decoupled from the
underlying hardware. Consequently, the guest OS is unaware that it is being virtualized.
● The performance of full virtualization may not be ideal, because it involves binary translation which is rather time-consuming. In particular, the full
virtualization of I/O-intensive applications is a really a big challenge. Binary translation employs a code cache to store translated hot instructions to improve
performance, but it increases the cost of memory usage. At the time of this writing, the performance of full virtualization on the x86 architecture is typically
80 percent to 97 percent that of the host machine.

[Link]
Binary Translation with Full Virtualization

Based on this approach, any OS can be virtualized with the help of Binary Translation and direct execution-based
technique. In this approach, the Guest OS is placed on a higher ring and the kernel code is translated by the
hypervisor (virtualization software) to have the effect on the virtual hardware on which it is running.

The hypervisor translates all the OS instructions on the fly:

The hypervisor gives virtual machines all the services provided by the hardware such as virtual BIOS, virtual
memory, and access to virtual devices. The user code that typically runs on Ring 3 is directly executed.

Advantages of Binary Translation –

● This kind of virtualization delivers the best isolation and security for Virtual Machine.
● Truly isolated numerous guest OS can execute concurrently on the same hardware.
● It is only implementation that needs no hardware assist or operating system assist to virtualize
sensitive instruction as well as privileged instruction.

Disadvantages of Binary Translation –

● It is time consuming at run-time.


● It acquires a large performance overhead.
● It employs a code cache to stock the translated most used instructions to enhance the
performance, but it increases memory utilization along with the hardware cost.
● The performance of full virtualization on the x86 architecture is 80 to 95 percent that of the host
machine.
Host-Based Virtualization

An alternative VM architecture is to install a virtualization layer on top of the host OS. This host OS
is still responsible for managing the hardware. The guest OSes are installed and run on top of the
virtualization layer. Dedicated applications may run on the VMs. Certainly, some other applications
can also run with the host OS directly. This host-based architecture has some distinct advantages, as
enumerated next. The user can install this VM architecture without modifying the host OS. The
virtualizing software can rely on the host OS to provide device drivers and other low-level services.
This will simplify the VM design and ease its deployment.

Second, the host-based approach appeals to many host machine configurations. Compared to the
hypervisor/VMM architecture, the performance of the host-based architecture may also be low.
When an application requests hardware access, it involves four layers of mapping which
downgrades performance significantly. When the ISA of a guest OS is different from the ISA of the
underlying hardware, binary translation must be adopted. Although the host-based architecture has
flexibility, the performance is too low to be useful in practice.
Para-Virtualization with Compiler Support
● Para-virtualization needs to modify the guest operating systems. A para-virtualized VM
provides special APIs requiring substantial OS modifications in user applications.
Performance degradation is a critical issue of a virtualized system. No one wants to use a
VM if it is much slower than using a physical machine. The virtualization layer can be
inserted at different positions in a machine soft-ware stack. However, para-virtualization
attempts to reduce the virtualization overhead, and thus improve performance by
modifying only the guest OS kernel.
● Figure 3.7 illustrates the concept of a paravirtualized VM architecture. The guest operating
systems are para-virtualized. They are assisted by an intelligent compiler to replace the
nonvirtualizable OS instructions by hypercalls as illustrated in Figure 3.8. The traditional
x86 processor offers four instruction execution rings: Rings 0, 1, 2, and 3. The lower the ring
number, the higher the privilege of instruction being executed. The OS is responsible for
managing the hardware and the privileged instructions to execute at Ring 0, while user- Although para-virtualization reduces the overhead, it has incurred other
problems. First, its compatibility and portability may be in doubt,
level applications run at Ring 3. The best example of para-virtualization is the KVM to be
because it must support the unmodified OS as well. Second, the cost of
described below.
❖ Para-Virtualization Architecture
maintaining para-virtualized OSes is high, because they may require
deep OS kernel modifications. Finally, the performance advantage of
● When the x86 processor is virtualized, a virtualization layer is inserted between the para-virtualization varies greatly due to workload variations. Compared
hardware and the OS. According to the x86 ring definition, the virtualization layer should with full virtualization, para-virtualization is relatively easy and more
practical. The main problem in full virtualization is its low performance
also be installed at Ring 0. Different instructions at Ring 0 may cause some problems. In
in binary translation. To speed up binary translation is difficult.
Figure 3.8, we show that para-virtualization replaces nonvirtualizable instructions with Therefore, many virtualization products employ the para-virtualization
hypercalls that communicate directly with the hypervisor or VMM. However, when the architecture. The popular Xen, KVM, and VMware ESX are good
guest OS kernel is modified for virtualization, it can no longer run on the hardware directly. examples.
● KVM (Kernel-Based VM)

● This is a Linux para-virtualization system—a part of the Linux version 2.6.20 kernel. Memory management and scheduling activities are
carried out by the existing Linux kernel. The KVM does the rest, which makes it simpler than the hypervisor that controls the entire
machine. KVM is a hardware-assisted para-virtualization tool, which improves performance and supports unmodified guest OSes such as
Windows, Linux, Solaris, and other UNIX variants.
Para-Virtualization with Compiler Support
Unlike the full virtualization architecture which intercepts and emulates privileged and sensitive instructions at runtime,
para-virtualization handles these instructions at compile time. The guest OS kernel is modified to replace the privileged
and sensitive instructions with hypercalls to the hypervisor or VMM. Xen assumes such a para-virtualization
architecture. The guest OS running in a guest domain may run at Ring 1 instead of at Ring 0. This implies that the guest
OS may not be able to execute some privileged and sensitive instructions. The privileged instructions are implemented
by hypercalls to the hypervisor. After replacing the instructions with hypercalls, the modified guest OS emulates the
behavior of the original guest OS. On an UNIX system, a system call involves an interrupt or service routine. The
hypercalls apply a dedicated service routine in Xen.

VMware ESX Server File System.

The service console is responsible for booting the system, initiating the execution of the VMM and resource manager, and
relinquishing control to those layers. It also facilitates the process for system administrators. VMware pioneered the
software market for virtualization. The company has developed virtualization tools for desktop systems and servers as
well as virtual infrastructure for large data centers. ESX is a VMM or a hypervisor for bare-metal x86 symmetric
multiprocessing (SMP) servers. It accesses hardware resources such as I/O directly and has complete resource
management control. An ESX-enabled server consists of four components: a virtualization layer, a resource manager,
hardware interface components, and a service console, as shown in Figure 3.9. To improve performance, the ESX server
employs a para-virtualization architecture in which the VM kernel interacts directly with the hardware without involving
the host OS.

The VMM layer virtualizes the physical hardware resources such as CPU, memory, network and disk controllers, and
human interface devices. Every VM has its own set of virtual hardware resources. The resource manager allocates CPU,
memory disk, and network bandwidth and maps them to the virtual hardware resource set of each VM created.
Hardware interface components are the device drivers and the
IMPLEMENTATION LEVELS OF VIRTUALIZATION IN CLOUD COMPUTING

It is not simple to set up virtualization. Your computer runs on an operating system that gets configured on some
particular hardware. It is not feasible or easy to run a different operating system using the same hardware.

To do this, you will need a hypervisor. Now, what is the role of the hypervisor? It is a bridge between the hardware and the
virtual operating system, which allows smooth [Link] of the Implementation levels of virtualization in Cloud
Computing., there are a total of five levels that are commonly used. Let us now look closely at each of these levels of
virtualization implementation in Cloud Computing.

1) Instruction Set Architecture Level (ISA)

ISA virtualization can work through ISA emulation. This is used to run many legacy codes written for a different hardware
configuration. These codes run on any virtual machine using the ISA. With this, a binary code that originally needed some
additional layers to run is now capable of running on the x86 machines. It can also be tweaked to run on the x64 machine.
With ISA, it is possible to make the virtual machine hardware agnostic.

For the basic emulation, an interpreter is needed, which interprets the source code and then converts it into a hardware
format that can be read. This then allows processing. This is one of the five implementation levels of virtualization in Cloud
Computing.
2) Hardware Abstraction Level (HAL)

True to its name HAL lets the virtualization perform at the level of the hardware. This makes use of a hypervisor which is
used for functioning. The virtual machine is formed at this level, which manages the hardware using the virtualization
process. It allows the virtualization of each of the hardware components, which could be the input-output device, the
memory, the processor, etc.

Multiple users will not be able to use the same hardware and also use multiple virtualization instances at the very same
time. This is mostly used in the cloud-based infrastructure.

3) Operating System Level

At the level of the operating system, the virtualization model is capable of creating a layer that is abstract between the
operating system and the application. This is an isolated container on the operating system and the physical server, which
uses the software and hardware. Each of these then functions in the form of a server.

When there are several users and no one wants to share the hardware, then this is where the virtualization level is used.
Every user will get his virtual environment using a dedicated virtual hardware resource. In this way, there is no question of
any conflict
4) Library Level

The operating system is cumbersome, and this is when the applications use the API from the libraries at a user level. These
APIs are documented well, and this is why the library virtualization level is preferred in these scenarios. API hooks make it
possible as it controls the link of communication from the application to the system.

5) Application Level

The application-level virtualization is used when there is a desire to virtualize only one application and is the last of the
implementation levels of virtualization in Cloud Computing. One does not need to virtualize the entire environment of the
platform.

This is generally used when you run virtual machines that use high-level languages. The application will sit above the
virtualization layer, which in turn sits on the application program.

It lets the high-level language programs compiled to be used at the application level of the virtual machine run seamlessly.
Realtime Salesforce Cloud Computing Services- IaaS, Paas,
SaaS
Insights about Cloud Computing Architecture

● Cloud Architecture refers to the various components in terms of databases, software


capabilities, applications, etc. which is used by companies of all sizes for leveraging
the power of cloud resources to solve all kinds of business problems.
● Even at home, we use cloud technologies for various daily activities. From Microsoft
Office 365, Google Docs, and Spotify, these services are provided to us through cloud
infrastructure.
● The entire cloud architecture is aimed at providing the users with high bandwidth,
allowing users to have uninterrupted access to data and applications, on-demand agile
network with possibility to move quickly and efficiently between servers or even
between clouds and most importantly network security
Principles of Cloud Computing Architecture Design

A complete cloud computing architecture design is also a step-by-step process that begins with collecting
requirements and analysis, designing the architecture based on the requirements analysis, evaluating
improvements and delivering implementation, and then achieving continuous operations.

To proceed with architecture design based on Cloud Computing, all technical solutions should follow certain
principles, which is the target to be hit in architecture design.

There are 6 principles of cloud computing architecture design, including reasonable deployment, business
continuity, elastic expansion, performance efficiency, security compliance, and continuous operation.
Principle 1: Reasonable Deployment
● The deployment of business systems on the public cloud includes the cloud hosts in the form of
virtual machines and physical cloud hosts with higher performance. Hosting services include
hosted applications and hosted physical servers.
● The cloud computing operating system is extracted and packaged as independent software and
services to be deployed in the user's private environment. Unlike public clouds, which are available
to "any" user, private deployments are only available to a select few users.
● Hybrid architecture enables unified management and scheduling of resources for public cloud
and privatized deployed platforms, traditional VMware, OpenStack virtualization platforms or
physical servers.
Principle 2: Business Continuity
Business continuity mainly refers to the 3 aspects of high availability, continuous operations, and
disaster recovery and the design pattern is developed according to this logic.

● High Availability refers to avoiding business interruption by redundancy and other designs when
the resources running the business fail.
● Continuous Operations mean that the resources for business operation are fault-free and the
business can continuously provide services.
● Disaster Recovery refers to the ability to restore applications and data in different environments
when the business operating environment is damaged.
Principle 3: Elastic Expansion

● Tightly coupled systems are not easy to expand, and it is difficult to troubleshoot problems when
software bugs and system failures occur.
● To maintain the elastic expansion of the system, the first step is to decouple the system components,
including the decoupling of dynamic data and static data.

Component decoupling is a prerequisite for achieving expandability and can be done in the following ways.

● Remain stateless and store state data in Redis.


● Put in load balancing, as expansion and scaling had no effect on the overall business.
● Decoupled by message queues or API Gateway. Producers and consumers can be expanded without
affecting each other.
● Achieve global load balancing of business. Back-end business can be expanded in a hybrid
architecture and multi-cloud environment.
Principle 4: Performance Efficiency
● The primary goal in performance efficiency is to discover and enhance the performance of the
application and improve the efficiency of resources and components.
● The first is computing performance. The single-machine performance is improved by using high-
configuration cloud hosts or physical cloud hosts, and the overall service performance is expanded
through clusters.
● The second is storage and caching. Cache hot data and store temporary state data by Redis, and
performing in-memory calculations can improve business performance.
● The third is the optimization of network. Select the optimal data center when the business is
deployed globally, and improve the network performance based on global infrastructure network.
Principle 5: Security Compliance

On the one hand, security compliance is to meet the business security protection of their own
needs, on the other hand, it is to meet the security supervision [Link] the specific
implementation, these two aspects will be crossed together.
● Set up master accounts and sub-accounts in the account system, and manage public keys
and private keys separately; Set appropriate roles and assign the minimum permissions
required to accounts and roles.
● Controlling network access through ACLs; Restrict open ports on cloud hosts through
security groups; Control communication across subnets through subnetting and routing.
Configure the database and the cloud hosts that only need internal access to the intranet
VPCs, set the VPCs that are allowed to access, and set them to not connect to the extranet.
● Prevent DDoS, cc, SQL injection, XSS and other attacks.
● Security audit; Keep access logs and operation logs; Gradually realize low-frequency storage
and archive storage, etc.
Principle 6: Continuous Operation

● Cloud resources, cloud services, events and users' applications will be monitored in continuous
operation, and alarms will be set.
● When alarm conditions are reached, relevant personnel will be notified by phone, SMS, email,
WeChat, etc.
● Alarms will be handed over to callback functions, which can realize automated fault handling or
corresponding contingency plans and reduce manual intervention.
● In addition, it needs to have automatic response and processing functions. Automatic scaling can
automatically expand or shrink the number of cloud hosts by monitoring indicators such as CPU.
● Detect changes in consumption and business costs in a timely manner and optimize costs. Set
alarm values for account balances to avoid rapid spending and achieve cost control.
High-performance computing

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.
HPC solutions have three main components

● Compute
● Network
● Storage

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 to complete a diverse set
of tasks.

For example, the storage component must be able to feed and ingest data to and from the compute servers as
quickly as it is processed. Likewise, the networking components must be able to support the high-speed
transportation of data between compute servers and the data storage. If one component cannot keep up with the
rest, the performance of the entire HPC infrastructure suffers.
HPC cluster
An HPC cluster consists of hundreds or thousands of compute servers that are networked together. Each server is
called a node. The nodes in each cluster work in parallel with each other, boosting processing speed to deliver
high performance computing.
HPC use cases
Deployed on premises, at the edge, or in the cloud, HPC solutions are used for a variety of purposes across multiple industries.
Examples include:

● Research labs: HPC is used to help scientists find sources of renewable energy, understand the evolution of our universe,
predict and track storms, and create new materials.
● Media and entertainment: HPC is used to edit feature films, render mind-blowing special effects, and stream live events
around the world.
● Oil and gas: HPC is used to more accurately identify where to drill for new wells and to help boost production from existing
wells.
● Artificial intelligence and machine learning: HPC is used to detect credit card fraud, provide self-guided technical support,
teach self-driving vehicles, and improve cancer screening techniques.
● Financial services: HPC is used to track real-time stock trends and automate trading.
● HPC is used to design new products, simulate test scenarios, and make sure that parts are kept in stock so that production
lines aren’t held up.
● HPC is used to help develop cures for diseases like diabetes and cancer and to enable faster, more accurate patient diagnosis.
Utility and Enterprise Grid computing

Utility Computing

● Utility computing is the most trending IT service


model. It provides on-demand computing resources
(computation, storage, and programming services via
API) and infrastructure based on the pay per use
method.
● It minimizes the associated costs and maximizes the
efficient use of resources.
● The advantage of utility computing is that it reduced
the IT cost, provides greater flexibility, and easier to
manage.
● Large organizations such as Google and Amazon
established their own utility services for computing
storage and application.
Utility computing examples

Virtually any activity performed in a data center can be replicated in a utility computing offering. Services available include
the following:

● access to file, application and web servers;


● infrastructure as a service, software as a service and platform as a service;
● virtually unlimited processing power and computation storage space;
● support for customer computing applications;
● storage space for data, databases and applications;
● cloud storage and cloud computing;
● utility services, like power, heating, ventilation and air conditioning (HVAC), and communications;
● general IT technical expertise; and
● specialized expertise, such as ransomware response and application development.
Grid Computing
Grid computing is also known as distributed computing. It is a processor architecture that combines
various different computing resources from multiple locations to achieve a common goal. In grid
computing, the grid is connected by parallel nodes to form a computer cluster. These computer clusters
are in different sizes and can run on any operating system.

Grid computing contains the following three types of machines -

1. Control Node: It is a group of server which administers the whole network.


2. Provider: It is a computer which contributes its resources in the network resource pool.
3. User: It is a computer which uses the resources on the network.

Mainly, grid computing is used in the ATMs, back-end infrastructures, and marketing research.
● Grid computing works by running specialized software on every computer that participates in the data grid.
● The software acts as the manager of the entire system and coordinates various tasks across the grid.
● Specifically, the software assigns subtasks to each computer so they can work simultaneously on their respective
subtasks.
● After the completion of subtasks, the outputs are gathered and aggregated to complete a larger-scale task.
● The software lets each computer communicate over the network with the other computers so they can share
information on what portion of the subtasks each computer is running, and how to consolidate and deliver outputs.
Benefits of Cloud Environments

● Accessibility anywhere, with any device


● Ability to get rid of most or all hardware and software
● Centralized data security
● Higher performance and availability
● Quick application deployment
● Instant business insights
● Business continuity
● Price-performance and cost savings
● Virtualized computing
● Cloud computing is greener
[Link]

You might also like