近日,谷歌公司副總裁、CAP理論的提出者、加州大學(xué)伯克利分校教授Eric Brewer接受了Mesosphere公司高級(jí)研究分析師Derrick Harris的采訪。Eric教授就采訪中提到的容器技術(shù)與CAP理論等方面的問(wèn)題一一進(jìn)行了回答。
容器技術(shù)何以現(xiàn)在崛起?
Eric教授表示他目前在谷歌主要負(fù)責(zé)Kubernetes和容器相關(guān)的項(xiàng)目。在此之前,他已經(jīng)通過(guò)開(kāi)發(fā)Inktomi搜索引擎積累了相關(guān)的經(jīng)驗(yàn)。與谷歌公司相同,Inktomi團(tuán)隊(duì)都是在硬件而不是虛擬機(jī)上以多進(jìn)程的方式來(lái)運(yùn)行不同的應(yīng)用程序。而容器技術(shù)正是這種多進(jìn)程運(yùn)行方式的更高層抽象。因此,Eric教授表示他之前就相信,由這樣經(jīng)驗(yàn)豐富的團(tuán)隊(duì)開(kāi)發(fā)的容器集群管理系統(tǒng)Kubernetes必然會(huì)取得成功。但是,現(xiàn)在社區(qū)中每天提交代碼和評(píng)論的數(shù)量如此之多還是超出了他的預(yù)期。Kubernetes團(tuán)隊(duì)不得不努力提高處理代碼和評(píng)論的速度。
Eric教授還進(jìn)一步透露了Kubernetes與Borg及Omega的關(guān)系。Borg和Omega是谷歌之前就已經(jīng)開(kāi)始使用的資源編排系統(tǒng)。為了方便用戶,谷歌在這兩個(gè)項(xiàng)目的基礎(chǔ)上提出了開(kāi)源的Kubernetes。該項(xiàng)目充分借鑒了之前兩個(gè)項(xiàng)目中積累的經(jīng)驗(yàn)以及教訓(xùn)。
CAP理論如何指導(dǎo)分布式系統(tǒng)設(shè)計(jì)?
接下來(lái),Eric教授與Derrick討論了關(guān)于CAP理論的問(wèn)題。CAP理論是Eric教授在2000年P(guān)ODC研討會(huì)上提出的一個(gè)猜想:一致性、可用性和分區(qū)容錯(cuò)性無(wú)法在分布式系統(tǒng)中被同時(shí)滿足,并且最多只有兩個(gè)能夠被同時(shí)滿足。該猜想首次把一致性、可用性和分區(qū)容錯(cuò)性這三個(gè)因素總結(jié)出來(lái)作為系統(tǒng)設(shè)計(jì)的重要特征,并斷言用這三點(diǎn)可以劃分所有的分布式系統(tǒng),指明了這三個(gè)特征之間不可能同時(shí)共存的關(guān)系。Eric教授表示,當(dāng)初提出該理論時(shí),他也十分困擾,認(rèn)為分布式系統(tǒng)在無(wú)法全連接所有節(jié)點(diǎn)時(shí)必須要在可用性與一致性上進(jìn)行選擇。多年后再看CAP理論,他現(xiàn)在有了更加清晰和深刻的理解。通過(guò)Bigtable、Cassandra以及Dynamo等數(shù)據(jù)管理系統(tǒng)在這方面的探索,大家也意識(shí)到了該理論的真正含義。Eric教授舉了一個(gè)自動(dòng)取款機(jī)(ATM)的例子。在ATM無(wú)法連接服務(wù)器的時(shí)候,分布式系統(tǒng)的一致性和可用性的確不可能被同時(shí)滿足。但是,銀行一般會(huì)采用提供小額單次取款服務(wù)的方式來(lái)進(jìn)行折中。也就是說(shuō),系統(tǒng)通過(guò)允許一定的不一致性來(lái)獲得一定的可用性。而且,通過(guò)審計(jì)/賠償?shù)姆绞剑鹑谙到y(tǒng)很好的解決了類似問(wèn)題。至于構(gòu)建新的應(yīng)用時(shí),Eric教授認(rèn)為只要開(kāi)發(fā)人員領(lǐng)會(huì)CAP理論的含義并制訂了應(yīng)對(duì)策略即可。