你得確保在云堆棧中使用正確的hypervisor
云計算構建在大量軟件組件上,由于集成通常非常昂貴、冒險,并且很耗時,規劃者與架構師通常選擇集成包。云堆棧中一個重要元素是hypervisor,有時用于hypervisor支持的“堆棧選項”未達到***標準。要驗證你自己的“包”選項,了解三種hypervisor關聯維度,檢查滿足應用需求的云軟件選項,以及驗證串聯的硬件功能時需要小心翼翼。
在云計算與虛擬化中,hypervisor將一臺物理服務器劃分為多個虛擬塊,以便單獨分配給應用。hypervisor有三種事物有著明顯的關系:硬件平臺、主機操作系統以及子操作系統。這三種連接的方式不盡相同,在自己的云應用中你需要核查連接規模,確保選擇了合適的云軟件。
了解三種hypervisor類型
詢問hypervisor規模的***個問題是hypervisor在三種連接元素中創建的關系。有三種受支持的基本模式:硬虛擬化模式,即Type 1 hypervisor、操作系統集成模式Type 2以及容器模式,如Docker。
Type 1虛擬化創建了一個框架,虛擬機從硬件隔離,沒有主操作系統。如果云應用需要大量不同的子操作系統配置,并且出于安全、遵從或多租戶原因,應用必須嚴格分離,那么這種隔離就非常有價值。你的云軟件堆棧使用在子操作系統中無隔離的靈活性差的hypervisor,那就換個唄。
Type 2虛擬化是hypervisor功能與主操作系統的結合。如果主機與子操作系統相同,這種親密關系非常有用,這表示云堆棧支持所有(幾乎所有)運行在相同操作系統上的應用。Type 2 hypervisor幾乎是不提供應用隔離,應用會影響其他應用的性能,但資源效率與運營易于管理。多數用戶也沒有像公有云提供商那樣關注租戶隔離。仔細查看應用的性能,要小心不能訪問硬件與你想要的加速功能。如果想用這些功能,那就換個hypervisor。
***一個類別是最不像hypervisor的hypervisor,即基于容器的云系統。容器是輕量級應用托管點,比Type 2虛擬機的隔離性還差。它們不在應用之間提供資源控制,安全性也有待提升。它們能提供的是非常簡單的應用部署與資源有效利用。你在服務器上部署所部署的容器數量可能是虛擬機的5到10倍。然而,做一個通用的容器承載任何應用卻很難,因此,如果要大型的不同硬件組成的資源池中托管很多不同的應用,使用容器的方式就比較困難。
驗證hypervisor選擇
下一步是驗證為應用所選的hypervisor是否合適。通常,擁有的不同應用集越多,就需要多個子操作系統或不同的中間件版本,這樣看起來你似乎需要的是Type 1 hypervisor,而不用去管云軟件包含了什么。小心確定與供應商之間的關系,因為幾乎所有的應用都適合托管在云中。你會將云托管作為常規IT戰略。
許可與支持也是作決策需要考慮的一部分。可能在任何hypervisor上運行一個子操作系統,這些操作系統副本的許可與支持將給總體成本帶來壓力。有些Type 2廠商不愿意支持除了自己操作系統之外的子機,這就使得價格與支持變得更復雜。了解自己應用所需的子操作系統的許可是如何收費的,如果價格不合適就考慮另一種hypervisor方式。
hypervisor的硬件選擇最復雜。隨著虛擬化與云計算愈發流行,廠商紛紛通過各種硬件增強與軟件工具提升虛擬機性能。這些工具通常針對網絡,提供到子操作系統的設備連接。這些工具的性能差異區別很淡,所以需要確保選擇一個擁有所有促進功能的hypervisor,滿足應用的需求。
作出繼續使用hypervisor的決定
通用規則總是充滿危險,但有個起點決定是否保持或替換云平臺的hypervisor。
如果你有使用不同操作系統的應用,就該堅持使用Type 1 hypervisor,并替換云堆棧產品。
如果你的云主要用于托管少量應用上的多個實例,而這些應用運行在相同操作系統與中間件下,利用率又不高,那么你應該使用容器技術而不是傳統的hypervisor虛擬化。
如果你的應用主要基于單個操作系統與中間件,但偶有例外,就該使用Type 2 hypervisor替換Type 1。
記住,你無論何時移除云軟件包,你就承擔了更多集成與支持的責任。確保你更改hypervisor的益處證明你值得去冒險。