本周,Facebook让一群记者参观了它位于俄勒冈州普赖恩维尔市的数据中心,在这个过程中也展示了他们的一个移动应用测试实验室,用来测试Facebook app、 Messenger 和Instagram。
目前 这个实验室总共含有60个机架,每个机架上放置32台移动设备,这样整个实验室拥有将近2000台移动设备。每个机架拥有自己单独的Wi-Fi 信号,并配有电磁干扰附件,以确保周围的机架不会相互挤占Wi-Fi 信号。
每次Facebook对自己的手机应用做出改变时,都会在这些设备上进行测试,确保没有程序崩溃以及其他性能问题。为确保所有的测试都是可比较的,每一次测试完成之后,这些手机须全部重新启动。
这些移动设备包含了市面上常见机型,例如基本的三星 Galaxy 系列,以及最新版的iPhone系列。同时,这些手机也会运行各版本的操作系统,包含了 KitKat以来所有版本的安卓系统,以及 从 iOS 7 到 iOS 9。
另外,为了加载最新的代码,所有手机都要连上PC和Mac Mini。分别对应安卓和iOS系统,一台机架上可能配有4台OCP Leopard服务器 或8台Mac Mini(因为一台Mac Mini 只能连接4台手机)。
相比于在实体设备上测试,模拟器上测试更加容易,但是Facebook为什么选择前者呢?
Facebook团队成员解释道,尽管在模拟器上可以弄清楚app产生错误的原因,但是它不能很好地测试性能,“比如说,我们并不能在模拟器上追踪1%的性能回归,所以我们选择了实体设备测试。”
虽 然Facebook没有明确说明除了使用Chef这个服务器工具以外,他们是怎样把最新的代码加载到这些移动设备上的,但是工作人员提到这个实验室来源于 Facebook在CT-Scan领域里的工作(CT-Scan 是一种性能监测服务),或许我们从中能稍微得到一些线索。
在早些时候,工程师只在一台设备上测试运行app,鉴于市场上多种多样的手机和平板设备,这是不够的,所以Facebook“生产工程”(Production Engineering)部门内的一个小团队就开始着手组建这些机架。
早期的这些机架构造十分简单,都是用的金属材料,这使得Wi-Fi 信号不能有效接收,从而造成整个系统运行不畅。之后员工们尝试建造一面可以放置240部设备的墙壁,但那样占的空间就太大了。
现在新版的机架不仅解决了Wi-Fi 信号问题,还增加了新功能–安装了摄像头,用来追踪设备上的各种情况,然而工作人员好像还没开始用这个功能。
接下来的一段时间,实验室工作人员正试图把每个机架上的设备数量增加到64个,同时让代码加载到移动设备的效率更快。然而可能更重要的是,Facebook正打算开源机架的设计,以及公开Chef的核心技术秘密。
当然,拥有同样类型实验室的并非只有Facebook一家。微软、亚马逊和谷歌都有开放的移动应用测试平台,如果你要测试自己的app,任选一家就行。