雲計算建構在大量軟體元件上由于內建通常非常昂貴、冒險并且很耗時規劃者與架構師通常選擇內建包。雲堆棧中一個重要元素是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的益處證明你值得去冒險。
本文作者佚名
來源51cto