虛擬化技術已經廣泛被應用於遊戲開發、雲端計算、邊緣計算、5G基地台等應用。不但軟體上的改進,
連帶的硬體上的設計也以輔助虛擬化為主要的訴求之一,現今高端的CPU都已經能支援虛擬化技術,而越
來越多的GPU和網路卡也有支援虛擬化的設備。可以說虛擬化的技術已經普及到各個領域。本課程將介紹
虛擬機器與container系統,包括他們的原理和實作細節,並且配合系統的實作,讓學生可以更深入的
了解虛擬技術的運作。此外,我們也將介紹虛擬化技術的各項運用,包含雲端計算的資料中心、容錯系
統、5G基地台、邊緣計算等。

課程內容
甲、 虛擬化技術介紹
i. CPU虛擬化
ii. 記憶體虛擬化
iii. 網路虛擬化
iv. 儲存裝置虛擬化
乙、 Container技術介紹
i. Namespace、Cgroup、layered FS
ii. OCI規範CRI、CNI、CSI
iii. 案例探討 Docker、Kata container、gvisor
iv. 協作系統Kubernetes
丙、 虛擬化技術應用
i. 遊戲模擬機 VM emulation
ii. 5G基地台NFV、VM consolidation、KSM
iii. 雲端計算 資料中心 容錯系統VM migration
iv. 邊緣計算安全測試環境 VM isolation
丁、 Container技術應用
i. 敏捷開發DevOps
ii. 微服務Microservices
iii. 雲端PaaS服務平台 Autoscaling
iv. 邊緣計算快速佈署

實驗教材
甲、 虛擬遊戲機
乙、 CUJU容錯系統
丙、 Kubernetes應用

參考資料
1. Virtualization Essentials, 2nd Edition Matthew Portnoy
2. Kubernetes Design and Architecture https://github.com/kubernetes/design-
proposals-archive/blob/main/architecture/architecture.md

課程進行方式
投影片、trace code、演講、同學presentation

成績計算
1. Three Assignments 60%
2. Final Project 30%
3. Class Participation 10%