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