編者按:本周對於開源應用引擎Docker來說是一個Big week,重磅新聞不斷:2014年6月9號,Docker社區正式發布了Docker 1.0,商業公司Docker Inc.同時宣布提供企業級服務支持Docker的大規模商用;同一天,第一屆Docker技術大會在San Francisco高調開幕,預定500人的會場有超過900多人報名,贊助商包括IBM、Redhat、Rackspace等IT巨頭;6月10,谷歌宣布與Docker的全新整合方式,涉及的雲服務包括Google App Engine和Google Compute Engine,國內各大技術媒體大規模轉載相關新聞。中國社區之前發表過OpenStack對Docker支持的思路,本次分析下Docker 新發布的 雲+端 開放平臺戰略。
Docker簡介和快速發展
開源項目Docker於2013年3月啟動,是由PaaS 提供商 dotCloud 開源的一個基於 LXC 的高級容器引擎,原始碼託管在 Github 上,基於谷歌發布的開源程式語言 Go。Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到主流的 Linux 機器上。容器是完全使用沙箱機制,相互之間不會有任何接口(類似iPhone 的 app),性能開銷很低,可以很容易地在機器和數據中心中運行。它出現的意義可以與貨櫃的發明相比,貨櫃將貨運目標標準化,Docker 將應用程式標準化。Docker 誕生之前,程式設計師在伺服器端部署應用程式的步驟如下:安裝→配置→運行。與傳統部署模式不同,運用 Docker,程式設計師在伺服器端部署應用程式的步驟如下:複製→運行。
在短短一年多時間內,Docker已經發展為GitHub上的發展最快的開源組織之一,目前總共有200多萬次下載, 460多個開發人員貢獻了超過8000次代碼提交,有14000多個利用Docker引擎打包的應用。Docker背後的商業公司也發展迅速:DotCloud公司2013年10月改名為Docker Inc,轉型專注於Docker引擎和Docker生態系統;2014年1月獲得1500萬美元高額B輪融資,由著名的投資公司 Greylock Partners 領投,包括 Insight Venture Partners 參與以及原有投資者 Benchmark Capital 和 Trinity Ventures跟投,參與此輪投資的還有 Yahoo 的聯合創始人楊致遠(Jerry Yang)。Docker深受網際網路巨頭髮PaaS創業公司青睞,國內的百度在大規模實踐Docker,Google 的 Compute Engine 也支持 docker 在其之上運行,Redhat也積極地在RHEL中集成對Docker的支持。
Docker 1.0發布
Docker 1.0的發布和谷歌、Rackspace等的實踐標誌著Docker向正式大規模生產系統中的應用方面邁出了艱巨的一步。Docker的官方博客談到:「當許多機構忽視掉我們「不要在生產環境中運行」的警告愉快地使用Docker時,其他人則在實際部署生產環境前一直等待Docker產品成熟度達到一定水平,1.0 版本的發布表明在質量、功能完整、向後兼容和 API 穩定性方面已達到企業級標準;另外,我們為實際生產提供了一套全面的解決方案,包括完善的文檔、培訓項目、專業服務、以及企業級支持。」
Docker的開放平臺戰略,邁入雲+端時代
除了發布正式的1.0版本,Docker公司也正式宣布了Docker引擎+Docker Hub的開放平臺計劃,邁入雲(Docker Hub雲應用商店和分發平臺)+端(將應用發布到數據中心、公有雲等運行Docker引擎的伺服器平臺上)。這一裡程碑意味著 Docker 自身已經轉變為一個分發應用的開放平臺,它由 Docker 引擎、容器運行時、打包工具,以及 Docker Hub 組成。
Docker宣布的開放平臺包括如下幾部分:
PLATFORM= Docker Engine + Docker Hub +APIs + Ecosystem
Docker Engine可以自動化地部署應用到可移植的的容器中,這些容器獨立於硬體、語言、框架、打包系統。一個標準的Docker容器包含一個軟體組件及其所有的依賴 ——二進位文件,庫,配置文件,腳本等等。Docker擴展了LXC,使用高層的API,提供輕量虛擬化解決方案來實現進程間隔離。可以運行在任何支持 cgroups跟AUFS 的 64位Linux內核上。Docker容器可以封裝任何有效負載,幾乎可以在任何伺服器之間進行一致性運行。換句話說,開發者構建的應用只需一次構建即可多平臺運行。運營人員只需配置他們的服務,即可運行所有的應用。
Docker Hub提供API和雲服務來發布基於Docker的應用程式。
下圖演示了Docker應用程式的生命周期。在本地基於Docker引擎打包應用程式,然後用DockerHub雲服務將程序(貨櫃)放到DockerHub,希望運行此應用的平臺比如GoogleAppEngine再去下載和運行。
Docker應用商店(Official Repositories)
應用商店是對之前DockerHub Registry的商業化,目前已經有14000多個基於Docker的應用程式package,包含最流行的13個應用-CentOS, MongoDB, MySQL, Nginx, Redis, Ubuntu, and WordPress 等等。應用商店將開放給合作夥伴共建生態體系,裡面包含免費的應用和收費的應用。
在6月10號的一個重要會議上,谷歌對Docker給予了相當大支持。在該公司看來,Docker是一個足以改變人們創建軟體方式的東西,它能讓任何程序開發人員更輕鬆地、即刻地體會到海量計算性能的優勢。Google 去年 12 月 2 日宣布,Google Cloud Platform 開始支持 Docker,Google Compute Engine 此前只支持兩種 Linux 部署方案 Debian、Centos。Google 為全球用戶提供網際網路服務,需要在分布在全球各地的伺服器上部署相關應用程式。傳統的部署模式下,Google 工程師需要在每一臺伺服器上進行相當複雜的操作才能夠完成部署。如果使用 Docker,工程師在全球各地伺服器上部署應用的過程將變得非常簡單,只需要將應用打包、複製、傳送、粘貼即可完成部署。
谷歌著名的工程師,前加利福尼亞大學伯克利分校教授、分布式系統專家,埃裡克·布魯爾(Eric Brewer)表示:「谷歌和Docker是能天然融合的。我們對應用程式未來該如何開發有著共同的認識。」布魯爾稱,Docker複製了谷歌在其數據中心裡已執行多年的一些東西,即通過一種方法讓成百上千的電腦如一臺巨型電腦般運轉。布魯爾相信,這種架構代表了網絡軟體開發的未來。來自網易科技的報導稱,「貨櫃化思維」被運用在軟體「運輸」上,Docker可以看作是用代碼編寫出來的國際貨櫃,它可以把任何應用及相關依賴項打包成一個輕量、可移植、自包涵式的容器。
參考資料:
http://blog.docker.com/2014/06/its-here-docker-1-0/
http://tech2ipo.com/66992
http://cloud.yesky.com/166/37626166.shtml
http://www.csdn.net/article/2014-06-10/2820145
關於Docker更多內容,請參考如下相關文章:
OpenStack將提供對Docker的支持
Docker公司:dotCloud轉向一體化容器技術
Docker能夠運行任何應用的「PaaS」雲
原文連結:Docker1.0發布—邁入雲(DockerHub應用分發平臺)端(Docker引擎)時代(責編/周小璐)
如您需要了解更多Docker相關的資訊或是技術文檔可訪問Docker技術社區;如您有更多的疑問請在Dcoker技術論壇提出,稍後會有專家進行答疑。