- Learning Windows Server Containers
- Srikanth Machiraju
- 384字
- 2021-07-02 23:23:22
Comparing containerization and VM virtualization
Containers, or VMs, intend to solve a common problem of resource wastage, manual efforts in resource procurement, and high costs for running monolithic applications. Comparing VMs with containers is ideal since each share their own set of pros and cons, a few comparisons are:
- Virtualization layer: Containers are very different from virtualization by design. VM virtualization is at a hardware level, which allows multiple VMs to run in parallel on a single hardware, whereas the containers run out of a single host OS as if each container is running in its own OS. This design has a disadvantage of disallowing containers to be of varied OS. But this can be easily overcome by using a hybrid computing model combining VM and container virtualization.
- Size: VMs are heavyweight, whereas containers are extremely light. VMs contain the complete OS, kernel, system libraries, system configuration files, and all the directory structure required by the OS. Containers only contain application specific files, which makes it extremely lightweight and easily sharable. Also a VM that is not being utilized or if it is running some background process eats memory, which restricts the number of VMs than can run on the host. Containers occupy very less space and they can be easily suspended/restarted due to their extremely low boot timings.
- Portability: The same size constraints are a huge disadvantage for VMs. For example, developers writing code cannot test the applications as if they are running in production instances. But with containers it is possible since containers run alike on developer machines and production servers. Since containers are lightweight they can easily be shared by uploading to any shared storage. This can be partially overcome by using modern thin server OS such as Nano Server or Windows Server Core, which we will discuss in following chapters.
- Security: Undoubtedly VMs have an upper hand here due to the isolation at the very bottom level. Containers are more vulnerable to OS level attacks; if the OS is compromised all the containers running it will also be compromised. That being said, it is possible to make a container highly secure by implementing proper configuration. In a shared or multitenant environment noisy neighbors could also create potential attacks by demanding more resources, affecting the other containers running on the machine.
推薦閱讀
- UNIX操作系統(tǒng)設(shè)計
- 阿里云數(shù)字新基建系列:云原生操作系統(tǒng)Kubernetes
- BPEL and Java Cookbook
- 計算機系統(tǒng)開發(fā)與優(yōu)化實戰(zhàn)
- Kubernetes從入門到實踐
- 從實踐中學(xué)習Kali Linux無線網(wǎng)絡(luò)滲透測試
- Ubuntu Linux操作系統(tǒng)實用教程
- Linux網(wǎng)絡(luò)操作系統(tǒng)項目教程(RHEL 7.4/CentOS 7.4)(第3版)(微課版)
- bash shell腳本編程經(jīng)典實例(第2版)
- Getting Started with UDK
- Implementing Cloud Design Patterns for AWS(Second Edition)
- Linux深度攻略
- Website Development with PyroCMS
- 嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版)
- 鴻蒙應(yīng)用程序開發(fā)