virtualization module

This commit is contained in:
Elizabeth Hunt 2023-09-06 09:34:16 -06:00
commit dadf03afa3
Signed by: simponic
GPG Key ID: 52B3774857EB24B1
4 changed files with 138 additions and 0 deletions

BIN
virtualization/img/htop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,37 @@
**Question 1**
Run the Linux OS as a virtual machine, or run the application in a containerized Linux environment (which
is the same abstraction).
**Question 2**
A native system virtual machine has dedicated hardware to run the hypervisor, while a hosted system
virtual machine runs a hypervisor as a process in the operating system.
**Question 3**
A virtual machine hosts an entire operating system and requires users to perform configuration if they
want to run an application, whereas a Virtual Appliance is built to provide an easy plug-and-play virtual
machine image built to run some specific software stack.
**Question 4**
In a large application sense, containerizing services into their own virtual machines allows for easier
replication, scaling, and networking. Instead of running several smaller servers, one large server can
host several applications in parallel. This provides a good seperation of concern. And, if one service
goes down, the whole system does not go down with it.
Locally, it can help in development when targeting another operating system. Virtual machines can be
used to verify builds without installing a whole other operating system.
**Question 5**
A virtual machine monitor is just another term for a hypervisor, so, see question 2.
**Question 6**
The three components of a virtual machine are:
1. The host
2. The virtualization layer
3. The guest

View File

@ -0,0 +1,101 @@
**Question 1**
I use an Apple Silicon Mac which is based on the ARM architecture - so it's necessary to use
[Multipass](https://multipass.run/), as native virtualization is _not available to us_.
![No Virtualization Strings](./img/no_virtualization.png)
**Question 2**
One of the downsides of running a virtual machine, as opposed to a hosted virtual instance, is that local
resources are used. On a laptop especially, this increases power draw, draining the battery. Additionally,
the security of mind provided by "faster disaster recovery", as discussed in the article, is not as
necessary for consumer applications on personal machines as servers. Finally, virtual machines are
inherently slower in compute due to general overhead.
**Question 3**
![htop resources](./img/htop.png)
**Question 4**
In a large application sense, containerizing services into their own virtual machines allows for easier
replication, scaling, and networking. Instead of running several smaller servers, one large server can
host several applications in parallel.
Locally, it can help in development when targeting another operating system. Virtual machines can be
used to verify builds without installing a whole other operating system.
**Question 5**
A native system virtual machine has dedicated hardware to run the hypervisor, while a hosted system
virtual machine runs a hypervisor as a process in the operating system.
**Question 6**
1. Easier networking between "servers"
2. Efficient resource use
**Question 7**
A Virtual Appliance is built to provide an easy plug-and-play virtual machine image built to run some
specific software stack.
**Question 8**
A Virtual Appliance would be desirable to eliminate maintenance and configuration overhead when running an
application. In my own experience, I've used a form of virtual appliances - "Docker Containers", to easily
spin up multiple versions of small services at work.
**Question 9** What are 2 benefits of Virtualization?
See question 6.
**Question 10**
See question 4.
**Question 11**
See question 8.
**Question 12** What are the three main types of virtualization?
1. Full virtualization
2. Para virtualization
3. OS-level virtualization
**Question 13** What you should know about virtualization?
How to create a virtual machine, and maintain it.
**Question 14** What is the weakness of virtualization?
Inherent overhead in all system operations.
**Question 15** What are the six areas of virtualization?
Source: [HiTechNectar](https://www.hitechnectar.com/blogs/virtualization-types)
1. Application - run individual applications in a seperate environment than a host OS
2. Data - abstract exact location and formatting information away from retrieval of data
3. Desktop - hosts a desktop environment virtually on another machine (reminds me of mainframes).
4. Network - physical networking tools are abstracted into software resources
5. Server - division of a server into multiple guest operating systems
6. Storage - abstraction over multiple storage arrays into a single pool
**Question 16** What is the biggest challenge in virtualization?
Resource distribution is a big one; it's difficult to keep track of several resources on a host machine
and ensure a Virtual Machine accesses them correctly.
**Question 17** What is the risk of using virtualization?
The biggest risk of using virtualization is sandbox escape vulnerabilities. Although mostly research and
proof-of-concept, highly skilled engineers can theoretically craft exploits to escape the sandbox of the
VM and directly mess with the host operating system.
**Question 18**
When (question 17) is trusted; sandboxing. Virtualization should supply no access to resources within the
host operating system.