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