Erlang语言和投注交易;市场能从Whatsapp中学到什么?

应用程序Whatsapp颠覆性的入口被以190亿美元出售给脸书Facebook,赌博行业可以以此作为教程,Erlang语言会成为开启教程的钥匙吗?Justin Worrall对此做出解释。

Categories: 技术

Related Jobs

今年到目前为止最大的科技新闻肯定是Facebook支付190亿美元收购应用程序Whatsapp。为什么Facebook会为一个聊天应用程序支付如此令人垂涎的一笔钱,这本身就是一个有趣的问题,与这篇文章和网络有点不太搭边,但却值得你读读Benedict Evans的观点。

在我看来,最有趣的是Whatsapp现在比全球短信系统合在一起发送的信息都多,而Whatsapp只是由32个工程师来运营的。

Whatsapp所发的信息量增长还在加速,可能以超过SMS全球总量。(pic.twitter.com/KsR85Mplrt

——Benedict Evans,2014年2月19日

聊天太痛苦,让我们去购物

这绝非易事,因为现在聊天应用程序在Web的通用语HTTP下很难执行得很好。这是因为HTTP从本质上讲是一个文档检索系统。想想提Tim Berners Lee,在欧洲原子物理实验室设计了一个系统来浏览学术论文。想想你自己在阅读BBC新闻,看到一个链接,点击它,浏览器打开连接,请求文件,下载文件,服务器关闭连接。

关键是HTTP如何管理连接——每一次响应送达就关闭一次。这就意味着,虽然很多人可能在某一时刻同时在阅读BBC新闻,实际只有一小部分人同时连接到服务器上,即那些正在下载页面的过程中的人。这,正如我们所看到的,反过来又对服务器架构有着深远的影响。

一个聊天工作流程是绝对不同的。想想你需要一个聊天应用程序做什么:

  • 你希望能够快速发送多个消息
  • 你不一定想要得到立即的回应
  • 然而你确实希望服务器将你的信息即时传递给收件人
  • 你想让你的消息立即被发送出去以保持聊天流畅

这些绝不同于简单的要求/回应。

这都归功于并发性

如果你尝试过通过HTTP实现聊天,你会面临各种各样的麻烦——基本上,聊天体验的“瞬间发生”的本质是丢失了的。因为你没有为每个客户端开放连接,你就不能立即发送消息,你需要先将消息写入数据库,然后有单独的工作人员读这些数据再把数据“推”到客户端,资源越多,用户体验则越差。

对此有一个解决方案——放弃HTTP,与每一个客户保持一个开放的连接。但这如同打开一大盒爬满蠕虫的罐头,因为已经习惯于只处理一小部分客户在某一时间的连接,而现在必须处理在同一时间与每一个客户连接,毫无意外,这将造成活跃连接数目成十或百倍增加。

换句话说,这不取决于你处理器的速度,聊天信息还是比较小的。这也与你数据库无关,你应该专注于传输这些消息,而不是存储它们。

不,聊天只与并发性有关。拥有同时处理多个连接的能力不是一件容易事。

关于系统暂时讲这么多。我只是就一个与运动相关的想法进行一下类比:

博彩交易就如同一个聊天应用——投注即是消息;市场即是群聊空间;投注单即是聊天记录。

想知道现在Betfair公司处理的多少赌注有多少吗?2010年的记录是每天五百万英镑,此后增长这里就不作评论了。

—— Biegemartin (@beigemartin)  2014年3月7日

这只是四年前的数字,四年里可以发生太多事了。

看着一个活跃投注账户,我发现,1月31日投注为33,800,000,000笔,1月1日投注为32,900,000,000笔,所以我们可以合理地假设每个月有9亿笔投注,或每天3千万笔。

这就是Whatsapp式增长!让我们做一个不公平的比较:

我非常喜欢不公平但相关的比较。这就是颠覆作用。越不公平,越具颠覆性。

Whatsapp Betfair
每天的信息量 / 交易量 200亿 30千万
雇员数 32 2000(1)
市值(英镑) 120亿 12亿(1)
每个雇员每天处理的信息量 / 交易量 6亿25百万 15,000
每个雇员创造的市值(英镑) 3亿75百万 60

所以看起来好像每个Whatsapp工程师处理信息的量是Betfair工程师的41666倍还多。

这是相当多的。

不公平,是吗?嗯,你可能会认为,并不是所有的Betfair公司员工都是工程师。但即使只有十分之一的Betfair公司员工是工程师,数据仍然不妙。

Maybe bet messages are larger than chat messages ? Well the text portion is probably a bit bigger, but then Whatsapp is carrying a lot more binary data in the form of photos, so I’d argue that the average Whatsapp message is in fact larger, even if only 1 in 10 people are sending photos.

也许投注信息比聊天信息更大?文字部分可能是大一点的,但图片处理后Whatsapp承载更多的二进制数据,所以我认为Whatsapp信息实际上是更大的,即使只有十分之一的人发送的图片。

所以也许比较不公平。因此很显然,这些孩子中有人非同凡响。

那么我们Whatsapp公司的朋友们究竟在暗中做什么呢?

他们很明智地选择了Erlang语言,这种语言几乎都被用来处理并发。Erlang设计之初是用来进行电话信号交换,无意中却与聊天系统有很多共同点,和博彩交易也有共通之处。

Erlang不是新生事物。它是上世纪90年代由爱立信公司开发来运行AXD系列电话交换。爱立信的计算机科学家们恰好在90年代解决了3许多现代系统今天仍存在的问题。(出处:Bet365)

同时,处理数以百万计的连接对于Erlang语言来说不成问题。每台Erlang语言编写的应用服务器用空闲内存和CPU可以在实际的生产应用中生成二百万个连接。(出处:ninenines.eu)

最有意思的一点也许是Erlang既不是快速的语言也不是一门特别开发者友好的语言;但它使Whatsapp发布的公司业绩数据优于采用不同语言运作的同类公司几十倍。

Betfair公司的技术设置如何?众所周知,他们在2004年公布从VB语言转向Java语言:

该公司表示,在项目的早期阶段,他们花了很多时间来评估微软公司NET和J2EE的优缺点,但最终决定用Java,因为平台的“认证企业需记录、保持安全性和可维护性” (出处:The Insight)

我们也知道,他们仍然在使用Java写IPO日期,因为甲骨文公司(Oracle)一般不会抗拒对其“企业”系统的吹嘘:

但Betfair公司核心的业务逻辑语言是PL / SQL。公司有超过250000行的PL / SQL代码,运行主要交换系统的投注引擎完全是用PL / SQL写的。

数据库架构师Alex De Vergori说: “我们真的是结合了甲骨文公司(Oracle)技术和PL / SQL语言来进行交易的。我们每天处理超过5百万笔投注,这一切都直接进入数据库进行相互匹配。”(出处:Oracle)

250000行SQL代码的博彩交易。这听起来很糟。听起来Betfair公司是一个以数据库为中心的系统,把信息写到数据库,再把更新的信息推送给客户,这与他们网站提供的非实时体验吻合(甚至有一个“刷新”按钮;见过聊天应用程序中有“刷新”按钮吗?)

Betfair公司已经从一个如初生小猫般的新兴企业成长壮大成一只大肥猫了,其中分支可能会由于较低成本受到损失。

我们已经涵盖了技术的角度,但光凭好的技术是不够保证接下来会继续成功的。幸运的是,我觉得有2个其他因素使破坏性时机成熟。

高频交易

再看一下投注的增长(四年间由5百万上升到3千万)。Betfair公司的盈利同比增长也是六倍吗?答案是否定的。那么投注增长以散户驱动不大可能喽(因为这方面利润没有增加)?

不尽然。可能性更大的是投注增长受技术型博彩集团的高频交易驱动。记住,电子提交额外的赌注,边际成本接近于零。我推测某种帕累托(Pareto)原则在起作用,即20%的用户提供80%的增长。

事实上可能比这更极端,只有少数集团促进了投注增长;我打赌100大集团会分去Betfair公司50%以上的投注量。

保证金

现在这些集团几乎肯定是高利润的(为什么还要提交所有这些投注?),Betfair公司通过收取保证金而吸走40%的利润,他们肯定很不高兴。

Betfair公司显然决定取得税务局的合法位置;因为在税务局眼中没有职业赌徒这样的概念(职业赌徒能撑多久?!),Betfair公司已经很清楚,向其他行业一样上税,能帮助公司立足。

但这将使他们面临税收套利,具有良好流动性和较低的税收的交易,对于一个大型、盈利的集团来说,突然成了一个非常引人注目的命题。

我认为,Betfair公司不会一夜之间分崩离析。刚开始,他们有巨大的市场影响力,你可以不考虑与他们的零售业务竞争,但他们的批发交易业务确实看起来像是要垮掉。如Whatsapp公司前车之鉴,这既有他们自己的战略失误,也受到了更便宜的开放源技术影响。。

 

About Justin Worrall

Justin Worrall works at Sportsrisq Capital, focusing on modelling sports- related insurance risks. In a former life he was a derivatives structurer for a US bank.
No Thoughts on Erlang语言和投注交易;市场能从Whatsapp中学到什么?

Leave A Comment