Hadoop 1.0到2.0的升級(jí)成為一個(gè)重要的轉(zhuǎn)折點(diǎn)--- Hadoop從1.0到2.0直接導(dǎo)致Intel的發(fā)行版出局,Intel的Hadoop部門裁撤銷,Intel廢棄自己的Hadoop轉(zhuǎn)而直接投資CloudEra。因?yàn)镮ntel對(duì)Hadoop 1.0做了很多的定制、優(yōu)化,這些定制優(yōu)化本來一直是Intel宣稱的競(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客戶而言,要吸取的教訓(xùn)是買產(chǎn)品一定要買賣家的核心產(chǎn)品,即使是大賣家,其邊緣產(chǎn)品很容易被拋棄,受傷的是客戶。這個(gè)道理其實(shí)是個(gè)大概率道理,可是吃這種虧的客戶不會(huì)絕跡。
Hadoop發(fā)行版廠商面臨一樣的趨勢(shì)潮流——留下不超過3家Hadoop發(fā)行商,其他的都會(huì)被淘汰。
再看大數(shù)據(jù)的應(yīng)用和生態(tài)圈的公司,云端營(yíng)銷服務(wù)公司Marketo,13元的IPO價(jià)格,趁著大數(shù)據(jù)的東風(fēng),很快就飛到了45,隨后熊途漫漫,在2016年2月份跌破發(fā)行價(jià)。和HortonWorks相比,Marketo是大數(shù)據(jù)的應(yīng)用,是能通過大數(shù)據(jù)直接產(chǎn)生營(yíng)收的,而且業(yè)績(jī)也確實(shí)比Hortonworks要好,但是回天無力,持續(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)圈類似。
Docker的生態(tài)圈也分為兩大類,第一類就是Mesosphere\Google這類做Docker的企業(yè)運(yùn)行集群管理,類似于Hadoop的發(fā)行版的廠商。第二類是做Docker的項(xiàng)目實(shí)施或是做Docker開發(fā)者公有云,類似于Hadoop的項(xiàng)目實(shí)施廠商。
Docker的流行開始于開發(fā)者,也是在開發(fā)者中傳播,真正進(jìn)入企業(yè)級(jí)生產(chǎn)系統(tǒng)的很少,由于Docker天生就是從開發(fā)者起家的,缺乏進(jìn)入企業(yè)的基因,Docker的設(shè)計(jì)就不是運(yùn)行于企業(yè)級(jí)環(huán)境下。
可是從開發(fā)者身上很難賺錢,這已經(jīng)成為共識(shí)了,如果想從開發(fā)者身上賺錢,那開發(fā)者都跑路了。Docker也意識(shí)到這點(diǎn),所以Docker在2016開年就提出,要進(jìn)入企業(yè)級(jí)—“Ready for Production”,但是理想是理想,理想和現(xiàn)實(shí)之間需要跨越巨大的鴻溝。
Docker進(jìn)入企業(yè)級(jí)的需求,造就了第一類的生態(tài)公司,主要就是Mesosphere\Google和Redhat三家,Mesos本來就是部署、集群管理,之前部署Hadoop大數(shù)據(jù)、批處理、ETL之類的,隨著Docker東風(fēng)吹來,馬上支持部署、管理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ù)庫或是數(shù)據(jù)應(yīng)用,所以CaaS要弄出個(gè)編排,而PaaS并無編排一說。如果只是提供容器,和IaaS其實(shí)并沒有太大的區(qū)別,只不過把應(yīng)用從虛機(jī)轉(zhuǎn)移到容器里來。
PaaS的設(shè)計(jì)原理和方法論是要實(shí)現(xiàn)應(yīng)用的零運(yùn)維,通過平臺(tái)本身來監(jiān)控應(yīng)用,而不是傳統(tǒng)的思維方式,傳統(tǒng)的運(yùn)維是要針對(duì)不同的應(yīng)用去不同的監(jiān)控、不同的調(diào)度、不同的故障恢復(fù),所以運(yùn)維成了救火。
PaaS通過平臺(tái)本身來監(jiān)控應(yīng)用、監(jiān)控容器、監(jiān)控虛機(jī)、監(jiān)控物理機(jī),應(yīng)用不用去管監(jiān)控的事情,無論是應(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ù)庫、消息中間件、大數(shù)據(jù)、緩存等,并不適合運(yùn)行于容器中,PaaS把這些服務(wù)部署在虛機(jī)中,服務(wù)的彈性伸縮要求并不強(qiáng),不像應(yīng)用彈性伸縮的要求比較強(qiáng),誰會(huì)去把一個(gè)mySQL或是Oracle數(shù)據(jù)庫的集群在運(yùn)行中彈性擴(kuò)展一下?
服務(wù)沒必要放在容器中,服務(wù)更多的是需要備份、調(diào)優(yōu)等操作系統(tǒng)相關(guān)的運(yùn)維,而且往往會(huì)涉及到操作系統(tǒng)內(nèi)核的調(diào)優(yōu),而應(yīng)用是往往操作系統(tǒng)無關(guān)了,所以放在容器中。在容器中做操作系統(tǒng)內(nèi)核參數(shù)調(diào)優(yōu)是有風(fēng)險(xiǎn)的。通過區(qū)分應(yīng)用和服務(wù),并且把應(yīng)用放在容器中,服務(wù)放在虛機(jī)中,自然的消除了編排的需求。容器是個(gè)革新性的技術(shù),但是不是任何場(chǎng)合都適用,作用企業(yè)應(yīng)用,應(yīng)當(dāng)在不同的場(chǎng)景選擇不同的技術(shù),而不是一個(gè)技術(shù)包攬全部。