Docker生態(tài)會(huì)重蹈Hadoop的覆轍嗎?
一、Docker的興起和Hadoop何其相似
2015年說(shuō)是Docker之年不為過(guò),Docker熱度高漲,IT從業(yè)人員要是說(shuō)自己不知道Docker都不好意說(shuō)自己是做IT的。2016年開(kāi)始容器管理、集群調(diào)度成為熱點(diǎn),K8s開(kāi)始成為熱點(diǎn)。但這一幕和2013年的Hadoop大數(shù)據(jù)何其相似,當(dāng)年你要說(shuō)自己不知道大數(shù)據(jù),或是知道大數(shù)據(jù)不知道Hadoop,那必然招來(lái)鄙視的眼光。
云計(jì)算喊了這么久,從來(lái)沒(méi)有像Docker這么火過(guò),究其原因不外乎兩條:
1、開(kāi)發(fā)者能夠用Docker,開(kāi)發(fā)者要一個(gè)開(kāi)發(fā)環(huán)境,總會(huì)涉及到種種資源,比如數(shù)據(jù)庫(kù),比如消息中間件,去裝這些東西不是開(kāi)發(fā)人員的技能,是運(yùn)維人員的技能。而用Docker去Pull一個(gè)mySQL鏡像,或是Tomcat鏡像,或是RabbitMQ鏡像,簡(jiǎn)易輕松,幾乎是零運(yùn)維。做好了應(yīng)用代碼,打一個(gè)Docker鏡像給測(cè)試或是運(yùn)維人員,避免了從前打個(gè)程序包給測(cè)試或是運(yùn)維人員,測(cè)試或運(yùn)維人員要部署、配置應(yīng)用,還得反反復(fù)復(fù)來(lái)麻煩開(kāi)發(fā)人員,現(xiàn)在好了,丟個(gè)Docker鏡像過(guò)去,讓運(yùn)維人員跑鏡像就可以,配置在鏡像里基本都做好了。
這正好滿(mǎn)足了DevOps的要求,所以DevOps也一下熱起來(lái)了。開(kāi)發(fā)者是一個(gè)巨大的市場(chǎng),是海量的個(gè)體,通過(guò)類(lèi)似于病毒式的傳銷(xiāo),Docker一下在開(kāi)發(fā)者中熱起來(lái)了。
2、鏡像倉(cāng)庫(kù)和開(kāi)源,誰(shuí)都可以用,Docker鏡像庫(kù)非常豐富,誰(shuí)做好一個(gè)鏡像都可以往公有倉(cāng)庫(kù)推送,開(kāi)發(fā)人員需要一個(gè)環(huán)境的時(shí)候,可以到Docker鏡像倉(cāng)庫(kù)去查,有海量的選擇,減少了大量無(wú)謂的環(huán)境安裝工作。而通過(guò)開(kāi)源,又開(kāi)始大規(guī)模傳播。
我們?cè)賮?lái)回顧看看2010-2013年,大數(shù)據(jù)的名詞火遍大江南北,各行各業(yè)都在談大數(shù)據(jù),但是落到技術(shù)上就是Hadoop,還記得2012年的時(shí)候,和Hadoop沒(méi)啥毛關(guān)系的VMWare也趕緊的做了一個(gè)虛機(jī)上部署Hadoop的serengeti,誰(shuí)家產(chǎn)品要是和Hadoop不沾點(diǎn)邊,不好意思說(shuō)自己是IT公司。Hadoop當(dāng)年的熱度絕對(duì)不亞于2014-2015的Docker。而且時(shí)間上有一定的連續(xù)性,2014年開(kāi)始,Hadoop熱度達(dá)到頂點(diǎn),開(kāi)始逐漸降溫,標(biāo)志事件就是Intel投資Cloudera。而Docker是從2014年開(kāi)始熱度升高的。
再看Hadoop為何在2010年前后開(kāi)始熱起來(lái),之前的大數(shù)據(jù)都是數(shù)據(jù)倉(cāng)庫(kù),是昂貴的企業(yè)級(jí)數(shù)據(jù)分析并行數(shù)據(jù)庫(kù),而Hadoop是廉價(jià)的大數(shù)據(jù)處理模式,通過(guò)開(kāi)源和X86廉價(jià)硬件,使得Hadoop可以大規(guī)模使用,而互聯(lián)網(wǎng)時(shí)代產(chǎn)生的海量數(shù)據(jù)雖然垃圾居多,但是沙里淘金,也能淘出點(diǎn)價(jià)值,Hadoop正好迎合了這兩個(gè)需求,雖然Hadoop的無(wú)論是功能還是性能遠(yuǎn)比MPP數(shù)據(jù)庫(kù)差,但做簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢(xún)、簡(jiǎn)單數(shù)據(jù)統(tǒng)計(jì)分析還是可以勝任的,事實(shí)上,到目前為止,大多數(shù)的Hadoop應(yīng)用也就是數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢(xún)和簡(jiǎn)單的數(shù)據(jù)統(tǒng)計(jì)分析、ETL的業(yè)務(wù)處理。
Docker和Hadoop的熱起來(lái)的原因不同,但是現(xiàn)象是差不多,開(kāi)源和使用者群體大是共同要素。
二、Hadoop從狂熱走向了理性
Hadoop最熱的時(shí)候,幾乎就是要replace所有數(shù)據(jù)庫(kù),連Oracle也面臨了前所未有的沖擊,甚至Hadoop成了去IOE的Oracle的使命之一。在狂熱的那個(gè)階段,客戶(hù)怎么也得做一兩個(gè)大數(shù)據(jù)項(xiàng)目,否則會(huì)被同行瞧不起,各IT廠商也必須推出大數(shù)據(jù)產(chǎn)品,否則可能成為IT過(guò)時(shí)的典范,這不IBM成立了專(zhuān)門(mén)的大數(shù)據(jù)部門(mén),打造了一個(gè)以Hadoop為核心的龐大的大數(shù)據(jù)解決方案。
Intel雖然是做芯片的,但是大數(shù)據(jù)必須摻和,成立大數(shù)據(jù)部門(mén),做Intel Hadoop 。連數(shù)據(jù)庫(kù)的老大Oracle也憋不住了,做了個(gè)大數(shù)據(jù)一體機(jī)。
任何曾經(jīng)狂熱的新技術(shù)都會(huì)走向理性,Hadoop也不例外,只不過(guò),這個(gè)進(jìn)程還比較快。隨著大數(shù)據(jù)的大躍進(jìn),隨著Hadoop的應(yīng)用越來(lái)越多,大家發(fā)現(xiàn)在被夸大的場(chǎng)景應(yīng)用大數(shù)據(jù)效果并不好,只在特定場(chǎng)景有效,Hadoop進(jìn)入理性發(fā)展階段,比如一開(kāi)始Hadoop據(jù)取代MPP數(shù)據(jù)庫(kù),取代數(shù)據(jù)倉(cāng)庫(kù),取代Oracle,完美支持SQL等等均基本成為泡影。這其實(shí)本來(lái)是一個(gè)常識(shí),任何技術(shù)都有其應(yīng)用場(chǎng)景,夸大應(yīng)用場(chǎng)景,任意擴(kuò)展應(yīng)用場(chǎng)景只會(huì)傷害這個(gè)技術(shù)的發(fā)展。
“這和目前無(wú)限夸大Docker的應(yīng)用場(chǎng)景有異曲同工之妙,比如Docker向下取代虛擬化,Docker向上取代PaaS之類(lèi),幾乎成了云計(jì)算的唯一技術(shù),這種論調(diào)一直充斥各種Meetup/論壇。雖然技術(shù)從夸大到理性需要時(shí)間,但是理性不會(huì)總是遲到。
Hadoop技術(shù)在發(fā)展,大數(shù)據(jù)的相關(guān)技術(shù)也在發(fā)展,Hadoop一直被詬病的處理速度慢,慢慢的被Spark/Storm等解決,特別在流數(shù)據(jù)處理領(lǐng)域。
所以,時(shí)至今日,人們對(duì)Hadoop的態(tài)度趨于理性,它只適合在特定場(chǎng)景使用,可是,當(dāng)初那些在Hadoop不太適用的場(chǎng)景使用了Hadoop的客戶(hù)交了學(xué)費(fèi)的事情估計(jì)沒(méi)人再提了。Docker估計(jì)也是一樣的,總有在夸大的場(chǎng)景中交學(xué)費(fèi)的客戶(hù),可是只是客戶(hù)沒(méi)眼光嗎?和無(wú)限夸大某種技術(shù)的布道師無(wú)關(guān)么?
再反觀大數(shù)據(jù)和Docker在全球的發(fā)展,在美國(guó),無(wú)論是Hadoop和Docker并沒(méi)有像國(guó)內(nèi)這么狂熱過(guò)。Hadoop技術(shù)來(lái)源于Google,成型于Yahoo(DougCutting),而炒作卻是在國(guó)內(nèi)。同樣,Docker也在走這么個(gè)流程,在美國(guó)沒(méi)有這么多的Docker創(chuàng)業(yè)公司,主要就是Docker,然后各大廠商支持,創(chuàng)業(yè)公司和創(chuàng)投公司都知道,沒(méi)有自己的技術(shù)或是技術(shù)受制于人的公司不值得投資,既然Docker一家獨(dú)大,再去Docker分一杯羹會(huì)容易嗎?
而國(guó)內(nèi)二三十家的Docker創(chuàng)業(yè)公司,沒(méi)有一家能對(duì)Docker/K8s源碼有讓人醒目的貢獻(xiàn)(反倒是華為在K8s上有些貢獻(xiàn)),但是都在市場(chǎng)上拼嗓門(mén),不是比誰(shuí)的技術(shù)有潛力最有市場(chǎng),而是比誰(shuí)最能布道誰(shuí)嗓門(mén)大,誰(shuí)做的市場(chǎng)活動(dòng)多,某Docker創(chuàng)業(yè)公司據(jù)說(shuō)80%的資金用在市場(chǎng)宣傳、Meetup上,而且不是個(gè)別現(xiàn)象,是普遍現(xiàn)象。反應(yīng)了某些Docker創(chuàng)業(yè)者的浮躁心態(tài)。
三、Hadoop生態(tài)圈的演進(jìn)
Hadoop興起和生態(tài)圈緊密相關(guān),Hadoop的生態(tài)圈的公司主要是兩大類(lèi)——
“第一類(lèi)是Hadoop的各個(gè)發(fā)行版公司,如Cloudera、HortonWorks、MapR、Intel、IBM等,第二類(lèi)基于Hadoop做各行業(yè)的大數(shù)據(jù)項(xiàng)目實(shí)施或大數(shù)據(jù)應(yīng)用和工具,如Tableau、Markerto、新炬、環(huán)星等
隨著大數(shù)據(jù)的熱度提升,Hadoop生態(tài)圈的兩大類(lèi)公司蓬勃發(fā)展,但是市場(chǎng)有限,市場(chǎng)還沒(méi)有成熟,競(jìng)爭(zhēng)就很激烈,特別是第二類(lèi)做項(xiàng)目實(shí)施的企業(yè),那就只能靠燒錢(qián)。
問(wèn)題是如果是消費(fèi)者市場(chǎng),通過(guò)燒錢(qián)先把市場(chǎng)占領(lǐng),然后再通過(guò)其他手段收費(fèi)盈利,比如淘寶通過(guò)向賣(mài)家收費(fèi)盈利,滴滴打車(chē)之類(lèi)的未來(lái)可以通過(guò)讓司機(jī)花的米搶好單、大單可以實(shí)現(xiàn)盈利,而Hadoop是企業(yè)級(jí)市場(chǎng),通過(guò)虧錢(qián)樹(shù)立案例標(biāo)桿,然后復(fù)制,這條路走的并不順利,因?yàn)閺?fù)制案例的時(shí)候會(huì)碰到競(jìng)爭(zhēng),一開(kāi)始就低價(jià)做爛的市場(chǎng),客戶(hù)不愿花錢(qián),總有低價(jià)者搶市場(chǎng),復(fù)制案例往往變成低價(jià)競(jìng)爭(zhēng)。低價(jià)競(jìng)爭(zhēng)很難把項(xiàng)目實(shí)施好,基本是個(gè)多輸?shù)哪J剑蛻?hù)并沒(méi)有得到自己預(yù)期的大數(shù)據(jù)項(xiàng)目?jī)r(jià)值,或是打折的價(jià)值,實(shí)施廠商沒(méi)賺錢(qián),留不住人,招不到好的人才。
這類(lèi)生態(tài)圈公司的發(fā)展趨勢(shì)是最終會(huì)留下少數(shù)幾家公司,規(guī)模做大,其他的公司會(huì)被淘汰,現(xiàn)在還沒(méi)有走出各個(gè)集成商苦苦支撐的時(shí)代。
對(duì)于第一類(lèi)做發(fā)行版的Hadoop廠商,在燒錢(qián)進(jìn)入后期階段,日子也開(kāi)始不好過(guò),因?yàn)轫?xiàng)目實(shí)施廠商的大多選擇不用發(fā)行版,只用開(kāi)源,發(fā)行版和相應(yīng)的付費(fèi)支持很難賣(mài)出量,進(jìn)而難以盈利。資本市場(chǎng)成了繼續(xù)燒錢(qián)的救命稻草,Hortonworks第一個(gè)上市, 16元的發(fā)行價(jià),大數(shù)據(jù)概念蜜月期一過(guò),要開(kāi)始考察業(yè)績(jī)的時(shí)候,股價(jià)步入漫漫熊途,到現(xiàn)在只有9元左右。CloudEra雖然沒(méi)有上市,但是已經(jīng)融資12億美元,目前在Hadoop發(fā)行版,CloudEra和Hortonworks占據(jù)了最大的市場(chǎng),特別是CloudEra的市場(chǎng)更大,即使CloudEra有巨大的Hadoop市場(chǎng)和技術(shù)優(yōu)勢(shì),CloudEra到現(xiàn)在也不敢上市。
現(xiàn)實(shí)很殘酷,CloudEra的盈利并不讓人滿(mǎn)意,現(xiàn)在上市,資本市場(chǎng)不會(huì)給出個(gè)好股價(jià),但是CloudEra的困境是如果遲遲不上市,大數(shù)據(jù)熱點(diǎn)成為非熱點(diǎn),資本市場(chǎng)那就考察的是盈利能力—市盈率,不是市夢(mèng)率了,而CloudEra的盈利能力在目前狀態(tài)能讓資本市場(chǎng)滿(mǎn)意嗎?雖然Hortonworks上市的時(shí)候趕上了市夢(mèng)率。
技術(shù)的演進(jìn)同樣在影響發(fā)行版的Hadoop廠商,Hadoop從1.0到2.0,技術(shù)有較大的改進(jìn),Yarn取代Map-Reduce,原來(lái)眾多的發(fā)行版面臨著自己對(duì)Hadoop 1.0的定制如何合并到Hadoop 2.0去的問(wèn)題,定制的越多,合并的難度越大;定制的越少,和開(kāi)源沒(méi)啥區(qū)別,體現(xiàn)不出價(jià)值,這是發(fā)行版面對(duì)的兩難問(wèn)題。
Hadoop 1.0到2.0的升級(jí)成為一個(gè)重要的轉(zhuǎn)折點(diǎn)— Hadoop從1.0到2.0直接導(dǎo)致Intel的發(fā)行版出局,Intel的Hadoop部門(mén)裁撤銷(xiāo),Intel廢棄自己的Hadoop轉(zhuǎn)而直接投資CloudEra。因?yàn)镮ntel對(duì)Hadoop 1.0做了很多的定制、優(yōu)化,這些定制優(yōu)化本來(lái)一直是Intel宣稱(chēng)的競(jìng)爭(zhēng)技術(shù)優(yōu)勢(shì),現(xiàn)在1.0到2.0,立馬優(yōu)勢(shì)變劣勢(shì),定制越多合并到新版本越難合并,而Hadoop不是Intel的主業(yè),所以Intel權(quán)衡利弊,及時(shí)止損,放棄了自家的Hadoop,選擇投資CloudEra。對(duì)Intel Hadoop客戶(hù)而言,要吸取的教訓(xùn)是買(mǎi)產(chǎn)品一定要買(mǎi)賣(mài)家的核心產(chǎn)品,即使是大賣(mài)家,其邊緣產(chǎn)品很容易被拋棄,受傷的是客戶(hù)。這個(gè)道理其實(shí)是個(gè)大概率道理,可是吃這種虧的客戶(hù)不會(huì)絕跡。
Hadoop發(fā)行版廠商面臨一樣的趨勢(shì)潮流——留下不超過(guò)3家Hadoop發(fā)行商,其他的都會(huì)被淘汰。
再看大數(shù)據(jù)的應(yīng)用和生態(tài)圈的公司,云端營(yíng)銷(xiāo)服務(wù)公司Marketo,13元的IPO價(jià)格,趁著大數(shù)據(jù)的東風(fēng),很快就飛到了45,隨后熊途漫漫,在2016年2月份跌破發(fā)行價(jià)。和HortonWorks相比,Marketo是大數(shù)據(jù)的應(yīng)用,是能通過(guò)大數(shù)據(jù)直接產(chǎn)生營(yíng)收的,而且業(yè)績(jī)也確實(shí)比Hortonworks要好,但是回天無(wú)力,持續(xù)虧損,隨后被私募公司Vista Equity Partners收購(gòu)。Tableau其實(shí)和Hadoop關(guān)系不大,當(dāng)初接Hadoop東風(fēng)股價(jià)飆起,現(xiàn)在也是熊途漫漫。
四、Docker的生態(tài)圈
歷史不會(huì)簡(jiǎn)單的重復(fù),但是有驚人的相似!
Docker的生態(tài)圈和Hadoop的生態(tài)圈類(lèi)似。 Docker的生態(tài)圈也分為兩大類(lèi),第一類(lèi)就是Mesosphere\Google這類(lèi)做Docker的企業(yè)運(yùn)行集群管理,類(lèi)似于Hadoop的發(fā)行版的廠商。第二類(lèi)是做Docker的項(xiàng)目實(shí)施或是做Docker開(kāi)發(fā)者公有云,類(lèi)似于Hadoop的項(xiàng)目實(shí)施廠商。 Docker的流行開(kāi)始于開(kāi)發(fā)者,也是在開(kāi)發(fā)者中傳播,真正進(jìn)入企業(yè)級(jí)生產(chǎn)系統(tǒng)的很少,由于Docker天生就是從開(kāi)發(fā)者起家的,缺乏進(jìn)入企業(yè)的基因,Docker的設(shè)計(jì)就不是運(yùn)行于企業(yè)級(jí)環(huán)境下。
“可是從開(kāi)發(fā)者身上很難賺錢(qián),這已經(jīng)成為共識(shí)了,如果想從開(kāi)發(fā)者身上賺錢(qián),那開(kāi)發(fā)者都跑路了。Docker也意識(shí)到這點(diǎn),所以Docker在2016開(kāi)年就提出,要進(jìn)入企業(yè)級(jí)—“Ready for Production”,但是理想是理想,理想和現(xiàn)實(shí)之間需要跨越巨大的鴻溝。
Docker進(jìn)入企業(yè)級(jí)的需求,造就了第一類(lèi)的生態(tài)公司,主要就是Mesosphere\Google和Redhat三家,Mesos本來(lái)就是部署、集群管理,之前部署Hadoop大數(shù)據(jù)、批處理、ETL之類(lèi)的,隨著Docker東風(fēng)吹來(lái),馬上支持部署、管理Docker集群,再加一個(gè)Marathon管理長(zhǎng)周期任務(wù),就可以實(shí)現(xiàn)部署應(yīng)用的CaaS,雖然離PaaS還有很大距離,缺乏很多PaaS功能。 首先要深刻理解PaaS。PaaS的P是Application Platform,是應(yīng)用平臺(tái)As a Service,是著眼于應(yīng)用和應(yīng)用平臺(tái)。
很多人往往把PaaS和CaaS混淆,Container As A Service是容器即服務(wù),只管提供容器和容器管理,并不管容器里面跑的是應(yīng)用還是數(shù)據(jù)庫(kù)或是數(shù)據(jù)應(yīng)用,所以CaaS要弄出個(gè)編排,而PaaS并無(wú)編排一說(shuō)。如果只是提供容器,和IaaS其實(shí)并沒(méi)有太大的區(qū)別,只不過(guò)把應(yīng)用從虛機(jī)轉(zhuǎn)移到容器里來(lái)。
PaaS的設(shè)計(jì)原理和方法論是要實(shí)現(xiàn)應(yīng)用的零運(yùn)維,通過(guò)平臺(tái)本身來(lái)監(jiān)控應(yīng)用,而不是傳統(tǒng)的思維方式,傳統(tǒng)的運(yùn)維是要針對(duì)不同的應(yīng)用去不同的監(jiān)控、不同的調(diào)度、不同的故障恢復(fù),所以運(yùn)維成了救火。
PaaS通過(guò)平臺(tái)本身來(lái)監(jiān)控應(yīng)用、監(jiān)控容器、監(jiān)控虛機(jī)、監(jiān)控物理機(jī),應(yīng)用不用去管監(jiān)控的事情,無(wú)論是應(yīng)用故障、容器故障、虛機(jī)故障還是物理機(jī)故障,統(tǒng)統(tǒng)故障自動(dòng)恢復(fù),應(yīng)用實(shí)現(xiàn)一鍵部署,資源實(shí)現(xiàn)彈性伸縮。運(yùn)維的三大任務(wù):應(yīng)用和系統(tǒng)部署、升級(jí),故障恢復(fù),根據(jù)業(yè)務(wù)的資源分配,這三大任務(wù)在PaaS全自動(dòng)化。
當(dāng)然,要達(dá)到這個(gè)目標(biāo),你的應(yīng)用要符合十二要素,要向云原生應(yīng)用靠近。退一步講,即使是傳統(tǒng)應(yīng)用,不做改造,搬到PaaS下雖然不能100%達(dá)到上述的零運(yùn)維,但是也可以達(dá)到相當(dāng)程度的運(yùn)維自動(dòng)化。
PaaS和CaaS的另外一個(gè)根本區(qū)別是,PaaS區(qū)別對(duì)待應(yīng)用和服務(wù),應(yīng)用運(yùn)行在容器中,實(shí)現(xiàn)零運(yùn)維。服務(wù)就是比如數(shù)據(jù)庫(kù)、消息中間件、大數(shù)據(jù)、緩存等,并不適合運(yùn)行于容器中,PaaS把這些服務(wù)部署在虛機(jī)中,服務(wù)的彈性伸縮要求并不強(qiáng),不像應(yīng)用彈性伸縮的要求比較強(qiáng),誰(shuí)會(huì)去把一個(gè)mySQL或是Oracle數(shù)據(jù)庫(kù)的集群在運(yùn)行中彈性擴(kuò)展一下?
服務(wù)沒(méi)必要放在容器中,服務(wù)更多的是需要備份、調(diào)優(yōu)等操作系統(tǒng)相關(guān)的運(yùn)維,而且往往會(huì)涉及到操作系統(tǒng)內(nèi)核的調(diào)優(yōu),而應(yīng)用是往往操作系統(tǒng)無(wú)關(guān)了,所以放在容器中。在容器中做操作系統(tǒng)內(nèi)核參數(shù)調(diào)優(yōu)是有風(fēng)險(xiǎn)的。通過(guò)區(qū)分應(yīng)用和服務(wù),并且把應(yīng)用放在容器中,服務(wù)放在虛機(jī)中,自然的消除了編排的需求。容器是個(gè)革新性的技術(shù),但是不是任何場(chǎng)合都適用,作用企業(yè)應(yīng)用,應(yīng)當(dāng)在不同的場(chǎng)景選擇不同的技術(shù),而不是一個(gè)技術(shù)包攬全部。
Borg是谷歌公司很早以前就在使用的內(nèi)部容器管理系統(tǒng),隨著Docker的興起,把Borg的精華部分抽取出來(lái),支持Docker,弄出了個(gè)Kubernetes,但是Kubernetes出生于復(fù)雜的Borg系統(tǒng),框架就比較大,而且復(fù)雜,而Docker進(jìn)入企業(yè),總是從小到大的過(guò)程,企業(yè)和互聯(lián)網(wǎng)公司不一樣,互聯(lián)網(wǎng)公司可能經(jīng)過(guò)幾年的積累,已經(jīng)有成千上萬(wàn)個(gè)容器需要管理,而且運(yùn)維人員就是公司的主要資源。對(duì)于企業(yè)公司而言,把Docker弄到生產(chǎn)環(huán)境,都是嘗試性的,一開(kāi)始就弄一個(gè)超復(fù)雜的系統(tǒng),哪個(gè)企業(yè)都吃不消,所以Kubernetes進(jìn)入企業(yè)之路并不順利。
特別是國(guó)內(nèi),在2015年大多第二類(lèi)公司Docker項(xiàng)目集成公司都選擇Mesos,畢竟Mesos簡(jiǎn)單易上手,一般客戶(hù)也要不了Kubernetes那么復(fù)雜的功能來(lái)管理一個(gè)初始的小集群,所以在2015年國(guó)內(nèi)鮮有采用Kubernetes的企業(yè)客戶(hù),當(dāng)然2016年形勢(shì)逆轉(zhuǎn),K8s成為熱點(diǎn)了,因?yàn)榇蠹野l(fā)現(xiàn)Mesos不是正宗的Docker集群管理,K8s從一開(kāi)始就定位到容器集群管理,雖然技術(shù)復(fù)雜了一點(diǎn),但是2016的Docker生態(tài)圈創(chuàng)業(yè)公司很多是海歸,更從技術(shù)根源上認(rèn)可K8s對(duì)Docker的集群管理,加上這些創(chuàng)業(yè)公司不遺余力的宣傳,K8s在2016年逆襲了,成為最熱的Docker集群管理軟件,這其實(shí)也說(shuō)明了技術(shù)最終能夠被發(fā)現(xiàn)。
而Redhat就直接用kubernetes加一些自己的功能來(lái)做PaaS云解決方案。Redhat自己宣傳也是Docker+kubernetes=Openshift,那Redhat的Openshift其實(shí)自己可以掌控的東西很少,把幾個(gè)不是自己主導(dǎo)的開(kāi)源的產(chǎn)品組合成一個(gè)OpenShift,和國(guó)內(nèi)的山寨思想沒(méi)什么太大區(qū)別,也體現(xiàn)不出自己的價(jià)值,既然是山寨思想,那山寨的害處馬上就體現(xiàn)出來(lái)了,一旦正宗的產(chǎn)品推出來(lái),山寨之路就艱難了,而且OpenShift又是Redhat的邊緣產(chǎn)品,記住前面的法則:買(mǎi)產(chǎn)品一定要買(mǎi)公司的核心產(chǎn)品。
Docker第二類(lèi)生態(tài)公司,做企業(yè)Docker項(xiàng)目實(shí)施的,在國(guó)內(nèi)眾多,包括:DaoCloud、數(shù)人云、CSphere、云雀、迅達(dá)云、高偉達(dá)、宇信、飛致云、時(shí)速云等,其中有些一開(kāi)始嘗試做開(kāi)發(fā)者公有云PaaS,但都證明不能盈利,這其實(shí)已經(jīng)在新浪、盛大公有云證明是不成功的,有多少開(kāi)發(fā)者或是中小軟件公司愿意花錢(qián)在公有云上開(kāi)發(fā)呢?這個(gè)市場(chǎng)還太小,不足以養(yǎng)活開(kāi)發(fā)者公有云。 五、Docker公司的戰(zhàn)略野心受生態(tài)圈狙擊
Docker本來(lái)是做PaaS的公司,原來(lái)稱(chēng)為DotCloud, 其提供了類(lèi)似IDC的服務(wù),為客戶(hù)提供PaaS服務(wù),包括Web、Application、Transaction、Database等服務(wù)。但PaaS云運(yùn)營(yíng)并不成功,DotCloud痛定思痛,技術(shù)轉(zhuǎn)型到做容器,而且一開(kāi)始就開(kāi)源,吸引大量的開(kāi)發(fā)者使用。隨著Docker在開(kāi)發(fā)者中越來(lái)越流行,2013年10月,DotCloud干脆換名為Docker公司,2014年8月 Docker 宣布把平臺(tái)即服務(wù)的業(yè)務(wù)「dotCloud」出售給位于德國(guó)柏林的平臺(tái)即服務(wù)提供商「cloudControl」,Docker開(kāi)始專(zhuān)心致志做Docker。
于此同時(shí),Docker也開(kāi)始融資準(zhǔn)備把公司做大,適應(yīng)Docker的發(fā)展勢(shì)頭。Docker從2013年開(kāi)始,經(jīng)過(guò)ABCD四輪融資,累計(jì)超過(guò)1.5億美元的融資,Docker融資這么多,那么一定要上市IPO,才能給投資方以回報(bào)。而上市是需要業(yè)績(jī)的,既然開(kāi)發(fā)者市場(chǎng)是幾乎不可能賺錢(qián)盈利,只能轉(zhuǎn)向企業(yè)級(jí)市場(chǎng),一旦啟動(dòng)進(jìn)入企業(yè)級(jí)市場(chǎng)的進(jìn)程,就必然會(huì)擠壓Docker生態(tài)圈的第二類(lèi)廠商——做Docker集群管理的廠商們。 “Docker進(jìn)入企業(yè)環(huán)境,第一個(gè)就是要運(yùn)行Docker鏡像,而且不是一個(gè)兩個(gè)鏡像,要運(yùn)行一個(gè)集群,這樣Docker集群的部署、管理、調(diào)度就成為Docker進(jìn)入企業(yè)級(jí)第一需求。
如下圖是Docker的發(fā)展歷程,下面是Docker容器的進(jìn)展,上面是CaaS(Container As a Servie)解決方案的并購(gòu)和進(jìn)展。有心人很容易發(fā)現(xiàn),從2014年底開(kāi)始,Docker密密麻麻的收購(gòu),全都投入在CaaS,無(wú)論是收購(gòu)還是從產(chǎn)品到解決方案,可見(jiàn)Docker在CaaS上了大賭注。
Docker進(jìn)入企業(yè)級(jí)市場(chǎng)有比較宏大的目標(biāo),2014年10月,Docker收購(gòu)持續(xù)集成服務(wù)商 Koality,Docker把Koality在企業(yè)市場(chǎng)方面的成熟經(jīng)驗(yàn)引入到 Docker Hub企業(yè)版本中,瞄準(zhǔn)的是企業(yè)市場(chǎng)。同月,Docker收購(gòu)了總部位于倫敦的Orchard Laboratories,進(jìn)入復(fù)雜應(yīng)用編排功能的企業(yè)市場(chǎng)。2014年底推出Docker Machine\Swarm\Compose,2015年對(duì)這三個(gè)產(chǎn)品持續(xù)升級(jí)。
2015年3月,Docker收購(gòu)SDN公司SocketPlane,解決Docker集群的網(wǎng)絡(luò)問(wèn)題。同月Docker收購(gòu)了用于Docker管理的開(kāi)源圖形用戶(hù)界面工具Kitematic,自動(dòng)化了Docker安裝和配置過(guò)程。2015年 10年,Docker收購(gòu)Tutum,補(bǔ)充Docker Hub,補(bǔ)充對(duì)Docker運(yùn)行時(shí)的支持。進(jìn)入2016年,Docker再次動(dòng)作頻頻,2016年1月,Docker收購(gòu)Unikernel Systems,進(jìn)入OS領(lǐng)域,把Docker容器帶入最簡(jiǎn)OS內(nèi)核。如下圖,打造適合運(yùn)行容器的最簡(jiǎn)OS, 整個(gè)容器所占的資源進(jìn)一步減少,從而讓機(jī)器跑的更快,把容器的價(jià)值發(fā)揮到極限,至于這是否適合企業(yè)應(yīng)用還需要驗(yàn)證。
向下,Docker侵入OS領(lǐng)域,向上,Docker擠占CaaS市場(chǎng)空間。
2016年3月,Docker收購(gòu)Conductant,入主Aurora,根據(jù)如下Docker的規(guī)劃,Aurora直接和kubernetes以及Marathon競(jìng)爭(zhēng),特別是和Mesos的架構(gòu)完全對(duì)應(yīng), Docker Aurora+Swarm直接和Marathon+Mesos競(jìng)爭(zhēng)。使得Docker Swarm從小規(guī)模集群管理,擴(kuò)展到大規(guī)模Docker集群管理。
在這個(gè)Docker提供架構(gòu)圖,可以清楚的看到?jīng)]有了Mesos,而是Docker Swarm+Aurora直接取代Mesos+Marathon。同時(shí),我看看下面來(lái)自Docker的博客(https://blog.docker.com/2016/03/docker-welcomes-aurora-project-creators/)
“There are manycommercial distributions of Mesos, but none of them incorporate Aurora. Webelieve that is a wasted opportunity. We plan on incorporating the best ideasfrom Aurora into Docker Swarm, and are exploring integrating Aurora as anoptional component of the official Docker stack.”翻譯過(guò)來(lái):
“雖然Mesos擁有多款商業(yè)發(fā)行版,但其中沒(méi)有任何一款受到Aurora的啟發(fā)。我們認(rèn)為這實(shí)在是一種巨大的浪費(fèi)。我們計(jì)劃將Aurora中的各類(lèi)卓越思維成果引入Docker Swarm,并正在嘗試將Aurora作為Docker正式堆棧的可選組件之一。” Docker已經(jīng)在抱怨有太多的Mesos商業(yè)發(fā)行版,搭了Docker便車(chē),已經(jīng)在賺Docker進(jìn)入企業(yè)級(jí)市場(chǎng)的錢(qián),而Docker自己的產(chǎn)品居然還沒(méi)開(kāi)始賺錢(qián)。
是可忍孰不可忍! 2016年2月,Docker公布了其DDC(Docker DataCenter)的架構(gòu)圖和報(bào)價(jià),如下圖,藍(lán)色部分是Docker的CaaS解決方案,青色部分是還需要第三代的產(chǎn)品或開(kāi)源產(chǎn)品來(lái)補(bǔ)充形成完整的解決方案,青色部分所占比例還不小,可見(jiàn)Docker的CaaS上要走的路還很長(zhǎng),Docker的這個(gè)CaaS有不少模塊是前面收購(gòu)來(lái)的。既然是商業(yè)發(fā)行版,DDC也保留了部分模塊不開(kāi)源,走的甚至比CloudEra的發(fā)行版更遠(yuǎn)。Docker也很快給了個(gè)并不便宜公共訂閱報(bào)價(jià),難道是Docker在盈利上有急切的需求?
六、Docker生態(tài)圈的演進(jìn)請(qǐng)輸入
Docker在2013-2014年專(zhuān)注于把容器做好,沒(méi)來(lái)得及顧得上企業(yè)級(jí)市場(chǎng),Mesosphere和Google瞄上了這個(gè)市場(chǎng),同時(shí)Redhat也把自己的PaaS推倒重來(lái),準(zhǔn)備用Docker+kubernetes。2014年底,Docker已經(jīng)準(zhǔn)備進(jìn)入企業(yè)級(jí)市場(chǎng),推出Docker Machine,Swarm和Compose。 Docker作為Docker的宗主,著眼于Docker市場(chǎng)環(huán)境最有利潤(rùn)的Docker生產(chǎn)環(huán)境集群管理是很自然而然的,我們?cè)賮?lái)分析這個(gè)市場(chǎng)三只早起的鳥(niǎo)兒:Google、Mesosphere、Redhat。 一旦Docker進(jìn)入企業(yè)級(jí)CaaS市場(chǎng),Google第一個(gè)就感受到了這個(gè)壓力。
“Google無(wú)疑是最有技術(shù)敏銳性和市場(chǎng)敏銳性的,早早的看到了Docker企業(yè)級(jí)市場(chǎng)的企圖心,所以Google是第一個(gè)支持Docker的競(jìng)爭(zhēng)對(duì)手—-CoreOS的Rocket容器,2014年四月份谷歌風(fēng)險(xiǎn)投資公司牽頭對(duì)CoreOS進(jìn)行了1200萬(wàn)美元的投資,目標(biāo)明確—對(duì)準(zhǔn)docker。Google不再是Docker+ kubernetes,而是容器抽象+ kubernetes。
Google對(duì)容器層進(jìn)行了抽象,使得kubernetes即能支持Rocket,也能支持Docker,而Rocket和Docker有很大的不同,kubernetes對(duì)此進(jìn)行了折中,不再對(duì)所以的Docker的功能支持,只支持kubernetes抽象出的容器功能,如果Docker自己的功能不在kubernetes抽象的容器功能之中,kubernetes選擇不支持。最典型的是libnetwork/CNM,kubernetes認(rèn)為這是Docker的特定功能,不予支持,Google自己搞了一個(gè)CNI。所以kubernetes和Docker走在分道揚(yáng)鑣的路上,距離越來(lái)越遠(yuǎn)。
除了支持CoreOS,Google更是聯(lián)合容器業(yè)界相關(guān)的廠商,組成OCI(Open Container Initiative)。業(yè)界對(duì)Docker在容器領(lǐng)域一家把控早有怨言,所以O(shè)CI一成立,就得到熱烈響應(yīng)。和普通的聯(lián)盟或標(biāo)準(zhǔn)化組織不一樣,OCI成立之初就定下目標(biāo)—容器標(biāo)準(zhǔn)化,包括容器引擎的標(biāo)準(zhǔn)化實(shí)現(xiàn)—RunC,定個(gè)標(biāo)準(zhǔn)化規(guī)范容易給各方鉆空子,但是做一個(gè)標(biāo)準(zhǔn)化的實(shí)現(xiàn),就可以在相當(dāng)程度上實(shí)現(xiàn)真正的容器統(tǒng)一。Docker眼看OCI實(shí)在太熱烈,不得不折中考慮,加入OCI,實(shí)現(xiàn)RunC。
但是總是心有不爽,雖然RunC發(fā)展很快Docker從1.11開(kāi)始就采用了RunC的引擎,但是這不就開(kāi)始和Google也業(yè)界大佬開(kāi)撕了,過(guò)程很簡(jiǎn)單,Kubernetes的KelseyHightower說(shuō)不要Docker引擎就可以跑Docker鏡像,Docker CTO Solomon Hykes馬上說(shuō),不用Docker引擎, 10%的運(yùn)行會(huì)有問(wèn)題,然后就扯到OCI,Docker說(shuō)OCI是個(gè)偽標(biāo)準(zhǔn),立馬得到無(wú)數(shù)的磚頭。
Docker也加入了OCI,對(duì)RunC的貢獻(xiàn)也不小,現(xiàn)在出爾反爾,現(xiàn)在看到Docker可能會(huì)受OCI/RunC的牽制影響,立馬不管臉面了,利益第一。
但是技術(shù)潮流是無(wú)法一家控制的,OCI/RunC作為業(yè)界各大廠商制約Docker的標(biāo)準(zhǔn)遲早會(huì)越發(fā)展越好,容器并不是什么可以壟斷性的技術(shù),或者說(shuō)容器本身的技術(shù)含量并沒(méi)有高到其他廠商做不好,只不過(guò)Docker在合適的時(shí)間點(diǎn)點(diǎn)燃了一個(gè)干柴烈火的市場(chǎng)。
對(duì)Docker容器的制約,不止體現(xiàn)在OCI容器層面,這不,前兩天Google宣布和Mirantis的合作,K8s直接支持OpenStack,意味著K8s除了可以管理容器,還會(huì)延伸到管理虛機(jī)集群,在這個(gè)架構(gòu)下,Google弱化Docker容器的的意圖很明顯。 由于Google早早的對(duì)容器進(jìn)行抽象,可以預(yù)見(jiàn),即使脫離Docker生態(tài)圈,kubernetes依然有其市場(chǎng),而且主要是大型容器和虛機(jī)部署的市場(chǎng)。
“再說(shuō)Mesosphere。2016年上半年遲鈍的Mesosphere終于意識(shí)到Docker的野心和意圖,開(kāi)始嘗試脫離Docker,在新的Mesos Containerizer中支持脫離Docker Daemon建立容器,為下一步支持Rocket/RunC做準(zhǔn)備。
Mesosphere相當(dāng)于而言是比較不敏感的,一直跟著Docker跑,即使在Docker要做Swarm時(shí),而且Docker已經(jīng)做了Swarm仍然不敏感,終于Docker已經(jīng)明確的對(duì)Mesosphere通過(guò)發(fā)行版賺錢(qián)表示了明顯的不滿(mǎn),可以理解,Docker自己花這么多資源做出一個(gè)Docker和相應(yīng)生態(tài),還沒(méi)開(kāi)始賺錢(qián),搭車(chē)的先賺錢(qián)了,換誰(shuí)誰(shuí)也不樂(lè)意。2016年2月Docker發(fā)布DDC(Docker DataCenter)和報(bào)價(jià),已經(jīng)非常明確了Docker要進(jìn)入企業(yè)級(jí)市場(chǎng)。
2016年上半年遲鈍的Mesosphere終于意識(shí)到Docker的野心和意圖,開(kāi)始嘗試脫離Docker,在新的Mesos Containerizer中支持脫離Docker Daemon建立容器,為下一步支持Rocket/RunC做準(zhǔn)備。 Docker進(jìn)入企業(yè)級(jí)市場(chǎng),第一個(gè)碾壓的就是Mesosphere。
一方面Docker通過(guò)收購(gòu)Conductant獲得Aurora,未來(lái)必定會(huì)合并到DDC中,DDC完全可以覆蓋Mesosphere的DCOS在Docker集群管理上的功能,而且Docker還有一招,未來(lái)只提供Swarm的API,封閉或是大幅改變Docker API,那么Mesos就只能調(diào)Swarm的API,Swarm本來(lái)就和Mesos有很大的重疊,如果Mesos再通過(guò)Swarm去管理Docker集群,那Mesos的價(jià)值可能小于功能重疊帶來(lái)的復(fù)雜性。當(dāng)然Docker是否會(huì)祭出這個(gè)大招讓我們拭目以待,雖然在Docker的新的架構(gòu)圖已經(jīng)有此規(guī)劃。
在這種生態(tài)環(huán)境下,用戶(hù)的選擇是最難的,已經(jīng)選擇了Docker+Mesos的用戶(hù),必然會(huì)面臨未來(lái)繼續(xù)走Docker+Mesos的路,還是壯士斷腕,切換到正宗的Docker DDC,但DDC還不成熟,目前階段還不適合選擇。
而Docker+Mesos是注定未來(lái)很難升級(jí),越往后越邊緣化。 “再看Redhat,2014年的時(shí)候看到Docker火起來(lái),Redhat見(jiàn)異思遷,馬上拋棄自己的OpenShift V2的整體架構(gòu),包括拋棄原有應(yīng)用容器Gear,全面采用Docker替代Gear,同時(shí)用kubernetes替代原有的容器管理。如此革命式的改造,完全不考慮前后的兼容性。
這導(dǎo)致已經(jīng)部署在OpenShift V2的應(yīng)用遷移到OpenShift V3非常困難,雖然提供了一個(gè)遷移工具,但是Redhat自己都不敢用,到目前為止,Redhat的OpenShift公有云還是OpenShift V2,在給客戶(hù)推銷(xiāo)OpenShift V3的時(shí)候自己不從V2升級(jí)到V3,一定是難度極大,否則拼了命也要升級(jí),”自己的狗糧自己得吃”。
Redhat在OpenShift V3技術(shù)架構(gòu)的選擇顯得魯莽,核心技術(shù)是Docker和kubernetes,而Redhat對(duì)這兩個(gè)技術(shù)都沒(méi)有掌控,一旦Docker的發(fā)展或是kubernetes的發(fā)展和自己的戰(zhàn)略目標(biāo)不一致,可能還得推倒重來(lái),又是一次”見(jiàn)異思遷”,目前就實(shí)際的遇到了這個(gè)問(wèn)題,Docker要發(fā)展自己的DDC,和kubernetes競(jìng)爭(zhēng),而kubernetes已經(jīng)對(duì)容器進(jìn)行了抽象,不再支持Docker的特定功能,Docker和kubernetes已經(jīng)處于分道揚(yáng)鑣的階段,未來(lái)只會(huì)越走越遠(yuǎn),而Redhat“只能眼睜睜的看著你卻無(wú)能為力”,即無(wú)法說(shuō)服Docker,也無(wú)法影響Google。
另外,既然Docker要進(jìn)入企業(yè)級(jí)容器集群管理市場(chǎng),那OpenShift就必然和Docker存在競(jìng)爭(zhēng),Docker因?yàn)榻^對(duì)的掌控了Docker容器,在競(jìng)爭(zhēng)中有天然的優(yōu)勢(shì),這種優(yōu)勢(shì)隨著Docker的升級(jí)和DDC的升級(jí)會(huì)與日俱增。到底是選擇正宗(奧迪)還是山寨(奧拓),客戶(hù)也容易陷入困惑。
七、開(kāi)源技術(shù)也需要商業(yè)的成功
開(kāi)源不等于免費(fèi),開(kāi)源是一種商業(yè)模式,一個(gè)開(kāi)源組織和開(kāi)源項(xiàng)目要想生存下去,最重要的基礎(chǔ)就是普遍被使用,不然很快就會(huì)被競(jìng)爭(zhēng)者替代。
一個(gè)軟件被普遍被使用之后,還需要因此衍生出相關(guān)服務(wù),團(tuán)隊(duì)可以通過(guò)這些服務(wù)獲得比較好的收入,商業(yè)模式就成型了,沒(méi)有商業(yè)的支持的開(kāi)源是很難成為一個(gè)成熟、商業(yè)可用的技術(shù)。就拿Linux來(lái)說(shuō),Redhat和Suse Linux作為比較成功的Linux商業(yè)化,通過(guò)發(fā)行版和技術(shù)支持獲得了商業(yè)成功,反過(guò)來(lái)推動(dòng)了Linux的發(fā)展。Linux持續(xù)有開(kāi)源路線和商業(yè)路線,商業(yè)客戶(hù)需要商業(yè)的版本和支持,有Redhat和Suse等提供。開(kāi)源的Linux如CentOS,CoreOS等。
反面的例子就是OpenSSL,去年暴露出“心臟出血“漏洞,大家發(fā)現(xiàn)就一個(gè)人在維護(hù)在OpenSSL,也沒(méi)人捐錢(qián),Theo de Raadt– OpenBSD項(xiàng)目的創(chuàng)始人說(shuō)OpenSSL的代碼”令人作嘔“,主要原因就是沒(méi)有商業(yè)的支持。這不最近又爆出新型高危漏洞。
我們?cè)倏纯碊ocker的生態(tài)圈,無(wú)論是Docker,還是Mesosphere,還是Google,都還沒(méi)有在Docker開(kāi)源生態(tài)圈獲得商業(yè)成功。而開(kāi)源技術(shù)終將走向商業(yè),包括Docker,必然面臨企業(yè)市場(chǎng)挑戰(zhàn),微軟奮斗了幾十年其企業(yè)市場(chǎng)跟甲骨文SAP比起來(lái)仍然望其項(xiàng)背,這需要積累。“面對(duì)二三十家Docker創(chuàng)業(yè)公司,投資人是需要這些創(chuàng)業(yè)公司能商業(yè)成功的,而Docker本身技術(shù)沒(méi)有成熟,特別在Docker集群管理、資源調(diào)度等生產(chǎn)應(yīng)用方面。
Docker生產(chǎn)使用都成熟,要Docker商業(yè)成功,不會(huì)是一個(gè)短期的過(guò)程。而docker和mesos這兩家核心生態(tài)圈的公司到今天為止離盈利還非常遠(yuǎn),那國(guó)內(nèi)這些二三十家外圍生態(tài)圈的創(chuàng)業(yè)公司短時(shí)期內(nèi)商業(yè)成功幾乎不可能。
對(duì)于想在Docker上嘗鮮的企業(yè)來(lái)說(shuō),要認(rèn)清開(kāi)源不等于免費(fèi)。
八、Docker生態(tài)圈的推論
Docker進(jìn)入企業(yè)級(jí)市場(chǎng),有優(yōu)勢(shì),也有劣勢(shì),優(yōu)勢(shì)是挾Docker的大量開(kāi)發(fā)者,劣勢(shì)是沒(méi)有做過(guò)企業(yè)級(jí)市場(chǎng),開(kāi)發(fā)者市場(chǎng)和企業(yè)級(jí)市場(chǎng)的做法完全不同,微軟從消費(fèi)者用戶(hù)拓展到企業(yè)用戶(hù)化了十多年的時(shí)間,在企業(yè)市場(chǎng)并沒(méi)有取得和消費(fèi)者市場(chǎng)一樣的成功。
做消費(fèi)者市場(chǎng),只要把產(chǎn)品做好,而做企業(yè)級(jí)客戶(hù),要一個(gè)一個(gè)去談,每個(gè)客戶(hù)的需求都不一樣,需要一只龐大的銷(xiāo)售、定制、支持隊(duì)伍。Docker公司到目前為止也就100多人,做企業(yè)級(jí)市場(chǎng)沒(méi)有幾千人的銷(xiāo)售、支持隊(duì)伍是很難打開(kāi)全球市場(chǎng)的。100人到數(shù)千人,管理模式、業(yè)務(wù)模式都需要幾次轉(zhuǎn)型。而Docker公司目前也只是提供DDC的訂閱License和支付服務(wù),并不提供面對(duì)面的銷(xiāo)售和定制服務(wù) Docker公司進(jìn)入企業(yè)級(jí)市場(chǎng)在技術(shù)上有最大的優(yōu)勢(shì),撬奪Mesosphere\Google\Redhat的CaaS市場(chǎng)還是有相當(dāng)?shù)募夹g(shù)優(yōu)勢(shì)。
通過(guò)對(duì)Docker API的控制、升級(jí),可以完全影響上面所有對(duì)Docker容器集群管理的軟件,也許3-5年,Docker的企業(yè)級(jí)產(chǎn)品會(huì)有相當(dāng)?shù)某晒Γ粫?huì)在2016年。但也許3-5年后,CaaS(Container As a Service)會(huì)有新的技術(shù)演進(jìn)。 2016年,作為Docker集群部署管理的生態(tài)圈公司:Google kubernetes\Redhat OpenShift\Mesos,面臨Docker DDC的不平等技術(shù)競(jìng)爭(zhēng),會(huì)承載巨大的壓力,他們會(huì)聯(lián)合起來(lái)反制Docker公司。他們的應(yīng)對(duì)就是釜底抽薪,弱化Docker容器,盡快讓RunC成熟,在一定程度上取代Docker引擎。另外,直接就是支持虛機(jī),不再受制于Docker,而是直接在企業(yè)級(jí)市場(chǎng)全面競(jìng)爭(zhēng)。
和Hadoop生態(tài)圈的第一類(lèi)公司類(lèi)似,2016-2017年,可能有Docker集群管理的公司會(huì)逐步退出這個(gè)市場(chǎng)。
“事實(shí)上,無(wú)論是Google還是Mesos,都已經(jīng)走在和Docker分道揚(yáng)鑣的路上。如果我們和大數(shù)據(jù)對(duì)比一下,Docker有點(diǎn)像CloudEra,技術(shù)領(lǐng)先; Redhat像Hortonworks,先上市再說(shuō),Redhat是先把產(chǎn)品上市,Hortonworks是先資本上市。Google有點(diǎn)像Intel投資Hadoop,不屬于主業(yè),在副業(yè)上也投資。Mesos有點(diǎn)像MapR,總是不在核心圈子里,越來(lái)越式微。
2016年.作為Docker CaaS私有云項(xiàng)目實(shí)施公司,包括:Rancher、才云、數(shù)人云、CSphere、云雀云、Hyper、DaoCloud、有容云、好雨云、輕元科技、迅達(dá)云、飛致云、時(shí)速云、精靈云、領(lǐng)科云等。和Hadoop的第二類(lèi)項(xiàng)目實(shí)施的生態(tài)圈公司走過(guò)的歷程類(lèi)似,2016-2017年,各大Docker CaaS項(xiàng)目實(shí)施廠商是陷入低價(jià)血戰(zhàn)的時(shí)代。同時(shí),技術(shù)方向的選擇和標(biāo)桿客戶(hù)案例非常關(guān)鍵,如果技術(shù)方向選擇不對(duì),所選擇的Docker集群管理軟件被邊緣化,那么技術(shù)的積累價(jià)值會(huì)大幅打折,客戶(hù)的標(biāo)桿也可能會(huì)成為反例。
最典型的就是選擇Mesos的技術(shù)路線的,目前已見(jiàn)頹勢(shì)。也有的抱Docker大腿不放,選擇純Docker的技術(shù)線路,容器集群管理也用Docker Swarm,Docker Swarm有可能會(huì)一直很難成熟,特別是和K8s相比,存在巨大的技術(shù)風(fēng)險(xiǎn)。 “2016年,有些企業(yè)級(jí)客戶(hù)開(kāi)始選擇Docker做CaaS,但是客戶(hù)面臨最大的問(wèn)題是戰(zhàn)略性的問(wèn)題,到底選擇哪個(gè)Docker集群管理軟件,在Docker紛繁復(fù)雜的生態(tài)圈里做出正確的選擇并不容易,考驗(yàn)客戶(hù)的技術(shù)眼光,選擇了一個(gè)短命的產(chǎn)品以后再糾正并不容易。
其實(shí),Hadoop的客戶(hù)走過(guò)這樣的困境,我想起上海某政府客戶(hù),在2012年選擇Intel的Hadoop實(shí)施信息共享項(xiàng)目,成為Intel的全球案例,2013年10月上線,2014年Intel放棄自己的Hadoop,裁撤了幾乎所有的Hadoop團(tuán)隊(duì),這時(shí)數(shù)據(jù)和系統(tǒng)都已經(jīng)上線半年多了,對(duì)于一個(gè)已經(jīng)上線提供服務(wù)的Hadoop,再去換一個(gè)Hadoop,難度可想而知,數(shù)據(jù)遷移和應(yīng)用遷移不一樣,難度高出許多。如果不換Hadoop,永遠(yuǎn)停留在Intel的Hadoop 1.0上又失去了采用開(kāi)源軟件的意義,采用開(kāi)源軟件很重要一點(diǎn)是能隨開(kāi)源的成長(zhǎng)而成長(zhǎng)。
面臨這種尷尬的時(shí)候再次提醒我們產(chǎn)品和技術(shù)選擇的重要性。推導(dǎo)到Docker企業(yè)應(yīng)用,早期嘗鮮的企業(yè)客戶(hù)把Docker集群管理調(diào)度部署到生產(chǎn)環(huán)境,會(huì)不會(huì)碰到這種尷尬呢? 目前國(guó)內(nèi)的Docker創(chuàng)業(yè)公司超過(guò)20家,都想進(jìn)入企業(yè)市場(chǎng),導(dǎo)致異乎激烈的競(jìng)爭(zhēng)。而過(guò)于激烈的競(jìng)爭(zhēng),帶來(lái)一個(gè)畸形的模式————大家主要把錢(qián)和資源化在吸引眼球上,而不是把主要力量放在把產(chǎn)品做好(國(guó)內(nèi)的OpenSatck公司何嘗不是如此!)。
有個(gè)銀行客戶(hù),準(zhǔn)備測(cè)試一下Docker,居然超過(guò)十家Docker創(chuàng)業(yè)公司主動(dòng)要去測(cè)試,據(jù)說(shuō)預(yù)算只有幾十萬(wàn)。
20多家Docker創(chuàng)業(yè)的小公司,少的十幾個(gè)人,多的幾十人,上百的還很罕見(jiàn),畢竟投資人的錢(qián)燒起來(lái)很快,搞個(gè)上百人的,一年的工資支出可能就幾千萬(wàn)。20多家小公司,怎么讓客戶(hù)知道你?這是Docker創(chuàng)業(yè)公司的面臨的第一個(gè)困境,解決辦法就是搞市場(chǎng)活動(dòng),據(jù)說(shuō)有的公司居然80%的資金都花在市場(chǎng)活動(dòng)上,常用在酒店給客戶(hù)講方案的市場(chǎng)活動(dòng)不湊效,那就搞技術(shù)Fans的Meetup,大家去看看今年的Docker/K8s/Mesos的Meetup多如牛毛,每周都有。
Meetup就一定有效嗎?對(duì)企業(yè)級(jí)市場(chǎng)來(lái)說(shuō),并不完全有效,參加Meetup的都是工程師,不是企業(yè)項(xiàng)目的決策人,工程師想用,企業(yè)決策人還沒(méi)看清暫時(shí)不用是普遍現(xiàn)象。 一方面,把投資人的錢(qián)花在各種市場(chǎng)活動(dòng)上,另外一方面,Docker/K8s/Mesos作為開(kāi)源技術(shù),這些創(chuàng)業(yè)公司對(duì)Docker/K8s/Mesos的代碼貢獻(xiàn)很小,僅僅有一兩家對(duì)代碼有微量貢獻(xiàn),大多數(shù)對(duì)Docker開(kāi)源代碼是零貢獻(xiàn),對(duì)于沒(méi)有對(duì)開(kāi)源有多少貢獻(xiàn),希望從開(kāi)源項(xiàng)目賺錢(qián),這多少有點(diǎn)投機(jī)取巧,而且,Docker/Google都還沒(méi)有從自己主導(dǎo)的開(kāi)源項(xiàng)目賺錢(qián),搭便車(chē)的先賺錢(qián),商業(yè)上合理嗎?
中國(guó)目前的容器市場(chǎng)能支撐的了20多家Docker創(chuàng)業(yè)公司嗎?而這些創(chuàng)業(yè)公司絕大多數(shù)拿的是投資人的錢(qián),投資人的錢(qián)也不是風(fēng)刮來(lái)的,天使輪投資可以只要個(gè)Idea,但到A輪/B輪,怎么也得看點(diǎn)數(shù)據(jù),你是拿了幾個(gè)單,還是有多少營(yíng)收,有多少利潤(rùn),Docker創(chuàng)業(yè)公司面對(duì)的是B2B市場(chǎng),不是B2C市場(chǎng),B2C市場(chǎng)可以燒錢(qián)拉用戶(hù),只要用戶(hù)量在持續(xù)增長(zhǎng),可以擴(kuò)大虧損繼續(xù)燒。對(duì)于B2B市場(chǎng),是要建立標(biāo)桿案例項(xiàng)目再?gòu)?fù)制,標(biāo)桿可以不賺錢(qián),復(fù)制項(xiàng)目總得賺錢(qián),而目前的殘酷現(xiàn)實(shí)是標(biāo)桿項(xiàng)目大家打破頭,沒(méi)賺錢(qián)。你想復(fù)制的時(shí)候,20 多家的競(jìng)爭(zhēng)對(duì)手還想著不要錢(qián)做自己的標(biāo)桿,所以標(biāo)桿項(xiàng)目的復(fù)制為盈利項(xiàng)目幾乎不可能。
在目前這個(gè)市場(chǎng)形勢(shì)下,投資人再往下投多少會(huì)更謹(jǐn)慎一些,那在市場(chǎng)上花錢(qián)如流水的Docker創(chuàng)業(yè)公司,一旦錢(qián)花的差不多,并沒(méi)有達(dá)到預(yù)期數(shù)字,投資人在投錢(qián)上再謹(jǐn)慎起來(lái),一些Docker創(chuàng)業(yè)公司的死掉只是時(shí)間的問(wèn)題,也許年底就可以看到倒掉的Docker創(chuàng)業(yè)公司。
九、給準(zhǔn)備Docker嘗鮮的客戶(hù)的建議
目前有些企業(yè)已經(jīng)在采用Docker和相關(guān)技術(shù),據(jù)觀察,有以下幾類(lèi)企業(yè):
- 1、 互聯(lián)網(wǎng)公司,比較早期就開(kāi)始關(guān)注Docker技術(shù),在互聯(lián)網(wǎng)應(yīng)用中采用Docker容器,對(duì)應(yīng)用的一致性要求不高,能接受數(shù)據(jù)的最終一致性。有的僅僅是容器,自己做管理,有的采用Mesos來(lái)管理集群,也有采用K8s來(lái)管理Docker容器的。這類(lèi)客戶(hù)應(yīng)當(dāng)占了目前Docker用戶(hù)的95%以上。
- 2、 為了混Docker圈子的重IT型公司,數(shù)量少,頻繁出現(xiàn)在各種Docker市場(chǎng)活動(dòng)中介紹成功經(jīng)驗(yàn)。這些企業(yè)有個(gè)特點(diǎn),喜歡在眾多的Docker市場(chǎng)活動(dòng)上介紹使用Docker的成功經(jīng)驗(yàn)。作為一個(gè)企業(yè),使用新技術(shù)可能可以造就新的競(jìng)爭(zhēng)力,但是在各種Docker的市場(chǎng)活動(dòng)中介紹成功經(jīng)驗(yàn)好像和公司的核心競(jìng)爭(zhēng)力并不完全一致,這些公司的核心競(jìng)爭(zhēng)力肯定不是是用Docker而帶來(lái)的。
- 3、 傳統(tǒng)企業(yè)在技術(shù)創(chuàng)新中采用Docker,取代了很好的效果。這種企業(yè)不多,企業(yè)的IT領(lǐng)導(dǎo)人有很強(qiáng)的技術(shù)駕馭能力,能夠吸納新技術(shù)。通過(guò)試點(diǎn)采用Docker成功以后,逐步推廣,取代了比較好的效果。 分析這些Docker的使用者,很容易發(fā)現(xiàn)在真正企業(yè)級(jí)環(huán)境使用不多,在美國(guó)也如此。主要還是互聯(lián)網(wǎng)公司在使用。 對(duì)于企業(yè)客戶(hù)而言,要采用Docker,一般是兩種方式:要么選擇Docker相關(guān)公司來(lái)實(shí)施,要不然自己基于Docker定制,這種方式工作量太大,需要巨大的團(tuán)隊(duì),對(duì)企業(yè)來(lái)說(shuō)不合適。如果選擇Docker相關(guān)公告,目前選擇這些Docker創(chuàng)業(yè)公司是有巨大風(fēng)險(xiǎn)的,一方面他能生存多久很難說(shuō),考慮客戶(hù)的選擇眼光。
第二,如果做Docker項(xiàng)目選擇這些公司的產(chǎn)品來(lái)實(shí)施,對(duì)于技術(shù)力量稍微強(qiáng)一點(diǎn)的Docker創(chuàng)業(yè)公司,他會(huì)自己做一些包裝定制,把自己的產(chǎn)品提供給客戶(hù),但是風(fēng)險(xiǎn)在于,對(duì)于定制過(guò)的產(chǎn)品,Docker/K8s/Mesos/Swarm的后續(xù)發(fā)展非常快,這些開(kāi)源版本一升級(jí),你就得跟著升級(jí),定制了以后升級(jí)并不容易,往往會(huì)要去改動(dòng)代碼或是配置。
作為客戶(hù)如果采用開(kāi)源的產(chǎn)品,而不跟著升級(jí),那就失去了采用開(kāi)源的非常關(guān)鍵的一個(gè)價(jià)值,開(kāi)源的發(fā)展一開(kāi)始是不成熟的,如果不能跟著開(kāi)源逐漸成熟,那選擇早期的開(kāi)源不升級(jí)往往是很難達(dá)到效果。也有小的創(chuàng)業(yè)公司,對(duì)Docker幾乎不做定制,甚至界面都不改,就是把環(huán)境部署起來(lái),那對(duì)企業(yè)級(jí)應(yīng)用來(lái)說(shuō),過(guò)于簡(jiǎn)陋,對(duì)使用者要求很高,很大程度上是達(dá)不到應(yīng)有效果的。
對(duì)于企業(yè)級(jí)客戶(hù)準(zhǔn)備采用Docker,鑒于目前Docker在企業(yè)級(jí)的生產(chǎn)環(huán)境應(yīng)用規(guī)模很小,成熟度有待提高,而且對(duì)于企業(yè)級(jí)應(yīng)用很難在Mesos/K8s/Swarm之間做選擇,一旦技術(shù)路線選擇錯(cuò)誤,后面調(diào)頭重來(lái)成本非常高。而且這么多小的Docker創(chuàng)業(yè)公司,能不能生存下去,長(zhǎng)期提供技術(shù)支持,也是需要考慮的問(wèn)題。
企業(yè)要綜合考察IaaS/CaaS/PaaS,選擇相對(duì)成熟的技術(shù),相比而言IaaS和PaaS均比較成熟,基于Docker的CaaS還沒(méi)有定型,還在成熟的過(guò)程中。要結(jié)合企業(yè)的實(shí)際需求,對(duì)于潮流技術(shù),先小規(guī)模驗(yàn)證,體驗(yàn)取得的實(shí)際效果,分析存在的隱患,再做綜合決策不遲。