Uber的任务分派系统是运行在Node上,这是一个运行在服务器端的JavaScript平台。当一个客户打开app或者网站来进行车辆预定或者调用其他的API来查看可用车辆信息的时候,大部分的这些服务都是通过运行在Node上面的平台来提供的,Croucher说道。
“这里大部分的工作都是由Node来完成的,我们从公司成立的第一年就开始使用Node,非常的早,“ Croucher继续说道。同时他也强调说Uber是Node的第一批采用者之一,同时也是第一批“真正基于Node打造出一门大生意“的企业之一。
但Node.js并非Uber唯一使用的语言。谷歌的Go语言在Uber中也占有一席之地。“我们此前已经开始使用Go来完成一些任务,其中涉及的一部分是对性能有相当高的需求的。我们一开始是用打算Node来进行编写的,但为了让系统获得更优的性能,我们现在开始使用Go来对这些特殊的部分进行重写。“
同时,Uber当前使用的是比较老的Node 0.10版本,因为它需要看到“新版本能带来明显的效益”才会进行升级。“Node.js基金会经理Mikeal Rogers则要求用户们将Node.js升级到版本4.“
除了贴近潮流的Node.js和Go之外,Python也是Uber所青睐的语言之一。“我发现Python其实也是Uber所采用的几个技术之一就是,“Croucher继续说道。”对于我们来说,可以在不同的人才池中进行选择是非常有帮助的,所以我们的很多系统也是使用Python来编写的。我们发现有大量的Python开发者编写了大量的优秀的服务,特别是在一些商业领域以及其他一些特别的领域上面。“