Docker生態不會重蹈Hadoop的覆轍

本文原做者是晏東(精靈雲Ghostcould創始人),在讀到《Docker生態會重蹈Hadoop的覆轍嗎?》文章後的我的思考,裏面的很多觀點也是很不錯的。docker

一、形態上的差別windows

2013年的時候,Hadoop確實很火,不過當時的感受是安裝和操做極其不方便,若是沒有Linux的基礎,可能須要個一週都不能搭起一個集羣。安全

所以,無論是國外仍是國內都出現了幫助方便搭建平臺的項目或者公司,當時國內的EasyHadoop,Intel,也包括咱們這個兼職小團隊。因爲咱們是作存儲和備份一體機,固然就是作Hadoop OS和Appliance,事實證實這個也是Cloudera的發展路線。記得當年還有一個朋友的團隊,也是作相似的Hadoop實施,免費拿去POC了半年,而後想作案例。在當時,能很快搭建環境就是牛逼,這個也是特定時期的結果。網絡

但真正大數據發揮出價值是同業務的結合,純作技術的是很難存活的,如今能有這麼多大數據公司,都必須同業務場景結合起來,也所以在大數據領域最缺的不是技術,缺的是即懂技術又懂業務的複合型人才。架構

Hadoop和Docker都是開源項目,這個確實不假。可是,在開源大行其道的今天,不能由於都是開源就能作類比。Hadoop是一個大數據的分析框架,能夠說是Google的大數據平臺的開源實現,它解決的只是一個雲計算領域特定的問題,即大量數據的存儲和計算問題。所以, 我認爲是一個PaaS層級的東西。爲用戶提供了一個看似人人均可以使用的開源平臺,但實際確實有不少的坑。這個也許正是開源的魅力,任何人均可以快速的使用,可是一旦深刻就會步入雷區,也所以纔有了這麼多的創業公司。負載均衡

而Docker是操做系統級虛擬化(容器虛擬化)的一種具體實現,容器虛擬化並非新技術,很早以前就有了。其使用的核心技術跟第一代虛擬化技術-Hypervisor是徹底不一樣的。所以我認爲Docker開源項目是一個IaaS層面的東西,固然經過開發能夠賦予它PaaS層的屬性。框架

2. Docker火爆的緣由的不一樣看法分佈式

Docker有不少的優點,具體的我就不講了,若是不清楚的能夠參照各大創業公司的步道Meetup。可是《Docker生態會重蹈Hadoop覆轍?》中,把其概括爲1)開發者能使用Docker;2)鏡像倉庫和開源,誰均可以用。微服務

對於這兩點,我不敢苟同。衆所周知,IaaS是一個更偏底層的服務。基於Hyper-V的虛擬化出現了AWS, 阿里雲等公有云的巨頭,也出現了不少私有云解決方案,而Docker的出現是爲了改變整個雲計算的基礎架構,筆者認爲這纔是Docker火的根本緣由。工具

咱們能夠看到,整個Docker的火爆,實際上是伴隨着公有云和混合雲的發展起來的。在公有云環境中,入門資源看似便宜,但一旦量大了其實很是昂貴,因此真正用的比較多的是低配實例。而Docker從技術層面賦予了公有云這種更大化利用資源的能力,固然私有環境中一樣也有這種優點。

另外,從第一天出現,Docker就是爲了標準化的應用交付,一旦一個標準創建,就會帶動整個後續的產業發展。容器技術看似只是簡單的進程隔離技術,但帶來的將是巨大的變革。這一點,我常常將操做系統的保護模式和非保護模式進行類比。在這種保護模式下,誕生了微軟帝國。

3. Docker的應用場景

雖然咱們也是一家Docker的創業公司,可是咱們歷來沒有吹噓Docker能夠運用到全部場景,並取代虛擬化。(這裏我要吐個槽,以前參加業內有一家友商的Meetup,確實是牛皮吹破了天,提出的口號是「一直被模仿,從未被超越」。而後還在某個聚餐時刻說某某公司抄襲他們的,可是要知道這個圈子實際上是很小的。我想問一下Tutum放在什麼地方呢?)。

話說回來,到底Docker能應用到哪些地方呢?——個人答案是全部基於Linux的服務型應用。

由於Docker容器自己就是Linux進程,運行服務型的,沒有桌面的應用是最好的。雖然包括Docker官方都在吹噓對windows的支持,可是不少人都是斷章取義,在windows上裝個虛擬機或者輕量級Linux虛擬機能叫支持嗎?真正的支持是在容器中運行windows應用程序,微軟一直在作這個事情,也放出了demo版,可是一旦容器運行的是windows程序,那麼整個現有docker生態裏的鏡像都將不可用。因此必定要區分,在容器裏面運行windows程序和在windows系統上運行容器。另外,容器從進程模型上看是daemon派生出來的子進程,是共用的操做系統,所以不能作到內核層級的隔離。換句話說,若是你的應用涉及內核(你本身的內核程序),是不適合使用Docker的。從其進程模型上,咱們能夠很顯然的得出, Docker適合運行全部的無桌面的,不涉及內核的服務型應用。所以,Docker若是要徹底替代虛擬化是不可能的。可是,雲技術和互聯網應用快速發展的今天又有多少是必定使用桌面呢,又有多少開發人員會去開發內核呢?經過BS架構能夠很好的支持可視化操做,而真正作內核開發的我以爲這個比例不超過10%吧。所以,客觀的說Docker毫不是雲計算的惟一技術,而是往後雲計算的關鍵技術。

4. 國內外Docker創業環境

1) 公司數量

根據2015年DockerCon的《The Docker and Container Ecosystem book》報告,當年在美國有190家公司和項目都在這個生態圈裏面。分別從事開發工具,應用部署和鏡像管理;運行環境,平臺及主機;容器管理,編排,調度,監控;IaaS;鏡像倉庫及安全;諮詢服務。因此國內若是隻有20家創業公司,真不算多。

2) 產品同質化

與國外各自專一在不一樣領域不一樣,國內確實存在產品同質化的問題。並非創業公司不想差別化,可是差別化須要資本市場更多的容忍時間,好比作容器安全和網絡,均可以作的很深,並且頗有前景。可是,一個特定垂直方向在現階段沒有辦法帶來直接的收益,沒法解決現金流的問題,那麼確定你們都會往右現金流的地方撲過去。

3) 過分宣傳投入

同《Docker生態會重蹈Hadoop覆轍?》指出的相同,創業公司中確實存在不少過渡的市場宣傳。作個專訪要錢吧,發個文章要錢吧,參加一場大型活動贊助要錢吧,就連翻譯個國外的文章都必須得給錢才能保證質量。不過,並非全部創業公司都把精力花在PR上,至少咱們80%是用在研發上面。

4) 開源貢獻

Docker旗下的開源項目衆多,通常Docker引擎是關注最多的。國內貢獻最多的是華爲,其餘公司真正能給Docker貢獻代碼的其實不多,咱們也是爲數很少擁有Committer的公司,不過總體國內創業公司的貢獻很少,有影響力的基本沒有。並非貢獻開源社區有多難,貢獻開源社區是一個很耗時耗精力的事情,創業公司本身的業務都忙不過來,哪兒有那麼多精力去貢獻啊,頂多遇到問題去解決一下。不過,若是一個公司都不是用Go語言開發,基本上也不大可能有對Docker的把控能力,有Docker把控能力意味着能夠出Hotfix,遇到問題不須要等官方出版本,咱們認爲這是比較關鍵的能力。也所以,咱們將Docker的內部控制看得很重,雖然不會刻意去貢獻,可是會對常見的各類問題作預案。

5. 開源的框架

目前主流的有K8S,Mesos和Swarm。Docker出現之後,不少公司都去鼓吹大規模集羣管理和調度,可是連ESXi都沒什麼大規模的機器須要調度,做爲一個創業公司或者第一個吃螃蟹的企業,真的會有那麼多機器讓你去調度管理嗎。

通常來講開源均可以加快產品上線,可是帶來的問題就是企業或者商家是否有把控這些開源項目的能力, K8S和Mesos都是偏重量級的框架。一線互聯網公司使用開源的路線無不是:開源->修改->自研,因此咱們公司從一開始就沒考慮用這些框架,而是使用本身研發的框架,這些框架也是咱們多年分佈式領域的積累。我以爲創業型公司,須要有更多的把控能力,包括Docker自己和操做系統。記得曾經參加某次Meetup,當有位老師在講他們如何經過Mesos, Docker,Registrator, Etcd等等來實現負載均衡的時候,我提了兩個簡單的問題他們就無從解決。

1)我在使用Docker中有時候會出現Daemon卡住無響應的狀況,請問怎麼解決?他的回答是,這個是Docker的問題,咱們解決不了。也多是操做系統的問題,咱們不解決。

2)你的負載均衡可以實現動態的伸縮嗎?他的回答是,只能人工手動來伸縮。聽到這些回答,我真是感到很是憤慨。這也許正是不少人說Docker創業公司浮躁的緣由。

Docker公司官方對K8S和Mesos的厭惡已經不是什麼祕密,也所以其不予餘力地推Swarm,甚至將Swarm直接內置到docker裏面。而Swarm是一個很是新的東西,咱們的內測就發現很多的問題。但因爲官方綁定如此之緊,以及從去年到今年的一系列收購,誰願意去抽出時間去給他們作嫁衣呢。好在有OCI標準的出現,做爲創業公司,咱們不須要被Docker公司綁架。說到這兒,我以爲有必要澄清一下Docker和Hadoop的對比關係。Docker開源項目能夠和Hadoop開源項目對應起來,Docker公司能夠和Cloudera對應起來,而Docker的DDC也許能夠和CDH對應,可是國內基本沒辦法用,這也是國內創業的機會。不過,我以爲這也許不是一個恰當的對應,真要對應也許和OpenStack更容易對應。

6. 商業模式

公有云確定是你們都想作的,可是公有云短時間內確定是巨頭的天下,並且你們都還在使用vm呢,要讓別人來使用CaaS頂多就是嘗新鮮。作公有PaaS接入,跟文章做者所說同樣,要想在國內賺開發者的錢真的不容易。並且作公有云,須要很大量的投入來下降邊際成本,我以爲國內創業公司目前都是玩不起的。因此,這也是不少企業都轉作私有云的緣由,這樣離現金流更近。

7. 投資

《Docker生態會重蹈Hadoop覆轍?》文中提出,Docker自己技術不成熟,商業成功不是一個短時間過程。這一點我仍是比較贊同的,可是從投資的角度,若是一個技術都是成熟的,就像作App同樣簡單,那基本也沒有什麼投資價值了。投資自己就是有風險的,也須要前瞻性。我接觸的國內外的朋友,即便是作VDI的,包括VMWare,都認可Docker會在將來2年給虛擬化市場帶來巨大沖擊。既然這是一個將來趨勢,那麼確定有其盈利的途徑,而不是看其短時間內是否盈利。至於具體途徑,那就各顯神通了。至於Docker和Mesos沒有盈利,其餘創業公司就不能盈利,我並不贊同這個理論。開源的運做模式,自己初期就沒有考慮盈利,並且做爲開源項目自己就是你們的,不存在是誰一家的,在國外沒有代言人,在國內也沒有。若是某一家公司企圖獨佔,確定會出現另外一個項目。Docker公司對開源項目的貢獻是巨大的,正是他們的貢獻才衍生出不少其餘的相關產業。若是一個投資機構,只是投Docker自己,我以爲是目光短淺的,他應該看重的是當Docker普及化後的相關產業。就像如今作大數據的公司同樣,若是隻是作平臺搭建,確定是死,可是若是和業務結合起來,那就是活。

8.企業CaaS建設

確實業內存在不少的能提供Docker管理軟件的公司,水平確定也是良莠不齊,整個Docker纔出來3年,版本更新這麼快,要說誰的特別出衆很難說。我想提一下Rancher的commit graph,裏面95%以上的提交是兩我的完成的,仍是外國人。因此我以爲企業在考慮管理軟件的時候,第一須要考慮的是研發定製能力和快速響應能力。第二,管理軟件是否經受了大規模的考驗,我以爲公有 CaaS和已有案例都是比較好的評判標準。第三,通常咱們實施項目的時候都不是簡單的搭建一個平臺就完事,咱們會經過諮詢,培訓,聯合開發,一期,二期的方式按部就班。Docker創業公司可能會消失,相比於不少PPT項目和政績大數據項目,這些公司至少會將先進的軟件開發理念,好比:敏捷,精益創業,微服務架構等等,傳遞給落後的國內IT企業。相比於國外諮詢公司動輒幾十萬的諮詢費用,國內的Docker公司不管從技術和水平方面都不落下風。因此,我以爲對待新興創業公司須要多一些寬容,我相信沒有一個Docker創業公司但願作一個爛工程。

Docker創業公司確定會面臨同行和傳統IT公司的競爭,不過在項目競爭方面,不少時候都是客戶主動電話聯繫的咱們,至少咱們不是那10家中的一員,整個將來市場這麼大,與其頭破血流往一個地方鑽,不如潛心研發產品。在樹立標杆上面,我以爲咱們自身就是一個很好的標杆,全容器化的公有CaaS平臺和全微服務的架構,正是所謂「Eat your own dog food」。

對於傳統企業使用Docker這一點上,咱們以爲是很是有必要的,如今你們都喜歡談工業4.0,而Docker能夠很好的提升企業的信息化建設。傳統的像IBM那一套,早就過期了,國家爲何要去IOE,就是要借鑑互聯網公司的先進技術和理念去趕跑那些暴利公司。早期的互聯網公司吃夠了IOE的虧,才摸索出一套行之有效的方法。既然如今絕大多數互聯網公司都在使用Docker了,傳統企業爲何不跟進呢。企業的容器化改造,實質是IT信息系統的升級,這是迫在眉睫的事。企業能夠根據本身的實際狀況選擇多種合做方式,好比自主研發,諮詢,聯合開發,以及第三方產品。《Docker生態會重蹈Hadoop覆轍?》的觀點我也很是贊同,若是要選擇廠商,須要綜合考慮公司的實力。不過,除去Mesos, K8S和Swarm以外,還有像咱們這種自主研發的,擁有絕對的系統把控能力。

總的來講,筆者認爲Docker生態圈的發展很難同Hadoop同樣,在將來的某一天當容器成爲標準應用交付手段的時候,全部雲的節點也許都將運行在容器中,咱們將看到愈來愈多的容器化服務。

相關文章
相關標籤/搜索