Rancher创始人谈Docker,创新愈发困难,未来将何去何从?
導(dǎo)讀:本文由Rancher Labs CEO及聯(lián)合創(chuàng)始人梁勝博士在參加DockerCon之前和之后寫的兩篇文章綜合整理而成。從各家容器編排方案均很不成熟的初期到三足鼎立的編排之戰(zhàn),到如今kubernetes似已全面勝利,梁勝博士作為整個發(fā)展歷程的參與者與見證者,回顧這幾年容器領(lǐng)域發(fā)展和Rancher的發(fā)展與選擇,分享了他的一些看法。
Docker近日宣布支持Kubetnetes,擁抱昔日對手,讓業(yè)界大為震驚。其實,這一點在回溯過去時就早有苗頭。縱觀Docker在編排領(lǐng)域的發(fā)展之路,大概這一決定是歷史的必然。這篇文章或許能從另一種視角帶你看看這個業(yè)界目前最熱議的話題。
目前Docker技術(shù)得到了廣泛應(yīng)用,在大量需求的驅(qū)動下,我們創(chuàng)造了Rancher,在過去三年DockerCon上,Rancher都得到了很多來自用戶的熱情歡迎和積極反響。
DockerCon的特別之處不僅在于它將主要行業(yè)玩家全都召集到了一塊,更是因為DockerCon是為數(shù)不多的、參會者中用戶數(shù)量遠(yuǎn)超供應(yīng)商數(shù)量的技術(shù)大會。能夠一下子遇到這么多用戶,無論是參會還是贊助都十分值得。和我們的用戶交談,聽取他們的想法,這激勵并啟發(fā)著我們更好地改進(jìn)Rancher產(chǎn)品。
Docker的技術(shù)革新正處于關(guān)鍵期,最近我們發(fā)布了Rancher 2.0 Tech Preview,該版本中我們把Rancher從基于Docker的產(chǎn)品轉(zhuǎn)變成基于Kubernetes的產(chǎn)品。雖然Docker作為一個應(yīng)用程序打包和運行的標(biāo)準(zhǔn)取得了極大成功,而Kubernetes在容器基礎(chǔ)設(shè)施、編排和生態(tài)系統(tǒng)方面都已經(jīng)超過了Docker,這也是我們選擇Kubernetes的原因。
容器基礎(chǔ)設(shè)施
基礎(chǔ)設(shè)施所涵蓋的范圍不僅只是打包和運行,它還包括存儲、網(wǎng)絡(luò)、負(fù)載均衡和安全。三年前,當(dāng)我們剛開始研發(fā)Rancher時,我們認(rèn)為Docker將會給容器網(wǎng)絡(luò)和存儲定義行業(yè)提供標(biāo)準(zhǔn)插件接口。盡管Docker和其他諸如SocketPlane(后被Docker收購)、Weveworks和ClusterHQ等早期先驅(qū)做了許多出色的工作,并且還得到了如思科、EMC和NetApp等行業(yè)領(lǐng)導(dǎo)者的大量支持,然而Docker接口,像libnetwork、容器網(wǎng)絡(luò)模型(CNM)和Docker volume插件還是沒能成為可行的標(biāo)準(zhǔn)。我們在Rancher中仍然在CNM和Docker volume插件方面做努力,不過還是遇到了難以逾越的挑戰(zhàn):
1、我們還沒有實現(xiàn)讓CNM在Docker的內(nèi)置網(wǎng)絡(luò)實現(xiàn)之外工作。比如,現(xiàn)在還不能創(chuàng)建一個脫離Swarm Mode的CNM實現(xiàn)。
2、我們沒法讓Rancher上的Docker volume插件在Docker守護(hù)進(jìn)程下保持可靠性。我記得有一個極具挑戰(zhàn)性的issue,#18504,它導(dǎo)致Docker守護(hù)進(jìn)程會不時地鎖住。暫時還不能解決它,也還沒找到解決方案。
在Rancher 1.2(2016年12月發(fā)布)中,通過切換到Kubernetes容器網(wǎng)絡(luò)接口(CNI)和Kubernetes Flexvolume存儲框架,我們已經(jīng)解決了這些問題。因為Rancher2.0是基于Kubernetes的,任何與Kubernetes集成的網(wǎng)絡(luò)、存儲、負(fù)載均衡和安全性方案都可以在Rancher上開箱即用。
容器編排
我們?yōu)镽ancher開發(fā)了名為Cattle的容器編排器來填補Docker Swarm早期缺失的一些功能,包括服務(wù)發(fā)現(xiàn)、DNS、服務(wù)升級和負(fù)載均衡器,希望當(dāng)Swarm更加完善之后,能夠最終替代Cattle。
然而,在2016年3月Rancher 1.0發(fā)布時,Swarm還沒準(zhǔn)備好。那個時候Kubernetes還未成熟,容器編排的未來也不是很明朗。因此我們決定,Rancher 1.0要同時支持多編排器:Cattle、Swarm、Kubernetes和Mesos。這樣一來,用戶便不會受限于某個特定的容器編排器,且Rancher的用戶都十分喜歡這一設(shè)計。
2016年6月時,Docker公布了Swarm Mode,我們都很為此而激動。Swarm Mode提供了早期Docker Swarm中缺少的許多功能,并且非常接近于Cattle所做的工作。于是我們很快在Rancher中添加了Swarm Mode的支持。
可是直到2017年初,Swarm Mode都沒有得到重視?;蛟S是早期的Swarm Mode實現(xiàn)上存在質(zhì)量問題,也可能是Kubernetes的發(fā)展已經(jīng)遙遙領(lǐng)先。絕大數(shù)Rancher用戶都在使用Cattle和Kubernetes。
Rancher 2.0建立在行業(yè)標(biāo)準(zhǔn)Kubernetes之上。Cattle不會消失——它將成為一種內(nèi)置的Rancher體驗,我們也會持續(xù)改進(jìn)它。通過2.0,我們提供了簡單的基于Kubernetes的Docker和Docker Compose用戶體驗。任何對Docker有基本了解的人都可以快速上手,等用戶熟練掌握之后還能體驗到更進(jìn)階的原生Kubernetes體驗。
容器生態(tài)系統(tǒng)
DockerCon Europe匯聚了大量響當(dāng)當(dāng)?shù)馁澲?#xff0c;也無疑吸引了越來越多的Docker用戶。我一直從DockerHub上尋找最新的用戶數(shù)據(jù)作為Docker增長的基準(zhǔn)。在2017年4月的DockerCon Austin上,這個數(shù)字是120億,并且在那之后還在增長。
構(gòu)成Kubernetes生態(tài)系統(tǒng)的公司其實差不多,不過參與模式卻完全不同。大多數(shù)的生態(tài)系統(tǒng)合作伙伴像我們一樣,認(rèn)為Docker是一種成熟的技術(shù),且擁有大量的用戶。而Kubernetes生態(tài)系統(tǒng)更加活躍,因為在這一生態(tài)系統(tǒng)中有很多積極的發(fā)展、創(chuàng)新和整合。
Docker將何去何從?
早在2016年的12月份,我就曾注意到Docker之父、Docker公司CTO Solomon Hykes在他的一篇blog中,將Docker的定位放在了和OpenShift(以及Rancher 2.0)同樣的層級,這層級是位于Kubernetes之上的??磥韽哪菚r起,Docker就已計劃構(gòu)建一個全新的、基于Kubernetes之上的Docker產(chǎn)品了?
在DockerCon EU上,我遇見的DockerCon的用戶、供應(yīng)商以及Dokcer公司的員工都給我留下了非常友好和親切的印象,與他們的交流也讓我收獲了很多。毫無疑問,這是一次組織充分的大會,對我而言也是一段有趣的經(jīng)歷。
在啟程參加大會之前,我曾對Docker公司的未來計劃與發(fā)展走向提出了一些疑問。而這次大會上,Docker之父、Docker公司CTO Solomon Hykes在他在keynote中的分享正好解答了我上面說的這些問題,這也毋庸置疑成為了演講中引起業(yè)界震動的焦點——Docker決定擁抱Kubernetes,而這也是此次DockerCon上最重磅的新聞。
押寶“現(xiàn)代化傳統(tǒng)應(yīng)用”項目MTA
然而,除此之外,如果說Docker公司還有一個動態(tài)就是他們非常希望參會者及業(yè)界知曉的,那一定是“現(xiàn)代化傳統(tǒng)應(yīng)用”項目(MTA,Modernize Traditional Applications)。MTA的想法很簡單,將傳統(tǒng)的Windows或Linux應(yīng)用程序打包成Docker容器,然后將應(yīng)用部署到現(xiàn)代云基礎(chǔ)架構(gòu)上并且實現(xiàn)一些資源節(jié)約。大會花了三場keynote(整整一天半的時間)來介紹MTA,Docker似乎把整個業(yè)務(wù)都押在這單一價值主張上了。
然而令我驚訝的是,MTA居然是DockerCon中唯一聚焦的業(yè)務(wù)案例。DockerCon的參會者和我說,他們期望Docker能夠描繪出一個更加完整的Docker商業(yè)機會的愿景和版圖。然而MTA并沒有吸引到大多數(shù)參會者,即使是我遇到的一些企業(yè)嘉賓也有比MTA更大的計劃。其實我更希望Docker能夠花更多的時間來加強容器在改變應(yīng)用程序開發(fā)方面上傳遞的價值,因為在我看來這是一個更大的商業(yè)機遇,不過有點可惜,Docker似乎并沒有這么做。
Docker技術(shù)是一種應(yīng)用打包的方式,它也是Docker公司從創(chuàng)立之初便開始的實踐,MTA便是建立在Docker這一最基礎(chǔ)的功能之上。但是Docker EE究竟有哪些具體的功能,能夠使得MTA工作得比以前更好?為什么Docker要專門為MTA提供解決方案?客戶還需要哪些工具來完成他們的MTA之旅?關(guān)于MTA的keynote并沒有解答以上這些疑問。(事實上,我相信大家還有更多未得到解答的疑問。)
幾點遺憾的地方
另外讓我感到遺憾的一點是,除了宣布支持Kubernetes外,Docker再沒發(fā)布什么和Swarm相關(guān)的動態(tài)和信息了。Rancher Labs作為Docker生態(tài)系統(tǒng)的合作伙伴,在這一情境下,我個人深感在基于Docker技術(shù)組件上實現(xiàn)創(chuàng)新愈發(fā)困難。我至今記得曾經(jīng)Docker發(fā)布一個又一個杰出的、創(chuàng)新的技術(shù)與產(chǎn)品的日子,像Docker Machine、Docker Swarm、Docker Compose、Docker network以及volume插件等等。那時的我們,在Docker發(fā)布這些新的創(chuàng)新之后,便會馬不停蹄地開始投入相應(yīng)的工作。時至今日,在容器技術(shù)領(lǐng)域依然有許多創(chuàng)新,只不過這些創(chuàng)新大多發(fā)生在Kubernetes以及CNCF生態(tài)系統(tǒng)中了。
我真心地希望,在整合Kubernetes之后,Docker能夠回到過去的狀態(tài),為業(yè)界帶來更多的技術(shù)創(chuàng)新。我依然認(rèn)為很少有公司像Docker這樣,既具有出色的創(chuàng)新能力,又專注于產(chǎn)品的可用性。我很期待Docker在下一次DockerCon的表現(xiàn)。
Rancher at DockerCon
Rancher Labs全新發(fā)布的新產(chǎn)品Rancher 2.0,一方面,把Rancher 提供的Kubernetes分發(fā)版的用戶體驗,從原生的Kubernetes UI修改到被全球客戶廣泛接受的Rancher UI,解決了業(yè)界遺留已久的Kubernetes原生UI易用性差的問題。另一方面,在產(chǎn)品中增加了可以納管其他廠商提供的Kubernetes分發(fā)版功能,如Ubuntu Kubernetes、Dell EMC Kubernetes、Google GKE等等,從而具備了同時管理多個Kubernetes集群的能力。
總結(jié)
以上是生活随笔為你收集整理的Rancher创始人谈Docker,创新愈发困难,未来将何去何从?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安图白河电费多少钱一度?
- 下一篇: 蟑螂也可以入药?!