这不是刷榜工厂,这是 Facebook 的移动设备测试实验室

下一篇文章

游戏引擎开发商 Unity 融资 1.81 亿美元,估值达 15 亿美元

本周早些时候,Facebook 带领一小群记者参观了该公司 位于俄勒冈州普赖恩维尔的数据中心 。在参观过程中,Facebook 还向记者展示了他们用真机测试 iOS 和安卓版 Facebook、Messenger 以及 Instagram 应用的移动设备实验室。

device_testing_lab_facebook 这个移动设备实验室目前在上述数据中心占据着 60 组机架,每组机架放置着 32 部手机,总共将近 2,000 部。不过,就像 Facebook 的安托万·雷维赛特(Antoine Reversat)告诉我们的那样,他们计划在今年夏天让每组机架放置的手机增至 64 部。

每组机架配备有自己的 Wi-Fi 网络,而且进行了 电磁干扰屏蔽 处理,这样各个机架的设备就不会接收到相邻机架的网络信号。

每次工程师对 Facebook 的主应用做了改动之后,新版应用就会自动在这些设备上接受测试,以确保应用没有崩溃或运行问题。

这些测试设备种类繁多,从基础的 Galaxy 安卓手机到最新款的 iPhone,一应俱全。正如雷维赛特指出的那样,这些设备所运行系统的版本也各有不同。就安卓来说,设备运行的是 KitKat 往后的版本;至于 iOS,则是从 iOS 7 到 iOS 9(我猜,这个团队也在对 iOS 10 进行测试)。

为了确保这些测试具有可比性,每部手机在完成测试后都会进行系统重启。

此外,这些手机也需要连接到 PC 或 Mac,以获得最新的代码。正因为如此,每组机架之下都摆放着 PC 和 Mac Mini。Facebook 在每组机架配备了 8 台 Mac Mini 用于 iOS 测试(因为每台 Mac 只能同时连接 4 部 iPhone),或者是每组机架配备 4 台 OCP Leopard 服务器 用于测试安卓设备。

dsc06588

不过,既然市面上存在大量操作更简单的模拟器,Facebook 为什么要选择使用真机进行测试呢?该公司的测试团队称,虽然模拟器能够很好地帮助找出应用无法工作的原因,但它们却不善于进行性能测试。“举例来说,我们无法追踪到发生在模拟器中的 1%的性能退步。”雷维赛特说,“所以,我们选择了真机测试。”

除了提到使用了配置管理工具 Chef,Facebook 没有具体说明他们是如何把软件升级推送到手机的。尽管如此,雷维赛特提到,这个设备实验室脱胎自公司的 CT-Scan 项目——去年,Facebook 首次向外界 提及 这个性能监测服务。在早期,工程师只会在单部设备上测试应用。但考虑到如今市面上存在的多种手机和平板电脑,原先的测试方法已经无法进行下去。于是,Facebook 生产工程部门 内部的一个小团队开始搭建这些机架。

  1. img_20160712_122640

  2. fb_data_center-2

  3. fb_data_center

这些机架的早期版本非常简单,而且运转效果也不是很好(主要是因为机架采用了金属材质,而 太多的金属 意味着 Wi-Fi 网络信号会受到影响)。此外,这支团队还尝试过建造一个由 240 部手机组成的设备墙,但那需要占据太多的空间。

目前,Facebook 在普赖恩维尔数据中心使用的是最新版本的移动设备机架,它上面还配备了摄像头,用以追踪设备在测试过程中的运行情况。不过,该团队似乎尚未启用这项功能。

这支团队目前正在研究如何让每组机架支持 64 部设备,以及怎样更高效地向设备推送新代码。不过,也许更加重要的是,该团队还计划将机架设计以及管理这些手机的工具 Chef 开源。

当然,运营这种实验室的公司不止 Facebook 一家。举例来说,如果你想测试自己的应用,你可以选择 Xamarin(现已被微软收购)、亚马逊谷歌(仅支持安卓应用)等公司提供的测试服务。

fb_data_center-3 翻译:王灿均(@何无鱼

Facebook lifts the veil on its mobile device testing lab

blog comments powered by Disqus