virtualization module
This commit is contained in:
commit
dadf03afa3
BIN
virtualization/img/htop.png
Normal file
BIN
virtualization/img/htop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
BIN
virtualization/img/no_virtualization.png
Normal file
BIN
virtualization/img/no_virtualization.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
37
virtualization/virtual_machines.md
Normal file
37
virtualization/virtual_machines.md
Normal 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
|
101
virtualization/virtualization.md
Normal file
101
virtualization/virtualization.md
Normal 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.
|
Loading…
Reference in New Issue
Block a user