近日,谷歌公司副总裁、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 理论的含义并制订了应对策略即可。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论