你好富玷,我是張磊柱衔。我今天分享的主題是:小鯨魚(yú)大事記之群雄并起肪凛。
在上一篇文章中毫目,我剖析了 Docker 項(xiàng)目迅速走紅背后的技術(shù)與非技術(shù)原因,也介紹了Docker公司開(kāi)啟平臺(tái)化戰(zhàn)略的野心檐盟≌瘢可是桐臊,Docker 公司為什么在Docker 項(xiàng)目已經(jīng)取得巨大成功之后惨撇,卻執(zhí)意要重新走回那條已經(jīng)讓無(wú)數(shù)先驅(qū)們塵沙折戟的 PaaS 之路呢伊脓?
實(shí)際上,Docker 項(xiàng)目一日千里的發(fā)展勢(shì)頭魁衙,一直伴隨著公司管理層和股東們的陣陣擔(dān)憂(yōu)报腔。他們心里明白株搔,雖然 Docker 項(xiàng)目備受追捧,但用戶(hù)們最終要部署的纯蛾,還是他們的網(wǎng)站纤房、服務(wù)、數(shù)據(jù)庫(kù)翻诉,甚至是云計(jì)算業(yè)務(wù)炮姨。
這就意味著,只有那些能夠?yàn)橛脩?hù)提供平臺(tái)層能力的工具米丘,才會(huì)真正成為開(kāi)發(fā)者們關(guān)心和愿意付費(fèi)的產(chǎn)品剑令。而 Docker 項(xiàng)目這樣一個(gè)只能用來(lái)創(chuàng)建和啟停容器的小工具糊啡,最終只能充當(dāng)這些平臺(tái)項(xiàng)目的“幕后英雄”拄查。
而談到Docker 項(xiàng)目的定位問(wèn)題,就不得不說(shuō)說(shuō) Docker 公司的老朋友和老對(duì)手 CoreOS 了棚蓄。
CoreOS 是一個(gè)基礎(chǔ)設(shè)施領(lǐng)域創(chuàng)業(yè)公司堕扶。 它的核心產(chǎn)品是一個(gè)定制化的操作系統(tǒng),用戶(hù)可以按照分布式集群的方式梭依,管理所有安裝了這個(gè)操作系統(tǒng)的節(jié)點(diǎn)稍算。從而,用戶(hù)在集群里部署和管理應(yīng)用就像使用單機(jī)一樣方便了役拴。
Docker 項(xiàng)目發(fā)布后糊探,CoreOS 公司很快就認(rèn)識(shí)到可以把“容器”的概念無(wú)縫集成到自己的這套方案中,從而為用戶(hù)提供更高層次的 PaaS 能力河闰。所以科平,CoreOS很早就成了 Docker 項(xiàng)目的貢獻(xiàn)者,并在短時(shí)間內(nèi)成為了 Docker 項(xiàng)目中第二重要的力量姜性。
然而瞪慧,這段短暫的蜜月期到 2014 年底就草草結(jié)束了。CoreOS公司以強(qiáng)烈的措辭宣布與Docker 公司停止合作部念,并直接推出了自己研制的 Rocket(后來(lái)叫 rkt)容器弃酌。
這次決裂的根本原因,正是源于 Docker 公司對(duì) Docker 項(xiàng)目定位的不滿(mǎn)足儡炼。Docker 公司解決這種不滿(mǎn)足的方法就是妓湘,讓 Docker 項(xiàng)目提供更多的平臺(tái)層能力,即向 PaaS 項(xiàng)目進(jìn)化乌询。而這榜贴,顯然與 CoreOS 公司的核心產(chǎn)品和戰(zhàn)略發(fā)生了嚴(yán)重沖突。
也就是說(shuō)楣责,Docker 公司在 2014 年就已經(jīng)定好了平臺(tái)化的發(fā)展方向竣灌,并且絕對(duì)不會(huì)跟CoreOS在平臺(tái)層面開(kāi)展任何合作聂沙。這樣看來(lái),Docker 公司在 2014 年 12 月的 DockerCon 上發(fā)布Swarm 的舉動(dòng)初嘹,也就一點(diǎn)都不突然了及汉。
相較于 CoreOS 是依托于一系列開(kāi)源項(xiàng)目(比如Container Linux 操作系統(tǒng)、Fleet 作業(yè)調(diào)度工具屯烦、systemd 進(jìn)程管理和 rkt 容器)坷随,一層層搭建起來(lái)的平臺(tái)產(chǎn)品,Swarm 項(xiàng)目則是以一個(gè)完整的整體來(lái)對(duì)外提供集群管理功能驻龟。而 Swarm 的最大亮點(diǎn)温眉,則是它完全使用 Docker 項(xiàng)目原本的容器管理 API 來(lái)完成集群管理,比如:
單機(jī) Docker 項(xiàng)目:
1 $ docker run " 我的容器
多機(jī) Docker 項(xiàng)目:
1 $ docker run -H " 我的 Swarm 集群 API 地址 " " 我的容器"
所以在部署了 Swarm 的多機(jī)環(huán)境下翁狐,用戶(hù)只需要使用原先的Docker 指令創(chuàng)建一個(gè)容器类溢,這個(gè)請(qǐng)求就會(huì)被 Swarm 攔截下來(lái)處理,然后通過(guò)具體的調(diào)度算法找到一個(gè)合適的Docker Daemon運(yùn)行起來(lái)露懒。
這個(gè)操作方式簡(jiǎn)潔明了闯冷,對(duì)于已經(jīng)了解過(guò) Docker 命令行的開(kāi)發(fā)者們也很容易掌握。所以懈词,這樣一個(gè)“原生”的 Docker 容器集群管理項(xiàng)目一經(jīng)發(fā)布蛇耀,就受到了已有 Docker 用戶(hù)群的熱捧。而相比之下坎弯,CoreOS 的解決方案就顯得非常另類(lèi)纺涤,更不用說(shuō)用戶(hù)還要去接受完全讓人摸不著頭腦、新造的容器項(xiàng)目 rkt 了抠忘。
當(dāng)然撩炊,Swarm 項(xiàng)目只是 Docker 公司重新定義“PaaS”的關(guān)鍵一環(huán)而已。在 2014 年到2015年這段時(shí)間里褐桌,Docker 項(xiàng)目的迅速走紅催生出了一個(gè)非常繁榮的“Docker生態(tài)”衰抑。在這個(gè)生態(tài)里,圍繞著 Docker 在各個(gè)層次進(jìn)行集成和創(chuàng)新的項(xiàng)目層出不窮荧嵌。
而此時(shí)已經(jīng)大紅大紫到“不差錢(qián)”的Docker 公司呛踊,開(kāi)始及時(shí)地借助這波浪潮通過(guò)并購(gòu)來(lái)完善自己的平臺(tái)層能力。其中一個(gè)最成功的案例啦撮,莫過(guò)于對(duì) Fig 項(xiàng)目的收購(gòu)谭网。
要知道,F(xiàn)ig 項(xiàng)目基本上只是靠?jī)蓚€(gè)人全職開(kāi)發(fā)和維護(hù)的赃春,可它卻是當(dāng)時(shí) GitHub 上熱度堪比Docker 項(xiàng)目的明星愉择。
Fig 項(xiàng)目之所以受歡迎,在于它在開(kāi)發(fā)者面前第一次提出了“容器編排”(Container Orchestration)的概念。
其實(shí)锥涕,“編排”(Orchestration)在云計(jì)算行業(yè)里不算是新詞匯衷戈,它主要是指用戶(hù)如何通過(guò)某些工具或者配置來(lái)完成一組虛擬機(jī)以及關(guān)聯(lián)資源的定義、配置层坠、創(chuàng)建殖妇、刪除等工作,然后由云計(jì)算平臺(tái)按照這些指定的邏輯來(lái)完成的過(guò)程破花。
而容器時(shí)代谦趣,“編排”顯然就是對(duì) Docker 容器的一系列定義、配置和創(chuàng)建動(dòng)作的管理座每。而Fig的工作實(shí)際上非常簡(jiǎn)單:假如現(xiàn)在用戶(hù)需要部署的是應(yīng)用容器 A前鹅、數(shù)據(jù)庫(kù)容器 B、負(fù)載均衡容器C峭梳,那么 Fig 就允許用戶(hù)把 A舰绘、B、C 三個(gè)容器定義在一個(gè)配置文件中延赌,并且可以指定它們之間的關(guān)聯(lián)關(guān)系除盏,比如容器 A 需要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)容器 B叉橱。
接下來(lái)挫以,你只需要執(zhí)行一條非常簡(jiǎn)單的指令:
1$ fig up
Fig 就會(huì)把這些容器的定義和配置交給 Docker API 按照訪(fǎng)問(wèn)邏輯依次創(chuàng)建,你的一系列容器就都啟動(dòng)了窃祝;而容器 A 與 B 之間的關(guān)聯(lián)關(guān)系掐松,也會(huì)交給 Docker 的 Link 功能通過(guò)寫(xiě)入 hosts 文件的方式進(jìn)行配置。更重要的是粪小,你還可以在 Fig 的配置文件里定義各種容器的副本個(gè)數(shù)等編排參數(shù)大磺,再加上 Swarm 的集群管理能力,一個(gè)活脫脫的 PaaS 呼之欲出探膊。
Fig 項(xiàng)目被收購(gòu)后改名為 Compose杠愧,它成了 Docker 公司到目前為止第二大受歡迎的項(xiàng)目,一直到今天也依然被很多人使用逞壁。
當(dāng)時(shí)的這個(gè)容器生態(tài)里流济,還有很多令人眼前一亮的開(kāi)源項(xiàng)目或公司。比如腌闯,專(zhuān)門(mén)負(fù)責(zé)處理容器網(wǎng)絡(luò)的 SocketPlane 項(xiàng)目(后來(lái)被 Docker 公司收購(gòu))绳瘟,專(zhuān)門(mén)負(fù)責(zé)處理容器存儲(chǔ)的 Flocker 項(xiàng)目(后來(lái)被 EMC 公司收購(gòu)),專(zhuān)門(mén)給 Docker 集群做圖形化管理界面和對(duì)外提供云服務(wù)的Tutum 項(xiàng)目(后來(lái)被 Docker 公司收購(gòu))等等姿骏。
一時(shí)之間糖声,整個(gè)后端和云計(jì)算領(lǐng)域的聰明才俊都匯集在了這個(gè)“小鯨魚(yú)”的周?chē)瑸?Docker 生態(tài)的蓬勃發(fā)展獻(xiàn)上了自己的智慧。
而除了這個(gè)異常繁榮的蘸泻、圍繞著 Docker 項(xiàng)目和公司的生態(tài)之外琉苇,還有一個(gè)勢(shì)力在當(dāng)時(shí)也是風(fēng)頭無(wú)兩,這就是老牌集群管理項(xiàng)目 Mesos 和它背后的創(chuàng)業(yè)公司Mesosphere悦施。
Mesos 作為 Berkeley 主導(dǎo)的大數(shù)據(jù)套件之一翁潘,是大數(shù)據(jù)火熱時(shí)最受歡迎的資源管理項(xiàng)目,也是跟 Yarn 項(xiàng)目殺得難舍難分的實(shí)力派選手歼争。
不過(guò)拜马,大數(shù)據(jù)所關(guān)注的計(jì)算密集型離線(xiàn)業(yè)務(wù),其實(shí)并不像常規(guī)的 Web 服務(wù)那樣適合用容器進(jìn)行托管和擴(kuò)容沐绒,也沒(méi)有對(duì)應(yīng)用打包的強(qiáng)烈需求俩莽,所以 Hadoop、Spark等項(xiàng)目到現(xiàn)在也沒(méi)在容器技術(shù)上投下更大的賭注乔遮;但是對(duì)于 Mesos 來(lái)說(shuō)扮超,天生的兩層調(diào)度機(jī)制讓它非常容易從大數(shù)據(jù)領(lǐng)域抽身,轉(zhuǎn)而去支持受眾更加廣泛的 PaaS 業(yè)務(wù)蹋肮。
在這種思路的指導(dǎo)下出刷,Mesosphere 公司發(fā)布了一個(gè)名為Marathon 的項(xiàng)目,而這個(gè)項(xiàng)目很快就成為了 Docker Swarm 的一個(gè)有力競(jìng)爭(zhēng)對(duì)手坯辩。
雖然不能提供像 Swarm 那樣的原生 Docker API馁龟,Mesos 社區(qū)卻擁有一個(gè)獨(dú)特的競(jìng)爭(zhēng)力:超大規(guī)模集群的管理經(jīng)驗(yàn)。
早在幾年前漆魔,Mesos 就已經(jīng)通過(guò)了萬(wàn)臺(tái)節(jié)點(diǎn)的驗(yàn)證坷檩,2014 年之后又被廣泛使用在 eBay 等大型互聯(lián)網(wǎng)公司的生產(chǎn)環(huán)境中。而這次通過(guò) Marathon 實(shí)現(xiàn)了諸如應(yīng)用托管和負(fù)載均衡的 PaaS 功能之后改抡,Mesos+Marathon 的組合實(shí)際上進(jìn)化成了一個(gè)高度成熟的 PaaS 項(xiàng)目矢炼,同時(shí)還能很好地支持大數(shù)據(jù)業(yè)務(wù)。
所以阿纤,在這波容器化浪潮中句灌,Mesosphere 公司不失時(shí)機(jī)地提出了一個(gè)名叫“DC/OS”(數(shù)據(jù)中心操作系統(tǒng))的口號(hào)和產(chǎn)品,旨在使用戶(hù)能夠像管理一臺(tái)機(jī)器那樣管理一個(gè)萬(wàn)級(jí)別的物理機(jī)集群欠拾,并且使用 Docker 容器在這個(gè)集群里自由地部署應(yīng)用胰锌。而這,對(duì)很多大型企業(yè)來(lái)說(shuō)具有著非同尋常的吸引力清蚀。
這時(shí)匕荸,如果你再去審視當(dāng)時(shí)的容器技術(shù)生態(tài),就不難發(fā)現(xiàn) CoreOS 公司竟然顯得有些尷尬了枷邪。它的 rkt 容器完全打不開(kāi)局面榛搔,F(xiàn)leet 集群管理項(xiàng)目更是少有人問(wèn)津诺凡,CoreOS 完全被Docker公司壓制了。
而處境同樣不容樂(lè)觀的似乎還有 RedHat践惑,作為 Docker 項(xiàng)目早期的重要貢獻(xiàn)者腹泌,RedHat 也是因?yàn)閷?duì) Docker 公司平臺(tái)化戰(zhàn)略不滿(mǎn)而憤憤退出。但此時(shí)尔觉,它竟只剩下 OpenShift 這個(gè)跟Cloud Foundry 同時(shí)代的經(jīng)典 PaaS 一張牌可以打凉袱,跟 Docker Swarm和轉(zhuǎn)型后的 Mesos 完全不在同一個(gè)“競(jìng)技水平”之上。
那么侦铜,事實(shí)果真如此嗎专甩?
2014 年注定是一個(gè)神奇的年份。就在這一年的 6 月钉稍,基礎(chǔ)設(shè)施領(lǐng)域的翹楚Google 公司突然發(fā)力涤躲,正式宣告了一個(gè)名叫 Kubernetes 項(xiàng)目的誕生。而這個(gè)項(xiàng)目贡未,不僅挽救了當(dāng)時(shí)的CoreOS和 RedHat种樱,還如同當(dāng)年 Docker 項(xiàng)目的橫空出世一樣,再一次改變了整個(gè)容器市場(chǎng)的格局俊卤。
總結(jié)
我分享了 Docker 公司平臺(tái)化戰(zhàn)略的來(lái)龍去脈嫩挤,闡述了Docker Swarm 項(xiàng)目發(fā)布的意義和它背后的設(shè)計(jì)思想,介紹了 Fig(后來(lái)的Compose)項(xiàng)目如何成為了繼 Docker 之后最受矚目的新星消恍。
同時(shí)岂昭,我也和你一起回顧了 2014~2015 年間如火如荼的容器化浪潮里群雄并起的繁榮姿態(tài)。在這次生態(tài)大爆發(fā)中哺哼,Docker 公司和Mesosphere 公司佩抹,依托自身優(yōu)勢(shì)率先占據(jù)了有利位置。
但是取董,更強(qiáng)大的挑戰(zhàn)者們,即將在不久后紛至沓來(lái)无宿。
思考題
你所在團(tuán)隊(duì)有沒(méi)有在 2014~2015 年 Docker 熱潮中茵汰,推出過(guò)相關(guān)的容器產(chǎn)品或者項(xiàng)目?現(xiàn)在結(jié)局如何呢孽鸡?
歡迎你給我留言蹂午,也歡迎分享給更多的朋友一起閱讀。
文章回復(fù):
修煉
技術(shù)一流 還這么會(huì)寫(xiě)文章彬碱!
2018-08-30
王江華
不錯(cuò)豆胸,了解docker的來(lái)龍去脈,也了解了歷史巷疼,期待更新
2018-08-30
Backkom
docker生態(tài)維護(hù)的很好晚胡,這也是發(fā)展迅猛的重要原因,得開(kāi)發(fā)者得天下,一如android的發(fā)展
2018-08-30
blackpiglet
我是在15年中接觸的docker 和 k8s, 當(dāng)時(shí)公司的目標(biāo)是做出一個(gè)集成 ci cd 的 paas 平臺(tái)估盘,并統(tǒng)一內(nèi)部所有項(xiàng)目的開(kāi)發(fā)流程瓷患。但是投入不大,畢竟小公司遣妥,16年我就離開(kāi)了擅编,不清楚現(xiàn)在產(chǎn)品是否還健在。現(xiàn)在回想起來(lái)箫踩,那時(shí)候有了docker 人人都想搞paas爱态,至于公司實(shí)際是否需要,考慮的到?jīng)]有那么仔細(xì)境钟。這和現(xiàn)在微服務(wù)這波很像肢藐。
2018-08-30
作者回復(fù)
人人都愛(ài)pass,但落地嘛就是另一回事兒了
2018-08-31
子非魚(yú)
真是群雄并起吱韭,競(jìng)爭(zhēng)激烈啊吆豹,而反觀國(guó)內(nèi)…!
2018-08-31
作者回復(fù)
國(guó)內(nèi)也很激烈理盆,不過(guò)是在商業(yè)維度痘煤。
2018-08-31
@特
PaaS發(fā)展史真的是波瀾壯闊。我是2015年底才接觸Docker的猿规,2016年初接觸mesos和馬拉松衷快。結(jié)果還沒(méi)一個(gè)月我們項(xiàng)目就黃了,直接換成redhat的解決方案姨俩,接下來(lái)就入了openshift的坑出不去了?? 那個(gè)時(shí)候openshift已經(jīng)出到1.2了蘸拔。
2018-08-30
作者回復(fù)
不妨嘗試多學(xué)習(xí)kubernetes 的基礎(chǔ),openshift作為一個(gè)封裝自然也就簡(jiǎn)單多了
2018-08-30
eason2017
終于到k8s了
作者回復(fù)
別急环葵,咱們先聊容器
2018-08-31
換個(gè)ID過(guò)日子
看得我熱血沸騰调窍!
2018-09-13
作者回復(fù)
那就換熱血為動(dòng)力!
2018-09-13
李金洋
老師覺(jué)得下一個(gè)容器平臺(tái)的攪局者會(huì)是一個(gè)什么類(lèi)型的公司张遭,或者說(shuō)解決了當(dāng)前容器圈的什么痛點(diǎn)邓萨。感覺(jué)k8s已經(jīng)成為容器圈的標(biāo)準(zhǔn)了,但是復(fù)雜性真的挺高
2018-09-06
作者回復(fù)
linux復(fù)雜性也很高
2018-09-07
猿工匠
過(guò)癮菊卷,期待更新??
2018-08-30
fhchina
想要了解后續(xù)的標(biāo)準(zhǔn)化過(guò)程中缔恳,Docker分拆出的開(kāi)源產(chǎn)品與標(biāo)準(zhǔn)的關(guān)系與歷程,感覺(jué)又多又亂
2018-08-30
尖端科技
張老師洁闰,請(qǐng)教一下docker是否合適用來(lái)部署使用gpu這種資源的程序歉甚?docker部署的程序是適用于任何的程序部署?有沒(méi)有啥限制扑眉?
2018-08-30
作者回復(fù)
在學(xué)習(xí)了容器技術(shù)基礎(chǔ)之后纸泄,相信你自己自己就能回答這個(gè)問(wèn)題了
2018-08-30
AhaThinking
文章看的真是酣暢淋漓赖钞,,刃滓,這文筆仁烹,就像看歷史小說(shuō)一樣,每一集還有伏筆讓人欲罷不能
2018-11-12
Geek_d70aba
15年公司實(shí)踐過(guò)docker項(xiàng)目咧虎,并且在一個(gè)現(xiàn)場(chǎng)上線(xiàn)運(yùn)行過(guò)卓缰。但是畢竟是單服務(wù)器運(yùn)行,沒(méi)有體現(xiàn)出docker的優(yōu)勢(shì)砰诵,反而導(dǎo)致了其他更多的問(wèn)題征唬,目前公司又展開(kāi)了k8s的研究,希望這次能成功茁彭。
碼字的路人
很好的了解了 2014-2015的 DOCKER的歷程总寒,更好的了解了什么叫容器 以及一些 容器使用
的工具等。
2018-10-08
song
mesos的兩級(jí)調(diào)度是什么意思理肺,怎么理解摄闸,是哪兩級(jí)?
2018-10-01
作者回復(fù)
framework加scheduler妹萨,可以看下mesos論文
2018-10-01
憨先生
公司是去年開(kāi)始開(kāi)發(fā)平臺(tái)級(jí)服務(wù)年枕,也引入了容器docker的概念,目前一切都還好
2018-09-27
wilson
目前公司做語(yǔ)音評(píng)測(cè)乎完,對(duì)cpu和內(nèi)存要求較高熏兄,尤其是cpu,敢問(wèn)树姨,可用docker來(lái)跑這種應(yīng)用嗎摩桶?
2018-09-23
作者回復(fù)
適合
2018-09-23
Kame
15接觸docker,由于各種原因吧帽揪、最終沒(méi)能上生產(chǎn)硝清、只是測(cè)試開(kāi)發(fā),現(xiàn)在k8s出來(lái)了台丛,又可以重新搞起
2018-09-17
糖餅餅屋
14-15年的時(shí)候耍缴,團(tuán)隊(duì)推出過(guò)paas項(xiàng)目,技術(shù)選型是docker+mesos+marathon挽霉,哎結(jié)果不到兩年,k8s就已經(jīng)如火如荼变汪,資源調(diào)度技術(shù)組件不換都不行……