和康顧問 版權所有 2023 © All Rights Reserved
在講述Docker以前,我們先來概述虛擬化的定義即出現。
Table of Contents
Toggle為何有虛擬化技術?
工程師在開發程式時,都是以自己電腦環境上開發的,比如筆者是在Windows 10作業系統之環境開發程式,此時,如果想要將此程式運行在Mac OS或Linux上時,該怎辦?此外,如果此程式在我環境中運作時是正常的,但在你的電腦內卻無法運行,該怎辦呢?
關於第一個問題的解法是如果開發者想要讓程式運行在多個環境,也就是在一台電腦或伺服器上運行多個伺服器,那就是需要更多台實體伺服器(一台專門運行Mac OS、一台專門運行Windows…)。
關於第二個問題是因為每台電腦的作業系統與硬體配置不盡相同,所以可能在環境與相容性上出了點問題,那麼就是要創造一個能讓那台電腦運行的環境。
以上問題的出現才誕生了「虛擬化」這個技術。
何謂虛擬化?
Hypervisor
Host OS 與 Guest OS 的差別
Host OS => 主要的作業系統
Guest OS => 次要(訪客)的作業系統
例如: 現在我們電腦的作業系統是Windows 10,此時我們在此作業系統上安裝VirtualBox,在VirtualBox裡裝VM虛擬機器,裡面裝Linux
Host OS => VM裡的Linux
Guset OS => Windows 10
Type1 Hypervisor
第1類的Hypervisor是直接在基礎電腦的實體硬體上運行,直接與CPU、RAM、儲存空間進行互動,並取代主機作業系統的地位,因此又稱為裸機Hypervisor。
通常此類型的Hypervisor普遍應用於企業級資料中心或其他以伺服器為基礎的環境。目前屬於Type1 Hypervisor有Microsoft Hpyper-v、KVM、VMware vSphere…等等。
伺服器虛擬化
Linode專門提供虛擬伺服器的服務,但Google的GCP、Amazon的AWS、Microsoft的Azure都是屬於雲端平台,提供非常多雲服務,虛擬伺服器只是其中一項服務
容器化技術
早期接觸虛擬化技術時,都是強調把實體電腦虛擬化,並產生以下趨勢 :
- 雲端運算普及
- 私有伺服器服務移至雲端
- 企業開始建構屬於自己的私有雲或使用各大科技龍頭的公有雲
當時的虛擬化技術簡單可以理解為把作業系統虛擬化,也就是先前所說的虛擬機器VM。當然,使用虛擬機器作為虛擬化技術有很多優點,如下 :
- 安全性高,Guest OS之間不知道彼此的存在,就算Guest OS毀損也不會影響到Host OS
- 系統選擇較多,可以選擇不同的OS
- OS裡的應用程式不須被拆分,且也不須大幅更改應用程式之架構
但也有一些缺點,如下 :
- 因包含OS的關係,檔案大小通常為GB以上
- 因要開啟OS,啟動速度較為緩慢
- 必須消耗較多的系統資源,因為不單只給應用程式,還需要將一部分資源給OS
因這些缺點的關係才衍生出了容器化技術!!
容器化技術並不是完全取代虛擬機器的新技術!