大數據:大數據是一種行業模式,指大量數據相關的業務。由於數據量大,不能單單依靠單機進行數據的處理,必須依賴雲計算才能實現大數據分析的價值。
雲計算:通常涉及通過互聯網來提供動態的易擴展且經常是虛擬化的資源。雲是網絡和互聯網的一種比喻說法。過去的圖中經常用雲表示電信網,后來也表示互聯網和底層基礎設備的抽象。
(一)雲計算的分類
那么,雲計算的服務形式是怎么樣的?答案也就是我們經常提到的IaaS/PaaS/SaaS。
SaaS軟件即服務:提供給消費者的服務是運營商運行在雲計算基礎設施上的應用程序,消費者可以在各種設備上通過瘦客戶端界面進行訪問,如web。消費者不需要管理或者控制雲計算的基礎設施,只需要對應用進行有限的特殊的配置。
PaaS平台即服務:是把客戶使用的開發語言或者工具(java,python,.Net等)部署在供應商的雲計算設備上。消費者控制部署的應用程序,也能控制運行應用程序的托管環境配置。
IaaS基礎架構即服務:提供給消費者的服務是處理能力/存儲/網絡和其他基本的計算資源,用戶能夠按照這些資源部署和運行任意軟件,包括操作系統和應用程序。消費者不能管理或控制任何雲計算基礎設施,但是能控制操作系統/存儲/部署的應用,也可能獲得有限制的網絡組件的控制。
簡單來說:
IaaS就是給你遠程的終端界面(虛擬服務器)或者Web Service接口。
Paas就是給你數據庫連接串或者中間件部署界面。
SaaS就是給你訪問客戶端或者Web界面。
雲計算按照部署方式和服務對象可以分為:公有雲,私有雲,混合雲。
公有雲:雲服務提供商運營,為最終用戶提供從應用程序/軟件運行環境/物理基礎設施等各種各樣的IT資源。
私有雲:由企業自建自用的雲計算中心,相對於公有雲,私有雲可以支持動態靈活的基礎設施,降低IT構建的復雜度。私有雲用戶完全擁有整個雲計算中心的設施(如中間件/服務器/網絡/存儲設備等)
(二)雲計算的軟件架構
OpenStack:是一個開源管理項目,OpenStack提供了基礎設施即服務IaaS的解決方案,每個服務提供API以進行集成。超過130家企業和1350位開發者將OpenStack作為IaaS資源的通用前端。OpenStack項目的首要任務是簡化雲部署過程並為其帶來良好的擴展性。
KVM是底層的hypervisor,用來模擬CPU的運行,OpenStack不會直接的控制kvm,而是通過libvirt庫來間接控制虛擬機。OpenStack(IaaS)---> libvird ---> qemu-kvm --->kvm。
XEN:和kvm一樣作為hypervisor層,是虛擬化的另一種解決方案。KVM是全虛擬化的解決方案,即需要x86架構的CPU實現虛擬化功能的支持,只有在CPU支持的機器上才能使用KVM這種虛擬化,相比於Xen,kvm的使用比較簡繁,動態加載幾個ko模塊就可以。XEN是Liinux下的一個虛擬化解決方案,實現方法是運行支持Xen功能的kernel,這個kernel是在Xen控制下的,叫做Domain0,通過Domain0的管理,虛擬出多個系統。