随着Uber的业务不断向新的城市拓展,对高可用、可伸缩的需求也随之增加。而且团队规模也在扩大,开发人员数量光今年就翻了一倍,构建可靠系统的挑战也随之而来。就Uber的规模而言,短暂的服务中断,不管是对公司的营收还是对人们的日常生活,都会带来很大的代价。 为更好地处理失效,必须把失效看作常见现象,并针对性地作出设计。Uber构建的每个新系统都会经过常规的失效测试,数据库也是如此。在公司规模很小时一些行之有效的手段不再适用,这时需要新的技术选择。从小变大的过程,文化和技术方面的挑战兼而有之。本次演讲将分享Uber扩展系统和团队规模的解决之道,并讲解Uber是如何看待高可用的。
Matt是Uber的首席系统架构师,主要负责构建Uber的可伸缩、高可用的后端分布式系统。他在Uber的第一个项目是帮助设计了新的派单平台(Dispatch Platform),该系统主要是用Node.js编写的。在此过程中,他还参与开发了一些用于构建和维护分布式系统的新组件,大部分组件都是开源的。 在Uber有个有趣的挑战,后端系统是用很多不同的语言编写的,其中有JavaScript(Node.js)、Python、Go和Java。Matt目前的项目是构建一个RPC框架,支持这些语言无缝互操作,该系统也能处理服务发现和路由。 在加入Uber之前,他是Voxer的联合创始人兼CTO。Voxer的Node.js部署规模和压力可能是业界最大的。他在操作系统、网络等方面经验非常丰富。
|