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