This post is an introduction to the general concept of virtualization.
Virtualization is the overarching concept of creating virtual versions of computing resources, such as servers, storage devices, or networks. It abstracts physical hardware and allows multiple virtual instances to run on a single physical machine, maximizing resource utilization and providing isolation and flexibility.
Types of virtualization
There are different types of virtualization. The order on this post is offered from heavier to lighter.
Types of virtualization:
- System virtualization
- Application virtualization
- Containerization
System Virtualization
System virtualization implies that a whole system (including its OS) is virtualized.
You can read this complete post about system virtualization.
Application Virtualization
Application virtualization implies that application within the same system or OS are virtualized.
Application virtualization tools insert themselves between applications and the operating system.
It separates the application from the operating system and provides a virtualized runtime environment specific to that application.
Virtualized apps can be run on different OSs.
You can read more about application virtualization on this post.
Containerization
Containerization is a specific case of virtualization.
It bundles the apps with their dependencies, such as binaries and libraries, in a container. This container is run through a container engine, installed in the host OS.
Though the insertion of dependencies within the container makes it less dependent on the OS, the containerised app is not isolated from the OS, unlike application virtualization.
Containerised apps can be run on different OSs (e.g., Windows and Linux).
You can read a complete post about containerization.
Development Environment Virtualization
Examples of development environment virtualization tools:
- Vagrant
Vagrant is a environment development virtualization tool developed by HashiCorp.
You might also be interested in…
External References
- Trianz; “Containerization vs. Virtualization: 7 Technical Differences“; Trianz
- M. Chapple, D. Seidl; “CCSP Study Guide Third Edition“, pp. 158-159; Wiley, 2023