Facebook表示:数据驱动初创公司发展无限

“我们要利用数据做每一个决定。 我们要将公司建成数据驱动公司。”到硅谷走一趟,你会听到到处都是类似的豪言壮语,至少在Google成为世界上最强大的公司以后是这样。

上面那一段话是Airbnb的工程副总裁Mike Curtis说的。他半年前加入这家公寓分享首创公司,他来Airbnb之前在Facebook做了近两年工程总监。 我们上个星期谈起Airbnb数据驱动的扩展宏图的真正含义,以及Curtis和他的工程团队如何把这个宏图变为现实。 跟他在互联网上与网络数据打交道的同辈一样,Curtis认为,他和Airbnb的数据研究工作人员的工作,与公司战略性带头人的工作有着本质的联系。

Curtis说:“我们认为,我们在旅游领域推动数据科学,迄今为止我们做的可能比任何人都多。” 从长远来看,这样做——并在过程中同时获利——必须利用一些尖端工具。

宏图: 公寓共享变得更加人性化

Airbnb产品倚重人性化,目前最大的数据问题之一就是找出最佳的方法实施人性化搜索。 他说,“我们希望客人搜索得到的地点接近他们想找的东西。”

Facebook前工程总监:数据驱动初创公司前途让人惊叹 

Mike Curtis

然而,他补充说,要搞清楚如何为每一个用户的搜索排名在算法上是一个甚为困难的问题。 我们没有更深入到谈到细节,但问题似乎很清楚。要对一个群体的搜索结果或是对地域性的搜索结果排序是很容易的,但要弄清楚如何准确地考虑一个用户的各种因素,如喜好、社会关系、租赁历史、评论和其他数据点,其复杂度会上升到另一个层次。(再加上Airbnb的数据来自特定的城市、访客和主人的地域以及其他元数据也是要考虑的因素。)

推特的个性化搜索引擎用到数据科学,因为需要考虑众多因素以确定相关性,实现起来有相当的难度,是一个很好的例子 。

Curtis说,Airbnb进行大量数字计算,意图能帮助公寓主人找到最佳的租金率。

在公司内部,Airbnb希望叫板Curits的前雇主Facebook。Facebook在利用Hadoop建造工具方面小有名气,现在Facebook公司几乎每一个人都直接或间接地用到Hadoop。 Curtis说,Facebook“真正地让员工深入接触数据及找出关键的问题。……在Airbnb打造产品的过程中,我也想这样做。”

Mesos种种

Airbnb兜里的一个重要战略性工具之一是一个开源集群管理项目,名为Mesos。Airbnb用Mesos实现自己的数据之梦。 Mesos用到的技术,源自加州大学伯克利分校的AMPLab,可以让用户在一个单一的资源集里运行多种类型的计算框架(也有可能只是几个不同的Hadoop集群)。Mesos在网络上的名气要拜推特所赐,Mesos项目上个星期一跃而成顶级Apache项目。

Facebook前工程总监:数据驱动初创公司前途让人惊叹

Mesos结构

对Airbnb而言,Mesos的关键是让公司里的工程师在利用Hadoop范畴以外,最大限度地利用基于Amazon Web Services的基础设施。 Curtis解释说,Airbnb在很多地方都用到Hadoop,但是Airbnb想在流处理(stream processing)方面用Storm做实验,Airbnb希望用Spark(也是AMPLab出的东西)来处理Hive查询,会比Hadoop允许的速度快些。

实际上,Spark在搜索排名、定价和检测服务的“不良行为”方面有可能特别有用,Curtis说,“这些东西很多都涉及到机器学习模型,”与Hadoop比,Spark的性能优势意味着它可以在较短时间内一遍又一遍运行这些模型。

Chronos是Airbnb打造的一个分布式作业调度程序,用于云环境之中。Chronos也是在Mesos上运行的。

Airbnb用Mesos的一个很大的原因肯定是资源管理和效率,不过Curtis说,Mesos也可以帮助Airbnb在综合工程战略方面更进一步,可以有助于建立小团队快步前进。 Airbnb自动资源配置做得越好,工程师做其他事情的时间就越多。他说,“理想的情况下,基本思想是利用Mesos的自动化让极少数的几个工程师可以产生较大的影响。”

云:哇噻!Elastic MapReduce:无所谓?

虽然Airbnb仍在用AWS云,Airbnb的Mesos却在考虑从流行Elastic MapReduce的Hadoop服务里迁移出来。 据Curtis说,走这一步棋有几个原因,但最主要的原因是要用Mesos管理所有Airbnb需运行的框架,从而对Airbnb的Hadoop环境有更精细的控制。他说,Elastic MapReduce在很大程度上来说是亚马逊自己的分布式Hadoop,也就是说,用户打补丁或完成类似的东西时必须依赖AWS,Elastic MapReduce也仅仅是做了Hadoop的事。

另一个工程师Brenden Matthews在上周在推特总部做了个演讲,讲Airbnb从Elastic MapReduce迁移到Mesos。他的幻灯片列出了更多转换的原因,他还列出了有关在云里运行Hadoop的常见挑战。

Facebook前工程总监:数据驱动初创公司前途让人惊叹

Curtis说,尽管如此,AWS总的来说还是很可靠的,而且还有云的灵活性——与Mesos的组合一起——意味着Airbnb可以想干什么就干什么,想什么时候干叫什么时候干。Airbnb的临时分析查询不会干扰Airbnb的长时间运行的批量工作流,反过来也一样。

Curtis说,“运行群集作业的速度完全处决于资源配置。我们在池里放多少资源呢?”

Curtis 90年代后期出道于AltaVista,后来在AOL、Yahoo和Facebook待过。他讲起资源时笑遂颜开,一般来说,像Airbnb这样的初创公司,一开始购置和管理服务器这么少的投资,云计算提供了很大的潜力发展空间。他说,“想想今时今日,所有的所有都是抽象的……真的是如此的美好和让人惊叹。”