谷歌副总裁谈未来云计算的方向:容器和微服务
原文 http://www.infoq.com/cn/news/2015/06/CAP-Kubernetes
近日,谷歌公司副总裁、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理论的含义并制订了应对策略即可。