最近業內有人在探討一個趨勢-「虛擬機:永遠的光榮仍是垂死掙扎呢?」這個探討主要源於Docker公司和Linux容器(Container)的探討。不少人疑惑究竟是否容器技術終將取代虛擬機技術。可能你也據說了Linux容器技術,但並不是每一個人都花時間研究了容器技術的前因後果,這不是一條140字的微博可以說清的,所以先分享一點背景知識。安全
關於容器技術微信
容器技術提供了操做系統級的進程隔離,相似於硬件的虛擬化技術,這也是爲何如今會有人提出容器技術將取代虛擬機技術的主要緣由。固然,容器技術仍是不一樣於今天的虛擬機技術,它是在操做系統內部來進行進程級的隔離。而咱們熟知的虛擬機(基於Hypervisor的虛擬化,這裏不討論操做系統上的虛擬機技術)是基於硬件資源的虛擬化技術上進行隔離,位於操做系統下面。實際容器技術已經有多年的歷史,好比FreeBSDJail和SolarisZones等。甚至谷歌也使用容器技術實現了一些功能,而且將這些代碼貢獻給了Linux社區,從而Linux內核已經有一些容器相關的組件。網絡
可是即便有谷歌大佬的助推,也有不少開源大軍的努力,容器技術都沒能引發你們太多的關注。直到大約一年多前Docker這家公司將Linux的容器技術向前推動了一步,使得它可簡化應用封裝,讓應用真正可以跨不一樣的Linux發行版運行,包括提供了適應開發流程的API,從而讓容器技術真正引發整個業界的矚目。架構
容器和虛擬機並不是簡單取捨運維
第一次聽到容器這個概念,很容易將容器技術和虛擬機技術進行對比,可是兩者真不是取捨的關係。由於IT的目標是讓客戶成功,讓客戶成功就意味着要很好地運行和管理客戶的應用,這不是隻靠虛擬機或者容器就可以完美實現的事情。要想順利運行一個應用就須要一個高效、安全和高可用的架構,這是企業應用的基本需求。好比:檢查點/回覆能力來確保移動性、資源隔離(包括計算、網絡、存儲QoS等)、存儲的快照、複製等確保存儲的可用性等等。也就是說,全部的企業應用都要具備這些能力的基礎架構支撐,不管該應用是運行在虛擬機上或容器裏。目前已經久經考驗的虛擬化技術已經造成了完整的生態圈,確保基礎架構的彈性、可靠性和安全。固然,應用的管理也同樣,虛擬機已經有完善的管理生態圈,確保運行在虛擬機裏的應用可以很容易達到企業級管理的需求。剛剛起步的容器技術不管從應用運行仍是管理維護方面來講,都仍是一個小弟,還須要歷練。ide
虛擬機和容器:SDDC裏的最佳拍檔工具
其實,虛擬機和容器不是二選一的選擇題,而是能夠將兩者放在一塊兒,共同提高SDDC的服務能力。固然,不管虛擬機仍是容器技術,都是專一解決軟件定義計算的部分,只是SDDC的一個部分,固然也是一個很重要的部分。性能
首先,容器技術爲應用提供了很好的移植性,讓應用能夠輕鬆跨不一樣架構遷移。可是應用和數據每每不是負載遷移的攔路虎,而運維的需求,包括性能容量管理、安全和管理工具集成每每讓應用部署到新環境困難重重。所以,僅僅解決應用的跨平臺移植只是解決了遷移挑戰的一個小問題。雲計算
其次,即便咱們相信容器技術和虛擬機技術都能達到一樣的安全隔離等級,基於Linux的容器技術仍然沒有在企業級得到驗證。Linux容器只是將操做系統的子系統設計成能夠跨應用工做,試圖在後來添加隔離特性。這同今天成熟的hypervisor徹底不一樣,Hypervisor基於裸設備設計,從根上解決虛擬機隔離問題。這些Linux容器子系統須要很長時間才能達到虛擬機同樣的成熟度。合規性是另一個挑戰,任何企業系統都有合規性的要求。虛擬機技術花費了大量時間得到企業界承認,並經過一系列合規性的審覈,從而得到今天的江湖地位。咱們不懷疑容器技術可能也終將知足企業合規性要求,但這須要數年的時間。spa
最後,與其將容器技術和虛擬機技術割裂開來,不如將兩者設計成最佳拍檔,由於容器技術絕對能夠運行在虛擬機裏,享受虛擬機帶來的全部優點,包括:得到業界承認的隔離能力和安全屬性,另外還能夠得到軟件定義計算以外的全部SDDC的特性,固然也能夠得到虛擬化大量生態圈的支持。
不管用什麼技術,目標都是要確保客戶的成功。將虛擬機和容器技術放在一塊兒,共同打造企業SDDC纔是王道,由於這兩個技術天生能夠相互依存:容器技術爲客戶應用提供絕佳的移植能力,而虛擬機技術則能夠爲基礎計算提供安全保障,知足客戶可靠性、穩定性、合規性需求,同時加上基於虛擬化發展起來的SDDC的其餘幾部分技術,才能真正將客戶架構平臺打形成應用和數據的溫馨港灣,讓客戶今後乘第三平臺翱翔。
注:本文已經發表在《軟件和信息服務》2014年9月刊上,若是想了解@雲界漫步 對雲計算的最新觀點,請直接訂閱「中國雲夢」微信公衆號。也可微信掃描下面的二維碼,直接訂閱。訂閱」中國雲夢「後,直接回復」10038「閱讀該文。