大數據生態系統迭代:容器要取代“虛擬化”?

大數據時代面臨著生態系統的不斷更新迭代。程序猿和攻城獅們絞盡腦汁地想要降低硬件成本、開發出能保羅萬象的系統。

先是系統分身——虛擬機的出現,宿主系統和虛擬鏡像靈活切換,十分酷炫!隨著GO語言這位最強王者的出現,又有“神猿”編寫出了docker這個貌似鯨魚的可愛工具。服務器的資源共享進入了容器時代。如今很多頭部的IT公司基於docker不斷拓展新業務。隨著微服務架構的橫空出世,docker迅速與之組成戰隊,就更加飄飄然了。

這幾年,容器將取代“虛擬化”的言論甚囂塵上。事實上,沒有絕對的技術,大數據的生態系統是鮮活的,不斷更新且多向兼容。虛擬化和容器必將經歷短期共存的過程,最終的生死存亡只能交給“生態圈”自主篩選。

就目前而言,容器比虛擬機更敏捷迅速,且容器支持混合和多雲的採用。最重要的一點是容器具有很強的適應性:它可以輕鬆地集成於現有的IT實踐當中。同時,容器化應用程序因其靈活共享的特性,大大提高了VM的CPU利用率,降低了硬件成本。但另一方面,每一個虛擬機都有自己的操作系統,驅動程序和應用程序,具有更強的隔離性。

大數據生態系統迭代:容器要取代“虛擬化”?

VMs


二十年前,一家名為VMware的創業公司通過提供創建非物理機器虛擬化平臺(如Linux,Windows等)來引入業務。

隨著服務器處理能力的提高,基本應用程序無法最大限度地利用所有豐富的新資源。而虛擬機(VM)的出現,可以在物理服務器上運行軟件,並模擬特定的硬件系統。其中管理程序是可以創建和運行虛擬機的軟件或硬件。

使用不同操作系統的虛擬機可以在同一服務器上運行。例如,一個Unix虛擬機可以同時在能夠運行Linux虛擬機的服務器上運行。每個虛擬機都有自己的應用程序、二進制文件和庫。因此,企業可以保留舊計算機,添加新軟件,無需重新購買能夠運行Unix軟件的新計算機。對於組織不斷變化的需求而言,這是一個更簡單、更便宜的解決方案。

服務器虛擬化是在虛擬化軟件的幫助下,將物理服務器劃分為若干個小型虛擬服務器的技術。在這個系統中,每個虛擬服務器將同時運行多個操作。Wikibon的首席分析師James Kobielus在最近的一次Dataversity®採訪中說:

服務器虛擬化的巨大優勢在於可以更好地利用所投資的硬件資源。其面臨的問題是:在不同平臺的不同虛擬機中,管理不同的機器映像相當複雜,這可能會造成相應的管理負擔。


大數據生態系統迭代:容器要取代“虛擬化”?


大數據生態系統迭代:容器要取代“虛擬化”?

容器(Containers)


即使有可用的工具,虛擬機技術也很難被使用。例如,在虛擬世界中很難分離特定的、消耗資源的應用程序。微服務和容器化提供了一個更簡單的選擇。一個特定的應用程序代碼(例如查詢處理器和數據庫索引邏輯中的後端數據)可以通過微服務的容器來分割不同的工作負載。

容器類似於虛擬機,來自其他系統的軟件也可以在不同的服務器上運行。容器還允許應用程序與庫和依賴項一起運行。也就是說,當虛擬機模擬硬件系統時,容器能夠以核心操作系統為基礎來運輸自己的軟件系統。

相較於虛擬機而言,容器佔用空間更少。“虛擬機可能需要大量的資源開銷,例如網絡輸入、輸出、內存和磁盤。因為單個虛擬機運行自己的操作系統,而容器則不運行。”Kobielus說道。容器共享稱為操作系統(OS)內核的東西,它訪問操作系統核心。另外,支持容器的操作系統可以更小,並且具有比虛擬機的操作系統更少的特徵。容器啟動速度更快,僅使用啟動整個操作系統所用內存的一小部分。顯然,容器是下一個進化的步驟。Kobielus評論說:

容器化在過去五年裡開始流行。這是一種做微服務、分發與平臺無關的虛擬化服務器環境的方法,並且此方法有效。容器不僅可以在服務器中運行,還可以在客戶機設備等上運行。容器化實際上是通常所謂的雲計算的核心。


容器化技術長期以來一直是Linux的一部分。Kobielus表示,目前Docker是最受歡迎的容器之一,其他容器化技術,都被插入到Linux中了。基本上,Linux是操作系統,Linux容器可以通過Docker、Mesos和其他各種方式實現。“可以在Docker容器中運行應用程序邏輯,然後獨立地擴展它們。”


大數據生態系統迭代:容器要取代“虛擬化”?


Docker支持在大多數Linux平臺上都可用,可以輕鬆運行這些容器及其應用程序。它們基本上可以在任何Linux平臺以及其他非Linux平臺上運行。通過使用容器,可以在操作系統和底層硬件平臺之間靈活地移動微服務。

大數據生態系統迭代:容器要取代“虛擬化”?

Kubernetes


Kubernetes是一個開源的容器編排系統,旨在自動擴展、部署和管理容器化應用程序。容器編排系統最初由Google開發,但現在由Cloud Native計算基金會保存和維護。NetApp現在使用Kubernetes發行版,該發行版嵌入在其環境中,並在整個分佈式雲架構中協調存儲資源和存儲容器化。

StackPointCloud開發了一個基於Kubernetes的控制平面,用於管理聯合可信存儲集群,並在公共雲服務提供商之間同步持久性存儲容器。之後,大型數據存儲供應商NetApp採用該技術並將其轉變為NetApp Kubernetes服務,該服務允許客戶在僅僅三次點擊的情況下啟動Kubernetes集群或存儲集群。

“它可以擴展到被數百個用戶使用,客戶能夠部署可以從單個用戶界面擴展的容器,”Kobielus評論道。這就是存儲的容器化。容器化的大部分過程都集中發生在應用程序和中間設備功能上。


大數據生態系統迭代:容器要取代“虛擬化”?


據Kobielus說:“Kubernetes或Docker以及Linux容器的一個傳統弱點就是它們不適合存儲或不具有持久性。但是,在利用kubernetes和容器、docker等工具在雲環境中實現數據持久性方面,wikibon提供了大量關於存儲空間的創新。”

目前已有多個將存儲容器化的例子(存儲有時被描述為大數據分析的核心)。NetApps稱其新的Kubernetes服務可以在AWS,Google Compute平臺和Microsoft Azure中運行StackPoint引擎。(它還支持DigitalOcean,Packetclouds等)此外,Cloud Native Computing Foundation還有Rook,它用於非結構化數據的存儲容器化和底板的編排。

大數據生態系統迭代:容器要取代“虛擬化”?

Hadoop存儲


大數據分析平臺正在形成一種趨勢。這與被用於存儲的Hadoop有關。它被用於數據存儲、數據存檔和數據轉換。同時也被用於數據治理。Hadoop是一個開源核心平臺,許多企業將其與大數據一起使用,以達到各種目的。因此,Hadoop分佈式文件存儲已經變得非常流行。Hadoop目前被用於內部雲、公共雲和混合雲中。Hadoop生態系統現在正處於容器化過程中。Red Hat是Kubernetes雲中的主要實施者之一。Kobielus說道:

創新者基本上將Hadoop生態系統的所有組成部分納入他們的計劃,然後對其進行容器化,以便後期獨立部署、擴展和管理。然後使用Kubernetes將它們以各種組合形式進行編排。


大數據生態系統迭代:容器要取代“虛擬化”?


如今,很多企業都在應用這些數據分析的開源平臺技術。“他們正在以各種各樣的方式將它們結合起來,很多獨立開源項目的原始開發人員並沒有完全預料到這一點。”Kobielus評論道。所有這些平臺都得到了容器化,這種趨勢將會持續,在短期內不會很快改變。

大數據生態系統迭代:容器要取代“虛擬化”?



分享到:


相關文章: