为什么Bet365对云计算说不?

为什么Bet365对云计算说不?

当很多网站转向敏捷开发模式、使用云服务、采用Java和JavaScript语言时,Bet365(全球知名博彩服务商)仍坚持自己的IT路线。

构建Bet365体育博彩APP的是一种由爱立信发布的开源函数式编程语言和中间件 -- 支持电信交换网络中的分布式、容错和实时软件。

Alan Reed是Bet365的系统开发和支持总监,管理这一个65人的团队,负责开发用户界面并对公司核心产品的中间件提供支持,当前的项目包括横跨Bet365网站、桌面、移动设备和平板电脑的各类博彩产品。

Reed表示:“之所以采用函数式语言而非过程式语言,是因为我们面临着和电信业类似的问题。”

因此,在2012年,Bet365决定用Erlang取代Java作为主要开发语言。

Erlang由爱立信在上世纪90年代提出。电信业者在那个年代所面临的问题,与体育博彩网站有极大的雷同,即可靠性(reliability)、可扩展性(scalability)和简单性(simplicity)。

基于Erlang,Bet365在2014年推出了主打的新产品,其最主要的特性在于可以让用户在赛事结束前就提前结束投注。这需要进行大量概率方面的实时计算。在将数据库迁移到NoSQL的过程中,Erlang也发挥了作用。

跟上创新的步伐

Bet365网站的后台主要处理大量的事务交易,用泛型语言编写,而其前端则主要考虑一致性。“我们力图交付轻量级的产品,让前端代码尽量简洁、通用。”Reed表示。但是,为了适配各类终端设备,需要在保持用户界面一致性和支持设备本地特性之间达成微妙的平衡。

HTML5让Bet365可以构建通用的产品,其中只有少量的代码是基于设备的。“HTML5使我们能够写出通用性较高的产品。”Reed解释到。

“虽然不可能涵盖当前所有的设备,但我们仍然尽力保证代码的通用性。在此基础上,这款APP还有一定程度的差异化。比如,对于iPhone,我们支持特定的手势。对于各类智能手机上按键的不同,Bet365的应用也尽量提供本地化的体验。”Reed说。

“以技术为基础,我们在差异化方面竭尽全力。”Reed补充到。比如,由于可以支持视频功能,Objective C就被用于开发iPhone上的应用;类似的,当HTML5力有不逮时,就使用原生的安卓代码进行开发。

和其他很多网站一样,Bet365也使用了JavaScript。但是,其员工没有直接编写JavaScript代码的权限,而是必须通过 TypeScripts(来自于微软的开源脚本语言)生成JavaScript代码。“这种以规定格式生成Java代码的方式,可以确保代码的纯净,从而 降低错误出现的概率。这一点,对大型团队尤其重要。”Reed表示。

代码的标准性对于网站是极其重要的。“我们必须要面对的一个问题就是,由于代码生命周期很长,相应的维护工作就会变得比较重要。按规定的标准进行开发,有利于减轻维护方面的工作量。”Reed解释到。

Bet365模式

关于敏捷开发的模式,Reed的观点是:“我们还是倾向于使用传统的方法,很适合我们。”用Reed的话来说,就是Bet365是“博取各家精华”。

“在开发实践上我们的态度非常开放,凡是可取之处都会引入。”Reed补充说。

Reed表示,Bet365在软件开发上面临的很多挑战是非常独特的,新员工必须接受严格的培训。

不过,Bet365在开发工作上的确借鉴了敏捷模式的某些特质。“我们每天都发布新代码并且持续更新,但是技术规格和需求文档不能频繁变动。”

由于移动互联网应用需要持续地改进,传统的瀑布型开发模式不再适用。因此,Bet365需要在两者之间进行平衡。“我们所面临的情况,只采用瀑布模式或敏捷模式都不是很合适。”Reed表示。

独辟蹊径的技术路线

出乎意料,Bet365基于自有的数据中心构建了基础架构,而不是采用云方案。

对此,Reed回应到:“我们倾向于自建系统,这是最适用于Bet365的策略。”

在软件开发的诸多方面,Bet365的这个策略都始终贯彻如一 – 独有的开发模式、基于Erlang而非Java的后端系统、用TypeScript对JavaScript(内嵌于微软的Visual Studio 2013中)进行标准化约束等。所有这些,都体现了Bet365不随波逐流人云亦云,而是根据自身业务选定技术路线的理念。


本文作者:佚名

来源:51CTO

上一篇:DeepMind提出基于视觉的强化学习模型,十八般兵器对机器人不在话下


下一篇:SAP WM 二步法确认TO场景下WM库存状态变化(一)