2.0.2 容器技術(shù)基礎(chǔ)歷史(2)

Docker項(xiàng)目備受追捧,但用戶最終要部署的還是他們自己的網(wǎng)站,服務(wù),數(shù)據(jù)庫(kù),這就意味著,那些能夠?yàn)橛脩籼峁┢脚_(tái)層能力的工具才會(huì)真正成為開(kāi)發(fā)者們?cè)敢飧顿M(fèi)的產(chǎn)品。而Docker項(xiàng)目這樣一個(gè)只能用來(lái)創(chuàng)建和啟停容器的小工具,最終只能充當(dāng)這些平臺(tái)的幕后英雄。

Docker的老朋友兼對(duì)手CoreOS,是一個(gè)基礎(chǔ)設(shè)施領(lǐng)域公司,核心產(chǎn)品是定制化的操作系統(tǒng),用戶可以按照分布式集群的方式,管理所有安裝這個(gè)操作系統(tǒng)的節(jié)點(diǎn)。從而用戶在集群里部署和管理應(yīng)用就像單機(jī)一樣方便。
Docker項(xiàng)目公布后,CoreOS認(rèn)識(shí)到可以把容器的概念無(wú)縫的集成到自己的方案中,成為Docker項(xiàng)目的貢獻(xiàn)者。
但在2014年底,CoreOS公司停止了與Docker公司的合作,并直接推出自己研制的Rocker(rkt容器).

相較于CoreOS是依托于一系列開(kāi)源項(xiàng)目(例如Container Linux操作系統(tǒng),F(xiàn)leet作業(yè)調(diào)度工具,systemd進(jìn)程管理和rkt容器),一層層搭建起來(lái)的平臺(tái)產(chǎn)品,Swarm項(xiàng)目則是一個(gè)完整的整體來(lái)對(duì)外提供集群管理功能。

單機(jī)Docker項(xiàng)目

docker run "my_image"

多機(jī)Docker項(xiàng)目

docker run -H "my_Swarm_Cluster_API_Address " " my_image"

操作方式簡(jiǎn)單明了,Swarm通過(guò)具體的調(diào)度算法找到一個(gè)合適的Docker Daemon 運(yùn)行起來(lái)。并開(kāi)始受到Docker用戶群的熱捧

Docker公司及時(shí)通過(guò)并購(gòu)?fù)晟谱约旱钠脚_(tái)層能力,其中并購(gòu)了Fig項(xiàng)目

Fig項(xiàng)目,第一次提出了容器編排(Container Orchestration)的概念.

編排主要是指用戶如何通過(guò)某些工具或者配置來(lái)完成一組虛擬機(jī)以及關(guān)聯(lián)資源的定義,配置,創(chuàng)建,刪除等工作,然后由云平臺(tái)來(lái)按照邏輯完成。
而對(duì)于Docker容器而言,就是一系列定義,配置和創(chuàng)建動(dòng)作的管理。假如用戶需要部署的是應(yīng)用容器A,數(shù)據(jù)庫(kù)容器B,負(fù)載均衡容器C,那么Fig就允許用戶把A,B,C三個(gè)容器定義在一個(gè)配置文件中,并制定他們之間的關(guān)聯(lián)關(guān)系(如 容器A 訪問(wèn) 數(shù)據(jù)庫(kù)容器B)。

//通過(guò)指令
fig up

Fig就會(huì)把這些容器的定義和配置交給Docker API按照邏輯一次創(chuàng)建,你的一系列容器就都啟動(dòng)了。
而容器A與B之間的關(guān)聯(lián)關(guān)系,也會(huì)交給Docker 的link功能通過(guò)寫(xiě)入hosts文件的方式進(jìn)行配置。而且可以在Fig配置文件里定義各種容器的副本個(gè)數(shù)等相應(yīng)參數(shù),再加上PaaS的集群管理能力,完成一個(gè)類(lèi)似PaaS的平臺(tái)

Fig后來(lái)改名為Compose。

除此之外,開(kāi)源項(xiàng)目中, 專(zhuān)門(mén)負(fù)責(zé)處理容器網(wǎng)絡(luò)的SockerPlane(被Docker收購(gòu)),專(zhuān)門(mén)處理容器存儲(chǔ)的Flocker項(xiàng)目(被EMC收購(gòu)),專(zhuān)門(mén)給Docker集群做圖形化管理界面和對(duì)外提供云服務(wù)的Tutum項(xiàng)目(被Docker收購(gòu))

另一個(gè)挑戰(zhàn)者,老牌集群管理項(xiàng)目Mesos和它背后的創(chuàng)業(yè)公司Mesosphere.
Mesos作為Berkeley主導(dǎo)的大數(shù)據(jù)套件之一,是大數(shù)據(jù)火熱時(shí)最受歡迎的資源管理項(xiàng)目,也是跟Yarn項(xiàng)目難分伯仲的對(duì)手。
大數(shù)據(jù)所關(guān)注的計(jì)算密集型離線業(yè)務(wù),其實(shí)并不像常規(guī)Web服務(wù)那樣適合用容器進(jìn)行托管和擴(kuò)容,也沒(méi)有對(duì)應(yīng)用打包的強(qiáng)烈需求
所以hadoop,spark等項(xiàng)目也并未在容器技術(shù)上投下更大的資本。但是對(duì)于Mesos,天生的兩層調(diào)度機(jī)制,讓它更容易適應(yīng)受眾更廣泛的PaaS業(yè)務(wù)
很快,Mesosphere公司發(fā)布了名為Marathon的項(xiàng)目,并成為了Docker Swarm的競(jìng)爭(zhēng)對(duì)手。
mesos擁有自身的獨(dú)特競(jìng)爭(zhēng)力,超大規(guī)模集群的管理經(jīng)驗(yàn)
mesos在幾年前通過(guò)了萬(wàn)臺(tái)節(jié)點(diǎn)驗(yàn)證,2014年后,被用在eBay等大型互聯(lián)網(wǎng)公司的生產(chǎn)環(huán)境中。
Mesos + Marathon 的組合進(jìn)化成高度成熟的PaaS項(xiàng)目,同時(shí)還能很好地支持大數(shù)據(jù)業(yè)務(wù)。旨在是用戶能夠管理一臺(tái)機(jī)器那樣管理一個(gè)萬(wàn)級(jí)別的物理集群。

同在這一年6月,Google公司宣布Kubernetes項(xiàng)目的誕生。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容