Docker發(fā)布新的跨容器的分布式應(yīng)用編排服務(wù)
在剛剛結(jié)束的歐洲D(zhuǎn)ockerCon,Docker發(fā)布了跨容器的分布式應(yīng)用編排服務(wù),編排服務(wù)可以幫助開發(fā)者和運維人員創(chuàng)建并管理新一代的可移植的分布式應(yīng)用程序,新一代的分布式應(yīng)用程序是由獨立且互通的Docker容器快速組合而成,他們有動態(tài)的生命周期,并且可以在任何地方以可擴展的方式運行,不管是在開發(fā)者的筆記本上,還是在云端。
“一開始用戶在幾臺主機上運行少量的Docker容器,但是現(xiàn)在他們已經(jīng)在集群和不同的基礎(chǔ)設(shè)施中運行了大量的Docker容器,我們需要滿足用戶的需求,這非常重要”。Docker的創(chuàng)始人兼CTO Solomon Hykes說道。“編排服務(wù)開放了原生的接口,可以保證應(yīng)用的可移植性,并通過一個通用的UI整合了生態(tài)圈中的18000個工具和60000個容器化的應(yīng)用?!?/p>
Docker編排服務(wù)已經(jīng)得到了很多合作伙伴的支持,包括Cisco、Digital Ocean、HP、IBM、Mesosphere、Microsoft和VMware。
Docker編排功能在開放平臺的基礎(chǔ)上構(gòu)建,開放平臺能夠創(chuàng)建企業(yè)級標(biāo)準(zhǔn)的Docker容器:將分散的應(yīng)用服務(wù)打包到可交互、可迭代、可隨處運行的容器中。Docker編排服務(wù)可以滿足企業(yè)從整體式的應(yīng)用轉(zhuǎn)移到容器化的分布式應(yīng)用的需求,因為編排這些分布式應(yīng)用需要多個容器、多個主機以及可以在這些設(shè)施中運行的工具和通用UI。
Docker的編排功能由3個新的平臺服務(wù)組成,它們覆蓋了分布式應(yīng)用的所有動態(tài)生命周期,當(dāng)新的代碼或者新的容器化服務(wù)改變時,應(yīng)用可以在幾分鐘內(nèi)部署到生產(chǎn)環(huán)境,而不是像之前一樣需要幾個月。Docker的編排服務(wù)是目前市場上功能最全面的服務(wù),它們獨特的模塊化結(jié)構(gòu)決定了其可以被不同的人員使用,包括開發(fā)者、運維人員以及其它合作伙伴。比如它其中就有一項服務(wù)可以幫助開發(fā)人員方便地創(chuàng)建分布式的應(yīng)用程序棧,而另外一個服務(wù)可以重點處理集群以及運維團隊的問題。
這三個新的編排服務(wù)分別是:
Docker Machine:這項服務(wù)進一步擴展了分布式應(yīng)用的可移植能力,它為用戶提供了靈活的功能,用戶可以在任何主機上運行Docker容器,不管是筆記本、數(shù)據(jù)中心VM還是云端。這大幅度減少了開發(fā)者在手動設(shè)置、自定義腳本的時間,可以加快迭代和研發(fā)周期。
具體來說,Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應(yīng)的平臺上安裝Docker,比如VirtualBox、Digital Ocean、Microsoft Azure。Docker官方是這樣介紹Machine的初衷的。
Machine做事也很聰明,很符合Docker公司的做事風(fēng)格,他們號稱自己架構(gòu)很好,方便第三方集成。所以Machine現(xiàn)在只支持有限的幾個平臺(VirtualBox、Digital Ocean、Microsoft Azure),其它平臺的兼容留給那些愛Docker的第三方廠商以及開發(fā)者去做吧。所以接下來一定會有很多的廠商跟進,比如國內(nèi)阿里云之類的,他們根據(jù)官方的接口開發(fā)個Driver即可加入Machine的能力。
需要注意的是Machine是完全獨立于Docker項目的,目前的主要維護者是也是一位叫Ben的人,當(dāng)然還是使用Go語言。
Docker Swarm:Docker Swarm是一個支持Docker容器(由Docker Machine提供)的原生的集群服務(wù),它在分布式的應(yīng)用運行的主機提供了一個資源池。相比于手動管理資源的低效率以及易出錯的問題,Docker Swarm可以自動平衡容器工作負(fù)載和分配資源,它更加高效。在行業(yè)中,Docker Swarm是獨一無二的,它是專門為從開發(fā)到運維的一個持續(xù)的生命周期而設(shè)計的。開發(fā)者可以在生產(chǎn)環(huán)境的幾臺機器上測試集群服務(wù),同時運維團隊可以使用相同的工具在不同的架構(gòu)中的上百臺主機上擴展相同的應(yīng)用程序。Docker Swarm API支持插件化的集群實現(xiàn),以便客戶選擇其它的高可擴展的解決方案,比如Mesosphere需要管理上千個節(jié)點的容器。
Docker Swarm是一個Docker集群的控制工具,而對外部來說它就像一個虛擬的單主機。Swarm使用了標(biāo)準(zhǔn)的Docker API,所以Docker生態(tài)中的任何工具,比如Docker client、dokku、fig、krane、flynn、deis、docker-ui、shipyard、drone.io、Jenkins等,都能和Swarm對話。
Docker Compose:這項服務(wù)為開發(fā)者提供了應(yīng)用組合的能力,這些應(yīng)用基于獨立于任何底層基礎(chǔ)設(shè)施的分散的、可交互的Docker容器之上構(gòu)建,以便于分布式的應(yīng)用??梢噪S時隨地部署并遷移。Docker Compose通過一個簡單的YAML配置文件來定義分布式的應(yīng)用程序棧以及依賴,這樣一個復(fù)雜的過程通過幾次鍵盤輸入就可以完成。這個強大的功能也就意味著一個新的集群應(yīng)用可以在幾分鐘之內(nèi)構(gòu)建完成,而這在之前是不可思議的。
(消息來源;Container技術(shù)日報)