0% found this document useful (0 votes)
53 views23 pages

Unit-3 Cloud Computing (Eee Iv-I)

Uploaded by

vamsitarun4026
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)
53 views23 pages

Unit-3 Cloud Computing (Eee Iv-I)

Uploaded by

vamsitarun4026
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
You are on page 1/ 23

CLOUD COMPUTING WITH AWS EEE (IV-I)

UNIT-III

Virtualization and Abstraction: What is Virtualization and how abstraction is provided in cloud?
Advantages and Disadvantages, Types of Hypervisor, and Load balancing.

Virtualization in Cloud Computing

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.

What is the concept behind the Virtualization?

Creation of a virtual machine over existing operating system and hardware is known as Hardware
Virtualization. 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

Types of Virtualization:

1. Hardware Virtualization.

2. Operating system Virtualization.

3. Server Virtualization.

4. Storage Virtualization.

1) 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.

2) 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.

Usage:

Operating System Virtualization is mainly used for testing the applications on different platforms of
OS.
CLOUD COMPUTING WITH AWS EEE (IV-I)

3) Server Virtualization:

When the virtual machine software or virtual machine manager (VMM) is directly installed on the
Server system is known as server virtualization.

Usage:

Server virtualization is done because a single physical server can be divided into multiple servers on
the demand basis and for balancing the load.

4) Storage Virtualization:

Storage virtualization is the process of grouping the physical storage from multiple network storage
devices so that it looks like a single storage device.

Storage virtualization is also implemented by using software applications.

Usage:

Storage virtualization is mainly done for back-up and recovery purposes.

How does virtualization work in cloud computing?

Virtualization plays a very important role in the cloud computing technology, normally in the cloud
computing, users share the data present in the clouds like application etc, but actually with the help of
virtualization users shares the Infrastructure.

The main usage of Virtualization Technology is to provide the applications with the standard
versions to their cloud users, suppose if the next version of that application is released, then cloud
provider has to provide the latest version to their cloud users and practically it is possible because it is
more expensive.

To overcome this problem we use basically virtualization technology, By using virtualization, all
severs and the software application which are required by other cloud providers are maintained by

the third party people, and the cloud providers has to pay the money on monthly or annual basis.

Conclusion
CLOUD COMPUTING WITH AWS EEE (IV-I)

Mainly Virtualization means, running multiple operating systems on a single machine but sharing all
the hardware resources. And it helps us to provide the pool of IT resources so that we can share these
IT resources in order get benefits in the business.

1. Data Virtualization

Data virtualization is the process of retrieve data from various resources without knowing its type
and physical location where it is stored. It collects heterogeneous data from different resources and
allows data users across the organization to access this data according to their work requirements.
This heterogeneous data can be accessed using any application such as web portals, web services, E-
commerce, Software as a Service (SaaS), and mobile application.

We can use Data Virtualization in the field of data integration, business intelligence, and cloud
computing.

Advantages of Data Virtualization

There are the following advantages of data virtualization -

 It allows users to access the data without worrying about where it resides on the memory.

 It offers better customer satisfaction, retention, and revenue growth.

 It provides various security mechanism that allows users to safely store their personal and
professional information.

 It reduces costs by removing data replication.

 It provides a user-friendly interface to develop customized views.

 It provides various simple and fast deployment resources.

 It increases business user efficiency by providing data in real-time.

 It is used to perform tasks such as data integration, business integration, Service-Oriented


Architecture (SOA) data services, and enterprise search.

Disadvantages of Data Virtualization

 It creates availability issues, because availability is maintained by third-party providers.

 It required a high implementation cost.

 It creates the availability and scalability issues.

 Although it saves time during the implementation phase of virtualization but it consumes more
time to generate the appropriate result.

2. Hardware Virtualization

 Previously, there was "one to one relationship" between physical servers and operating
system. Low capacity of CPU, memory, and networking requirements were available. So, by
using this model, the costs of doing business increased. The physical space, amount of power,
and hardware required meant that costs were adding up.

 The hypervisor manages shared the physical resources of the hardware between the guest
operating systems and host operating system. The physical resources become abstracted
versions in standard formats regardless of the hardware platform. The abstracted hardware is
represented as actual hardware. Then the virtualized operating system looks into these
resources as they are physical entities.
CLOUD COMPUTING WITH AWS EEE (IV-I)

 Virtualization means abstraction. Hardware virtualization is accomplished by abstracting the


physical hardware layer by use of a hypervisor or VMM (Virtual Machine Monitor).

 When the virtual machine software or virtual machine manager (VMM) or hypervisor software
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 of Hardware Virtualization

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

Advantages of Hardware Virtualization

 The main benefits of hardware virtualization are more efficient resource utilization, lower
overall costs as well as increased uptime and IT flexibility.

1) More Efficient Resource Utilization:

Physical resources can be shared among virtual machines. Although the unused resources can
be allocated to a virtual machine and that can be used by other virtual machines if the need
exists.

2) Lower Overall Costs Because Of Server Consolidation:

Now it is possible for multiple operating systems can co-exist on a single hardware platform, so
that the number of servers, rack space, and power consumption drops significantly.

3) Increased Uptime Because Of Advanced Hardware Virtualization Features:

The modern hypervisors provide highly orchestrated operations that maximize the abstraction
of the hardware and help to ensure the maximum uptime. These functions help to migrate a
running virtual machine from one host to another dynamically, as well as maintain a running
copy of virtual machine on another physical host in case the primary host fails.

4) Increased IT Flexibility:

Hardware virtualization helps for quick deployment of server resources in a managed and
consistent ways. That results in IT being able to adapt quickly and provide the business with
resources needed in good time.

3. Software Virtualization

Managing applications and distribution becomes a typical task for IT departments. Installation
mechanism differs from application to application. Some programs require certain helper applications
or frameworks and these applications may have conflict with existing applications.

Software virtualization is just like a virtualization but able to abstract the software installation
procedure and create virtual software installations.

Virtualized software is an application that will be "installed" into its own self-contained unit.
CLOUD COMPUTING WITH AWS EEE (IV-I)

Example of software virtualization is VMware software, virtual box etc. In the next pages, we are going
to see how to install linux OS and windows OS on VMware application.

Storage Virtualization

As we know that, there has been a strong link between the physical host and the locally installed
storage devices. However, that paradigm has been changing drastically, almost local storage is no
longer needed. As the technology progressing, more advanced storage devices are coming to the
market that provide more functionality, and obsolete the local storage.

Storage virtualization is a major component for storage servers, in the form of functional RAID levels
and controllers. Operating systems and applications with device can access the disks directly by
themselves for writing. The controllers configure the local storage in RAID groups and present the
storage to the operating system depending upon the configuration. However, the storage is abstracted
and the controller is determining how to write the data or retrieve the requested data for the
operating system.

Storage virtualization is becoming more and more important in various other forms:

File servers: The operating system writes the data to a remote location with no need to understand
how to write to the physical media.

WAN Accelerators: Instead of sending multiple copies of the same data over the WAN environment,
WAN accelerators will cache the data locally and present the re-requested blocks at LAN speed, while
not impacting the WAN performance.

SAN and NAS: Storage is presented over the Ethernet network of the operating system. NAS presents
the storage as file operations (like NFS). SAN technologies present the storage as block level storage
(like Fibre Channel). SAN technologies receive the operating instructions only when if the storage was
a locally attached device.

Storage Tiering: Utilizing the storage pool concept as a stepping stone, storage tieringanalyze the
most commonly used data and places it on the highest performing storage pool. The lowest one used
data is placed on the weakest performing storage pool.

This operation is done automatically without any interruption of service to the data consumer.

Advantages of Storage Virtualization

1. Data is stored in the more convenient locations away from the specific host. In the case of a host
failure, the data is not compromised necessarily.

2. The storage devices can perform advanced functions like replication, reduplication, and disaster
recovery functionality.

3. By doing abstraction of the storage level, IT operations become more flexible in how storage is
provided, partitioned, and protected.

4. OS Virtualization

With the help of OS virtualization nothing is pre-installed or permanently loaded on the local device
and no-hard disk is needed. Everything runs from the network using a kind of virtual disk. This virtual
disk is actually a disk image file stored on a remote server, SAN (Storage Area Network) or NAS (Non-
volatile Attached Storage). The client will be connected by the network to this virtual disk and will
boot with the Operating System installed on the virtual disk.

How does OS Virtualization works?

Components needed for using OS Virtualization in the infrastructure are given below:
CLOUD COMPUTING WITH AWS EEE (IV-I)

The first component is the OS Virtualization server. This server is the center point in the OS
Virtualization infrastructure. The server manages the streaming of the information on the virtual
disks for the client and also determines which client will be connected to which virtual disk (using a
database, this information is stored). Also the server can host the storage for the virtual disk locally or
the server is connected to the virtual disks via a SAN (Storage Area Network). In high availability
environments there can be more OS Virtualization servers to create no redundancy and load
balancing. The server also ensures that the client will be unique within the infrastructure.

Secondly, there is a client which will contact the server to get connected to the virtual disk and asks
for components stored on the virtual disk for running the operating system.

The available supporting components are database for storing the configuration and settings for the
server, a streaming service for the virtual disk content, a (optional) TFTP service and a (also optional)
PXE boot service for connecting the client to the OS Virtualization servers.

As it is already mentioned that the virtual disk contains an image of a physical disk from the system
that will reflect to the configuration and the settings of those systems which will be using the virtual
disk. When the virtual disk is created then that disk needs to be assigned to the client that will be
using this disk for starting. The connection between the client and the disk is made through the
administrative tool and saved within the database. When a client has a assigned disk, the machine can
be started with the virtual disk using the following process as displayed in the given below Figure:
functioning of os virtualization

1) Connecting to the OS Virtualization server:

First we start the machine and set up the connection with the OS Virtualization server. Most of the
products offer several possible methods to connect with the server. One of the most popular and used
methods is using a PXE service, but also a boot strap is used a lot (because of the disadvantages of the
PXE service). Although each method initializes the network interface card (NIC), receiving a (DHCP-
based) IP address and a connection to the server.

2) Connecting the Virtual Disk:

When the connection is established between the client and the server, the server will look into its
database for checking the client is known or unknown and which virtual disk is assigned to the client.
When more than one virtual disk are connected then a boot menu will be displayed on the client side.
If only one disk is assigned, that disk will be connected to the client which is mentioned in step
number 3.

3) VDisk connected to the client:

After the desired virtual disk is selected by the client, that virtual disk is connected through the OS
Virtualization server . At the back-end, the OS Virtualization server makes sure that the client will be
unique (for example computer name and identifier) within the infrastructure.

4) OS is "streamed" to the client:

As soon the disk is connected the server starts streaming the content of the virtual disk. The software
knows which parts are necessary for starting the operating system smoothly, so that these parts are
streamed first. The information streamed in the system should be stored somewhere (i.e. cached).
Most products offer several ways to cache that information. For examples on the client hard disk or on
the disk of the OS Virtualization server.

5) Additional Streaming:
CLOUD COMPUTING WITH AWS EEE (IV-I)

After that the first part is streamed then the operating system will start to run as expected. Additional
virtual disk data will be streamed when required for running or starting a function called by the user
(for example starting an application available within the virtual disk).

Advantages of Software Virtualization

1) Client Deployments Become Easier:

Copying a file to a workstation or linking a file in a network then we can easily install virtual software.

2) Easy to manage:

To manage updates becomes a simpler task. You need to update at one place and deploy the updated
virtual application to the all clients.

3) Software Migration:

Without software virtualization, moving from one software platform to another platform takes much
time for deploying and impact on end user systems. With the help of virtualized software environment
the migration becomes easier.

Server Virtualization

Server Virtualization is the process of dividing a physical server into several virtual servers,
called virtual private servers. Each virtual private server can run independently.

The concept of Server Virtualization widely used in the IT infrastructure to minimizes the costs by
increasing the utilization of existing resources.

Types of Server Virtualization

1. Hypervisor

In the Server Virtualization, Hypervisor plays an important role. It is a layer between the operating
system (OS) and hardware. There are two types of hypervisors.

o Type 1 hypervisor ( also known as bare metal or native hypervisors)

o Type 2 hypervisor ( also known as hosted or Embedded hypervisors)

The hypervisor is mainly used to perform various tasks such as allocate physical hardware resources
(CPU, RAM, etc.) to several smaller independent virtual machines, called "guest" on the host machine.

2. Full Virtualization

Full Virtualization uses a hypervisor to directly communicate with the CPU and physical server. It
provides the best isolation and security mechanism to the virtual machines.

The biggest disadvantage of using hypervisor in full virtualization is that a hypervisor has its own
processing needs, so it can slow down the application and server performance.

VMWare ESX server is the best example of full virtualization.

3. Para Virtualization

Para Virtualization is quite similar to the Full Virtualization. The advantage of using this virtualization
is that it is easier to use, Enhanced performance, and does not require emulation overhead. Xen
primarily and UML use the Para Virtualization.
CLOUD COMPUTING WITH AWS EEE (IV-I)

The difference between full and pare virtualization is that, in para virtualization hypervisor does not
need too much processing power to manage the OS.

4. Operating System Virtualization

Operating system virtualization is also called as system-lever virtualization. It is a server


virtualization technology that divides one operating system into multiple isolated user-space
called virtual environments. The biggest advantage of using server visualization is that it reduces the
use of physical space, so it will save money.

Linux OS Virtualization and Windows OS Virtualization are the types of Operating System
virtualization.

FreeVPS, OpenVZ, and Linux Vserver are some examples of System-Level Virtualization.

Note: OS-Level Virtualization never uses a hypervisor.

5. Hardware Assisted Virtualization

Hardware Assisted Virtualization was presented by AMD and Intel. It is also known as Hardware
virtualization, AMD virtualization, and Intel virtualization. It is designed to increase the
performance of the processor. The advantage of using Hardware Assisted Virtualization is that it
requires less hypervisor overhead.

6. Kernel-Level Virtualization

Kernel-level virtualization is one of the most important types of server virtualization. It is an open-
source virtualization which uses the Linux kernel as a hypervisor. The advantage of using kernel
virtualization is that it does not require any special administrative software and has very less
overhead.

User Mode Linux (UML) and Kernel-based virtual machine are some examples of kernel
virtualization.

Advantages of Server Virtualization

There are the following advantages of Server Virtualization -

1. Independent Restart

In Server Virtualization, each server can be restart independently and does not affect the working of
other virtual servers.

2. Low Cost

Server Virtualization can divide a single server into multiple virtual private servers, so it reduces the
cost of hardware components.

3. Disaster Recovery<

Disaster Recovery is one of the best advantages of Server Virtualization. In Server Virtualization, data
can easily and quickly move from one server to another and these data can be stored and retrieved
from anywhere.

4. Faster deployment of resources

Server virtualization allows us to deploy our resources in a simpler and faster way.

5. Security
CLOUD COMPUTING WITH AWS EEE (IV-I)

It allows uses to store their sensitive data inside the data centers.

Disadvantages of Server Virtualization

There are the following disadvantages of Server Virtualization -

1. The biggest disadvantage of server virtualization is that when the server goes offline, all the
websites that are hosted by the server will also go down.

2. There is no way to measure the performance of virtualized environments.

3. It requires a huge amount of RAM consumption.

4. It is difficult to set up and maintain.

5. Some core applications and databases are not supported virtualization.

6. It requires extra hardware resources.

Uses of Server Virtualization

A list of uses of server virtualization is given below -

o Server Virtualization is used in the testing and development environment.

o It improves the availability of servers.

o It allows organizations to make efficient use of resources.

o It reduces redundancy without purchasing additional hardware components.

What is virtualization and abstraction in cloud computing?

Abstraction makes it possible to encapsulate the physical implementation so that the technical details
may be concealed from the customers. Virtualization makes it possible to create a virtual
representation of anything, which may include computer resources, a virtual computer hardware
platform, or storage devices.

Abstracting

Abstracting is the process of reducing something to its most basic form. It is the hiding away of the
inessential.

For a drawing, this could be reducing it to its basic lines and shapes. Naturally, there are many levels
of an abstraction, since what is inessential is subjective.

This is illustrated in the image below showing a Greek temple and two drawings at different levels of
abstraction.
CLOUD COMPUTING WITH AWS EEE (IV-I)

Example of abstraction

As you abstract away more of the details of the temple, you are left with something very simple. In its
most basic form, a Greek temple can be thought of as a triangle sitting on top of a rectangle with
vertical lines going across the rectangle.

Abstractions are everywhere around us. Google Maps is a good example of this. You can have a
satellite, roadmap, terrain, traffic,
ffic, cycling, public transport or street view, among others. Each of these
options abstracts away some details, allowing you to focus on what you want to see.

Even a satellite map is an abstraction, since it is a point in time snapshot and cannot capture every
new house, tree, or blade of grass.

The key point is that an abstraction simplifies something by hiding away the underlying details. It is
a way of managing complexity.

But there is always a price to be paid. In exchange for hiding away complexity, y
you lose some lower
level details which often means a loss of control if things go wrong.

Abstractions in the Cloud

In cloud computing, abstractions are everywhere. When you choose a particular technology to solve a
problem, you are implicitly choosing a level of abstraction.

There are four broad levels of abstraction in cloud computing. These are called the service models:

 IaaS (Infrastructure as a Service)

 PaaS (Platform as a Service)

 FaaS (Function as a Service)

 SaaS (Software as a Service).


CLOUD COMPUTING WITH AWS EEE (IV-I)

These four broad service models are just a guide for splitting out the different levels of abstraction in
cloud computing. You can think of them more like well thought-out opinions, rather than some hard
rule of physics.

Some people only consider IaaS, PaaS and SaaS as the service models, ignoring FaaS. Others will
include Container as a Service, Security as a Service, Database as a Service, and so on.

The examples can go on and on by simply appending “as a service” to different technologies. This
makes sense since you can abstract at different levels, which makes any abstraction of the cloud a
spectrum of possibilities.

Just like the Greek temple shown above, there can be many intermediary levels of abstraction between
a life-like drawing of the temple and a drawing with a triangle sitting on top of a rectangle.

When you choose to use cloud computing instead of an on-premise solution, you are effectively
choosing to abstract away some of the underlying tasks and pieces of infrastructure that you would
otherwise need to manage.

The figure below shows the differences between an on-premise solution and IaaS, PaaS, FaaS, and
SaaS.

Figure illustrating the differences between an on-premise solution vs IaaS, PaaS, FaaS, and SaaS.

As you move to the right in the above illustration, you abstract away more of the underlying
infrastructure stack. This reduces the complexity of what you are trying to build, since there are fewer
things to build and manage.

But the price you pay for this reduction in complexity is a loss of control. Sometimes, that is a worthy
price to pay, and sometimes it is not.

On-Premise Solutions
CLOUD COMPUTING WITH AWS EEE (IV-I)

You are responsible for managing everything in the infrastructure stack, from the physical security of
the data centre to the application itself.

In this case, almost nothing is abstracted away. This gives you increased control and flexibility to
customise what you want. In exchange for that, you pay the price of managing the entire stack and
bearing the risks associated with that.

This is analogous to opening a pizza rrestaurant,


estaurant, but instead of just renting some space, you build the
restaurant from scratch.

Building a pizza restaurant from the ground up is like managing on


on-premise
premise solutions

The upside is you have full control over how the restaurant will look. The downside is the large
upfront expenditure you will need to make for plumbing, ventilation, electrical wiring, air
conditioning, heating, and so on.

You will also be plagued with questions like “Is the restaurant big enough, or is it too big?” or “How do
I expand or scale down based on growing or falling demand?”. Large upfront costs and higher levels of
uncertainty are the price you pay for full control.

IaaS (Infrastructure as a Service)


The physical security, data centre infrastructure, networking, server
serverss and virtualisation (the process
of creating multiple virtual machines out of a physical server) is abstracted away and managed by the
cloud provider.
You are responsible for managing the operating system and everything above it in the infrastructure
stack. You still get to customise what virtual machine you want, based on the choices made available
by the cloud provider, and you will pay to use the virtual machine on a pay
pay-as-you--go basis.

You don’t have to worry about purchasing more servers or cooli


cooling
ng requirements for your servers. All
of that is abstracted away and managed for you.
CLOUD COMPUTING WITH AWS EEE (IV-I)

Virtual machines/instances are a good example of IaaS – EC2 from AWS, Compute Engine from GCP,
and VMs from Azure.

IaaS is analogous to simply renting some space for your pizza restaurant. The electrical wiring,
plumbing, heating, and so on is abstracted away since it is managed by the owner of the building.

You are responsible for paying rent to use the space, hiring chefs, a manager, waiters and cleaners,
buying equipment and furniture, choosing decor, building a menu, marketing and getting customers
through the door.

Still a lot of work, but all of the non-pizza making activities are hidden away, allowing you to focus on
doing what you do best – making pizza.

PaaS (Platform as a Service)

Here, you manage the runtime and everything above it. The runtime is a software environment that
provides the necessary resources and services for an application to run. Examples include the Java
Virtual machine for Java applications, Python runtime for Python applications, and Node.js for
JavaScript applications.

With PaaS, you have abstracted away all of the physical infrastructure. All you need to worry about is
your runtime.

Good examples of PaaS are AWS Beanstalk and GCP App Engine. Also, managed database services like
AWS RDS and GCP Cloud SQL fall under PaaS.

PaaS is analogous to opening a franchise pizza restaurant. When you open a franchise, you are
provided with a pre-built restaurant space, equipment, branding, and a set of processes to follow. You
are responsible for the core activities of running the restaurant such as hiring staff, managing
inventory, and creating menus.

PaaS works in a similar way, providing developers with a pre-built platform that abstracts away the
underlying infrastructure, allowing them to focus on building and deploying applications.

FaaS (Function as a Service)

Here, you manage the functions and the application while the cloud provider manages the rest.

What exactly is a function and how is it different from a runtime? A function is a block of code that
performs a specific task, while a runtime is the environment in which that code is executed.

Functions are typically triggered by events such as HTTP requests, database updates, or messages
from a queue. When an event occurs, the function is automatically executed, and the result is returned
to the calling application.

This is analogous to hiring a freelance pizza chef to cook for you on-demand. When you hire this
freelance chef, though, you only pay for the time they spend cooking. The chef starts getting paid in
reaction to an event, that is the moment an order comes in, and stops getting paid once the pizza is
ready. The rest of the time, the chef is just idle, waiting for the next order but not costing you any
money.

Ignoring the corporate sleaze and potential illegality of such a practise, doing something like this will
save you money since you are only paying for the duration of a pizza being made.

SaaS (Software as a Service)

Here, you don’t manage anything, but simply consume the service offered. Prime Video, Gmail, and
Outlook are great examples of SaaS. When you use these, you don’t care about how the application
CLOUD COMPUTING WITH AWS EEE (IV-I)

works. All of that is abstracted away. You simply access the software through a web browser or a
mobile app and use as needed.

Drawing on the restaurant analogy, this can be compared to simply ordering a pizza from the
restaurant. The restaurant abstracts all the the steps needed to make the pizza.

Examples of IaaS, PaaS, FaaS& SaaS

The table below shows examples of IaaS, PaaS, FaaS and SaaS offerings from the main cloud providers
– AWS, GCP & Azure.

Bringing it Together with an Example

If you are building a e-commerce site like Amazon.com, you will need a transactional database to store
details about customers like their names, payment details, address, orders, inventories, and so on.
How do you choose the right level of abstraction for your database?

You have four options to choose for you database. Starting from the option that abstracts the most
from the infrastructure stack:

1. You could choose the use a FaaS option like AWS Aurora Serverless. This automatically starts
up the database when it is being used and shuts it down when not in use, allowing you to save
money by only paying for when it's in use. This is ideal for an infrequently used database with
unpredictable workloads

2. You could choose a PaaS option like AWS RDS. This is a managed database where AWS
abstracts away and manages administrative tasks like OS patching, scaling, database backups
and other admin tasks that would otherwise require a database admin (DBA) to manage

3. You could choose an IaaS option by installing a relational database management system
(RDBMS) like MySQL on an EC2 instance. AWS will manage the hardware, but you will be
responsible for managing the OS and the database application. So, admin tasks like OS patching,
scaling, database backups, among others, will be your responsibility
CLOUD COMPUTING WITH AWS EEE (IV-I)

4. You can choose an on premise solution. Here, you will self-host the database and manage the
hardware yourself, in addition to all the database admin tasks as described above

Which is the right option to choose? First, it depends on your use case and the benefits and tradeoffs
you are comfortable with. This is trite but nevertheless true.

However, a good heuristic that will work most of the time for most problems is to focus on what to
avoid. You generally want to avoid an extreme or outlier solution, unless the problem you are trying to
solve is indeed extreme or an outlier. And most problems, by definition, cannot be outliers.

The FaaS option using Aurora, and the on premise solution are not ideal, unless your use case
specifically demands the features that these options posses.

Aurora serverless is not a very popular service, so finding patterns for integration with other
technologies or help with troubleshooting technical problems may be more difficult. Also, there can be
some technical issues with using a serverless database like Aurora.

For example, waking it up from an idle state in response to a request can sometimes take a few
seconds. And this can be a delay long enough to lose a customer on your e-commerce application.

The on premise solution is not ideal either, because an e-commerce application will have fluctuations
in demand as a result of holidays, discounts or some product going viral. On premise solutions are bad
at handling large fluctuations in demand.

This simple heuristic of focusing on what to avoid yields two acceptable solutions – the IaaS option of
running your database on an EC2 instance or the PaaS option of using a managed database service like
RDS. Either of these is fine for the use case described.

The key point to remember is that an abstraction simplifies something by hiding away the
underlying details. It is a way of managing complexity.

The higher abstraction solution of using RDS is the less complex solution, since AWS manages all of
the underlying complexities of OS patching, scaling, database backups and other admin tasks. The
price you pay for this reduction in complexity is less control of the database and a higher AWS bill.

I hope this helps you choose the solution that's right for you. Thank you for reading!

The meaning of the word "abstraction" varies subtly depending on the surrounding words and
phrases that are used in conjunction with it. In a general sense, an abstraction offers a picture of an
item that has fewer specifics and reveals the features that are inherent to the thing from the
perspective of the observer.

Let's pretend that we have a MariaDB database in addition to a PostgreSQL database. An abstract look
at it could reveal that it has a number of characteristics in common with other systems, such as a
tabular representation of the data and a network-facing interface that its database clients can use to
communicate with the database, among other things.

Virtualization, on the other hand, provides an abstract environment in which programs may be
executed.

Read through this article to find out how Abstraction differs from Virtualization.

What is Abstraction?

The process of hiding the internal workings of a programme from users of the application and the
outside world is known as "abstraction." A level of abstraction is used to simplify the description of
things. It acts as a barrier between the application and any client applications that may be running.
CLOUD COMPUTING WITH AWS EEE (IV-I)

Data abstraction and process/control abstraction are the two categories that fall under the umbrella
term "abstraction." An abstraction of the data hides the intricacies of the data, while a control or
process hides the implementation details. Both data and functions are capable of being abstracted
using an object-oriented methodology.

On the other hand, Object-Oriented Programming (OOP) often involves the creation of classes so that
data may be hidden from the outside world while functions act as the public interface. That is,
functions that are not part of the class have direct access to the class's functions, while the functions
that make up the class have indirect access to the hidden data of the class.

The concept of abstraction is essential to both the field of computer science and the process of
developing a software. The process of abstraction, which is also known as modelling, has significant
ties to the concepts of theory and design. Because models generalise aspects of reality, they may also
be thought of as abstractions.

What is Virtualization?

Virtualization is the process of constructing an abstraction layer on top of computer hardware using
software. This layer enables the physical elements of a single computer, such as its processors,
memory, storage, and other components, to be partitioned into multiple virtual computers, also
known as virtual machines (VMs). Each virtual machine (VM) has its own operating system (OS) and
works on its own, even though it only uses a small part of the real computer hardware underneath.

Cloud computing is built on virtualization because it makes it possible to utilise real computer
hardware in a manner that is more effective. It makes it possible for a company to increase the return
it gets on the investment it makes in its hardware.

Standard practise in the IT architecture of enterprises is currently regarded as standard practise.


Technology is also the primary driver of cloud computing's economics. As their workloads grow, cloud
customers can buy only the computing resources they need, while cloud service providers can serve
customers with the computers they already have.

Comparison between Abstraction and Virtualization

The following table highlights the major differences between Abstraction and Virtualization −

Parameters of Abstraction Virtualization


comparison

It is the act of expressing vital It is a collection of different


characteristics while obscuring technologies and ideas that have
the background information been brought together with the goal
Description
from consumers and of providing an abstract
developers respectively. environment in which program may
be executed.

The partitioning of interface Software is used to construct a


and implementation is virtual computer system via the
Dependence essential to the practice of process of virtualization, which
abstraction. simulates the capability of
hardware.

Types Data abstraction and process Types of virtualization include:


CLOUD COMPUTING WITH AWS EEE (IV-I)

Parameters of Abstraction Virtualization


comparison

abstraction are the two Storage virtualization, Network


subcategories that fall under virtualization, data virtualization,
the umbrella term application virtualization , desktop
"abstraction." virtualization and server
virtualization.

It makes it possible for Virtual machines allow for the


modifications to be made in the division or molding of computer
backend without having an resources by concurrently running
Importance
impact on the functions of the several environments. These
apps that are located in the environments are referred to as
abstraction layer. "virtual machines."

Conclusion

Abstraction makes it possible to encapsulate the physical implementation so that the technical details
may be concealed from the customers. Virtualization makes it possible to create a virtual
representation of anything, which may include computer resources, a virtual computer hardware
platform, or storage devices.

When dealing with chaos and complexity, think about your choices regarding virtualization and
abstraction, but make sure you are aware of the benefits and drawbacks of each.

Abstraction vs. Virtualization

It is the ability of creating or grouping a resource pool that is what differentiates cloud
computing from other types of networked systems. But not all cloud computing applications create
resource pools that can be assigned to users on demand, but a significant number of cloud-based
systems do. When using cloud computing, we are accessing pooled resources using a technique called
virtualization, which allows creating a virtual version of computer resources with a goal of
centralizing administrative tasks. Virtualization has become an indispensable tool for almost every
cloud; it has become an important technique for establishing modern cloud computing services.

However, it is very likely to be confused with yet another overly used concept called
abstraction. Virtualization is similar to abstraction but it does not always hide the low layer’s details.
The concept of virtual machines is not new; in fact, virtual machines existed since the 1960s when
IBM developed the first virtual machine to provide interactive access to a mainframe computer.
Abstraction enables the key benefit of cloud computing, which is shared, ubiquitous access.
Abstraction is the act of representing essential features while hiding the background details from
users and developers. It is used to reduce cost and complexity, which in turn, simplifies operations.
CLOUD COMPUTING WITH AWS EEE (IV-I)

What is Virtualization?

Virtualization is a technology that allows creating a virtual version (rather than actual) of something,
including computer resources, virtual computer hardware platform, operating system, and storage
devices. It allows computer resources to be divided or shared by multiple environments
simultaneously with the intention of centralizing administrative tasks while improving scalability and
workloads. These environments are commonly known as virtual machines (VMs). Virtualization is not
a new concept; in fact, the concept of virtual machines existed since the 1960s after IBM develop the
first virtual machine to provide access to a mainframe computer. With virtualization, organizations
take advantage of the agility of software-based compute and storage resources. The idea is to relieve
the user from the burden of resource purchases and installations. Simply put, virtualization allows
multiple virtual machines to run on a single physical machine.

What is Abstraction?

Abstraction is the act of representing essential features while hiding the background details from
users and developers. Virtualization is similar to abstraction but it does not always hide the low
layer’s details. The term abstraction is used in the computing industry at several levels. Abstraction is
about hiding the background details from the users and developers, and involves constructing
interfaces to simplify the use of the underlying resource, which also simplifies operations.
Applications run on physical systems that aren’t specified, data is stored in locations that are
unknown, administration of systems is outsourced to others, and access by users is ubiquitous.
Abstraction is one of the core features of cloud computing which allows abstraction of the physical
implementation to hide technical details from consumers. This functionality is supported
by virtualization technology.

Difference between Abstraction and Virtualization


CLOUD COMPUTING WITH AWS EEE (IV-I)

Definition

– Virtualization is one of the fundamental components of cloud computing that allows creating a
virtual version (rather than actual) of something, including computer resources, virtual computer
hardware platform, operating system, and storage devices. It is an umbrella of technologies and
concepts that are intended to provide an abstract environment to run applications. Abstraction, on the
other hand, is one of the core features of cloud computing that allows abstraction of the physical
implementation to hide technical details from consumers. It is the act of representing essential
features while hiding the background details from users and developers.

Concept

– Virtualization allows computer resources to be divided or shared by multiple environments


simultaneously with the intention of centralizing administrative tasks while improving scalability and
workloads. These environments are commonly known as virtual machines (VMs). Cloud computing
virtualizes systems by pooling and sharing resources. Cloud computing uses abstraction to enable the
rapid deployment of data and applications to minimize the complexity and cost of providing the
underlying resource, which eventually simplifies operations. Virtualization is similar to abstraction
but it does not always hide the low layer’s details.

Characteristics

– 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. It enables the scalability and flexibility of cloud computing by hiding the deployment
details from the consumers. Abstraction involves representing essential features while hiding the
background details or explanations in order to specify a workload in a way that is optimal to the end
user. It will allow changes to be occurred in the backend without affecting functionalities of the
applications in the abstraction layer. This way a single machine will work independently acting like
multiple machines.

Abstraction vs. Virtualization: Comparison Chart


CLOUD COMPUTING WITH AWS EEE (IV-I)

Summary

 Virtualization is a technology that allows computer resources to be divided or shared by


multiple environments simultaneously with the intention of centralizing administrative tasks
while improving scalability and workloads. It allows multiple virtual machines to run on a
single physical machine. Virtualization is similar to abstraction but it does not always hide the
low layer’s details. Abstraction is one of the core features of cloud computing which allows
abstraction of the physical implementation to hide technical details from consumers. This
functionality is supported by virtualizVirtualization: Virtualization is the process of creating a
virtual version of something, such as a virtual machine that emulates a physical computer.

 Virtual machine (VM): A VM is a software emulation of a physical computer that can run its
own operating system and applications.

 Hypervisor: Also known as a virtual machine monitor (VMM), a hypervisor is a software layer
that allows multiple VMs to run on a physical host. It abstracts the underlying hardware and
allocates resources to VMs.

 Abstraction: Virtualization allows for the creation of an abstraction layer between the
hardware and software layers. This enables multiple operating systems to run on a single
physical machine.

 Host machine: The host machine is the physical computer that runs the hypervisor and hosts
the VMs.

 Guest machine: A guest machine is a VM running on a host machine.

 Virtual desktop infrastructure (VDI): VDI is a desktop virtualization technology that allows
multiple users to access a shared desktop environment from different devices.
CLOUD COMPUTING WITH AWS EEE (IV-I)

 Virtual network: A virtual network is a software-defined network that connects virtual


machines together and to the physical network.

 Containerization: Containerization is a lightweight form of virtualization that allows multiple


isolated environments to run on a single host machine, sharing the same operating system.

 Snapshot: A snapshot is a saved state or backup of a VM that can be used to restore the VM to a
previous state.

Virtualization and Cloud Computing

So how does virtualization fit in with cloud computing? Essentially, virtualization makes cloud
computing possible. While some are nervous about sending their data to the mysterious “cloud,”
wondering where in the ether our private information has been beamed to, many of us now
understand that our data resides on a physical server somewhere. Accessing our data from a handheld
device or a laptop computer requires some element of virtualization.

There are three main services models used by providers of cloud services:

 Infrastructure as a Service (IaaS): Host servers (physical machines) owned and run by a
third party; computing and storage services rented out by other companies (for example,
Netflix uses Amazon Cloud Services for IaaS); must be managed by the user.

 Platform as a Service (PaaS): A cloud services company provides a platform for other
companies to create and deploy their own applications. The cloud services provider manages
infrastructure, the user only manages the applications installed on the machines.Software as a
Service (SaaS): Infrastructure and applications managed by the provider; the user is “renting”
the use of an application.In all three models, virtualization is used to make the required
resources available to the customer without having to actually own the resources. These resources are
delivered over the internet, allowing users to scale their computing capacity and capabilities up or
down on demand. In other words, people only have to pay for the resources they actually need. Gone
are the days when individual users or businesses had to maintain expensive hardware that they
maybe used a fraction of the computing power on. Leveraging virtualization in cloud computing
allows us to get the most out of our technology budget, and qualified cloud professionals are the ones
who can help achieve budget goals.Also Read: Azure Active Directory: The Key to Managing and
Securing Your Azure Cloud EnvironmentTypes of Virtualization in Cloud
ComputingVirtualization in cloud computing is achieved by combining multiple layers of
virtualization. These layers include hardware/physical, network, storage, desktop, and application
virtualization. The use of these layers is dependent on the model of cloud computing required for
business:

1. Server virtualization allows multiple virtual servers to run on a single physical server,
allowing greater utilization of resources and flexibility in managing workloads.

2. Network virtualization enables the creation of virtual networks that operate on top of
physical network infrastructure, allowing for better management and allocation of network
resources.

3. Storage virtualization allows multiple physical storage devices to be presented as a single


logical storage device, simplifying management and increasing flexibility.

4. Desktop virtualization enables the creation of virtual desktops that can be accessed from any
device, allowing for more flexible remote work arrangements and simplifying desktop
management.

5. Application virtualization allows applications to be encapsulated in a virtual environment,


reducing conflicts and simplifying management.
CLOUD COMPUTING WITH AWS EEE (IV-I)

Features of Virtualization

There is a multitude of features specific to a virtualized environment that allow you to take full
advantage of its capabilities. Some of these include:

 Partitioning: Virtualization allows for the partitioning of a physical server or storage device
into multiple virtual machines or virtual storage units. Each virtual machine or storage unit
appears as a separate and independent entity.

 Isolation: Virtualization provides isolation between virtual machines, meaning that each
virtual machine operates independently of other virtual machines running on the same
physical server. A crash on one VM won’t necessarily impact another, even when they have the
same host.

 Encapsulation: Virtualization encapsulates the virtual machine or storage unit and its
associated software, settings, and data into a single file or set of files. This makes it easy to
move virtual machines or storage units between physical servers.

 Resource allocation: Virtualization allows for the allocation of resources such as CPU,
memory, and storage to each virtual machine. This enables the efficient use of hardware
resources.

 Flexibility: Virtualization provides flexibility in managing IT infrastructure. It allows for the


creation of virtual machines and storage units on demand, making it easy to scale up or down
as needed.

 Disaster recovery: Virtualization makes disaster recovery easier by enabling the creation of
virtual machine backups or snapshots that can be restored quickly and easily.

Benefits of Virtualization in Cloud Computing

Even if the concept of virtualization is relatively new to us, we’re likely already familiar with at least
some of the benefits of virtualization in cloud computing, like:

 Ease of access. We can get to our applications and data from anywhere with a network
connection.

 Cost-effective. Physical hardware costs can be prohibitive, but with virtualization and cloud
computing, we can effectively “rent” only the resources we need to accomplish our end goal,
whether it’s accessing a bank statement from an application on our phone or managing a data
warehouse for health insurance claims information.

 Security. Instead of providing access to the main systems, virtual systems with their own
security measures can be created that only provide access to the information needed for the
job. These security levels can be maintained independently of the overall hardware security,
keeping access to the main servers restricted to the system administrators.

 Redundancy. Data can be backed up and archived in several places easily, reducing the
overhead of maintaining a large, single repository of data and providing secure backups and
restore points in the case of an outage or data corruption.

 Agility. Because users aren’t beholden to the limitations of their own hardware/software, they
can quickly pivot to take advantage of changing technology and markets.

What to Know About Managing Virtual Systems

If you’re the one providing the virtualized resources, there are a few things to keep in mind to ensure
the performance, availability, and security of virtualized environments:
CLOUD COMPUTING WITH AWS EEE (IV-I)

 Monitoring and performance management: Monitor the performance of your virtualized


systems and applications to identify potential bottlenecks or issues. Use monitoring tools to
track resource utilization, such as CPU, memory, and disk usage, and keep an eye on
application performance metrics.

 Capacity planning: Ensure your virtualized systems have enough resources to meet the needs
of your applications. Plan for future growth and allocate resources accordingly.

 Backup and recovery: Implement a backup and recovery plan for your virtualized systems to
ensure that data and applications can be restored quickly in the event of a disaster or outage.

 Security: Protect your virtualized systems and applications from cyber threats by
implementing security measures such as firewalls, antivirus software, and access controls.

 Patching and updates: Keep your virtualized systems up to date with the latest patches and
updates to ensure that known security vulnerabilities are addressed.

 Resource management: Manage the allocation and use of resources, such as storage and
network bandwidth, to ensure that applications have the resources they need to run smoothly.

 Documentation and reporting: Document all changes and updates to your virtualized
systems and applications, and generate regular reports to ensure everything is running as
expected.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy