日前Linux基金會做了一項熱門開源軟體的調查,結果最受歡迎的是OpenStack,其次則是Docker。這個結果有別於過往,因為這兩個開源軟體專案成立都不到5年,卻已經大受歡迎,可謂英雄出少年。其中,Docker還是今年6月才剛釋出1.0正式版,受歡迎的程度竟然就位居第二。

此外,知名IT廠商近期也紛紛跟進Docker的腳步。例如Google釋出支援Docker的開源專案Kubernetes,Amazon的雲端服務也率先支援Docker,IBM的SoftLayer雲端服務也說要支援,而與Linux、Docker處於競爭關係的微軟、VMware,竟也宣布與Docker合作。到底Docker是何方神聖,能同時影響Google這樣的網路公司,以及微軟、VMware、IBM這樣的IT大廠?

Docker是一家軟體公司的名稱,他們推出的Container(容器)部署管理平臺也名為Docker。其實這家公司最早叫做dotCloud,做的是PaaS(Platform as a Service)生意,主要提供軟體開發者可以立即使用的雲端開發平臺。他們在開發PaaS時採用Linux的Container技術LXC(Linux Container)。這項技術可說是作業系統層級的虛擬化,由作業系統來控制切割硬體資源,將其分配給裝有應用程式的Container來使用,由於每個Container都是獨立隔離的容器,因此每個應用程式皆有各自的運算資源、又彼此隔離,也就成為一種以應用程式為導向的虛擬化應用。

Container技術與現今主流的伺服器虛擬化技術──虛擬機器有所不同。虛擬機器是虛構一整臺宛如實體的伺服器,每臺虛擬機器皆有完整的作業系統及應用程式,必須藉由額外的虛擬層管理軟體(Hypervisor)來分配硬體資源及管理虛擬機器,優點是符合傳統IT架構,但Hypervisor需要耗用主機的運算資源,以及虛擬機器映像檔的檔案較大,要啟動一臺虛擬機器的時間最快是以分鐘計算。

虛擬機器技術在過去這十幾年來已經掀起IT架構的大轉變,現今許多企業的IT系統有大半已經在虛擬機器運行。然而,虛擬機器對於雲端公司而言太臃腫,因為雲端架構是由大量分散式微型服務組建起來,所以像Google這樣的雲端公司就選擇採用Container輕量級虛擬化技術──既不需要Hypervisor耗用運算資源,而每個Container可小到只執行單一程式,生成一個Container最短只要幾秒鐘,而且一臺硬體主機能承載更多的Container,不論在開發、部署或管理上,Container都具有效率與彈性的優勢。

dotCloud公司也採用Container技術開發PaaS平臺,不過他們為了解決開發與維運的需求,從2010年就自己開發相關的部署管理工具,也就是日後的Docker。然而,值此同時dotCloud公司的PaaS業務並不出色,畢竟市面上相同的業者很多。或許是因為主業發展受阻,他們在尋求轉機之下乾脆把Docker以開放原始碼軟體的方式公開,結果大受歡迎,最後公司也改名為Docker,全力發展Docker平臺。

Docker大受歡迎的關鍵不在於Container技術,因為這項技術早就在數十年前的大型主機、Unix作業系統上實現了。雖然Linux在3.8版核心使Container技術完備,有些軟體公司逐漸開始採用,但卻因為技術門檻高而難以普及。待Docker問世後,提供了一個簡單操作的Container部署與管理平臺,讓開發人員可以在自己的電腦寫好程式後,直接把Container派送到測試機,再部署到實際上線的主機;同時Docker會記錄這些Container的部署資訊,並且會留下版本記錄,所以系統維運人員就能寫程式自動控制應用程式的部署與管理政策。Docker所訴求的Infrastructure as Code,正迎合雲端服務興起所帶動的DevOps風潮,因而不僅開發人員看中Docker的高效率,維運人員也看到了救星。

Docker為何如此熱門?可能就是天時地利人和。Google帶動的雲端系統開發維運方式,逐漸在型塑未來的IT架構與資料中心,朝向高彈性的雲端化發展;開放原始碼軟體的發展也達到史上巔峰,Linux開發環境的諸多創新軟體技術,吸引開發人員形成磁吸效應;同時,開發人員與維運人員都渴望更有效率的工具。

或許,還有更多的原因造成Docker風潮大爆發,然而這不僅是雲端軟體公司追隨的潮流,對企業IT而言也是即將到來的變革。Docker的發展目前正處於起飛期,未來的影響層面多大難以預測,不過這波IT新革命已經開始了。

專欄作者

熱門新聞

Advertisement