Facebook 揭秘其应用测试平台,并开源核心技术

简介:

本周,Facebook让一群记者参观了它位于俄勒冈州普赖恩维尔市的数据中心,在这个过程中也展示了他们的一个移动应用测试实验室,用来测试Facebook app、 Messenger 和Instagram。

目前 这个实验室总共含有60个机架,每个机架上放置32台移动设备,这样整个实验室拥有将近2000台移动设备。每个机架拥有自己单独的Wi-Fi 信号,并配有电磁干扰附件,以确保周围的机架不会相互挤占Wi-Fi 信号。

每次Facebook对自己的手机应用做出改变时,都会在这些设备上进行测试,确保没有程序崩溃以及其他性能问题。为确保所有的测试都是可比较的,每一次测试完成之后,这些手机须全部重新启动。

image

这些移动设备包含了市面上常见机型,例如基本的三星 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)部门内的一个小团队就开始着手组建这些机架。

image

早期的这些机架构造十分简单,都是用的金属材料,这使得Wi-Fi 信号不能有效接收,从而造成整个系统运行不畅。之后员工们尝试建造一面可以放置240部设备的墙壁,但那样占的空间就太大了。

现在新版的机架不仅解决了Wi-Fi 信号问题,还增加了新功能--安装了摄像头,用来追踪设备上的各种情况,然而工作人员好像还没开始用这个功能。

接下来的一段时间,实验室工作人员正试图把每个机架上的设备数量增加到64个,同时让代码加载到移动设备的效率更快。然而可能更重要的是,Facebook正打算开源机架的设计,以及公开Chef的核心技术秘密。

当然,拥有同样类型实验室的并非只有Facebook一家。微软、亚马逊和谷歌都有开放的移动应用测试平台,如果你要测试自己的app,任选一家就行。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
23天前
|
机器学习/深度学习 自然语言处理 搜索推荐
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(下)
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(下)
18 0
|
23天前
|
机器学习/深度学习 存储 自然语言处理
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
22 0
|
iOS开发
|
前端开发 JavaScript 容器
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
|
算法 vr&ar
拒绝晕眩呕吐,Facebook 公布 VR 全景视频稳定技术
VR 晕动症是一个一直未能很好解决的问题,除了硬件方面未能取得突破外,软件部分也是一个原因,特别是 VR 全景视频,如果使用手持式的全景相机拍摄,画面的抖动会进一步加速 VR 晕动症的产生。
207 0
拒绝晕眩呕吐,Facebook 公布 VR 全景视频稳定技术
|
SQL 机器学习/深度学习 人工智能
顶尖架构师能从Google、Facebook、Netflix等公司学到哪些技术?
  架构设计到底是做什么?每个人都有不同的答案,毕竟在不同的时间,不同的系统层级,不同的需求背景上,架构设计的任务都有所不同。那么换另外一个问题,如何成为顶尖的架构师?   先使用程序员的拆分技能:成就优秀需要划分两个阶段,先成为普通的架构师,然后再想办法成就优秀。   虽然 2022 年已经过了六分之一,但我们的新年也就刚开始,常言道种树最好的时间是十年前,其次是现在,学习架构也是一样,希望以下的学习小结可以给你帮助。
198 0
|
Web App开发 前端开发 Windows
2010 Web前端技术趋势及总结 Facebook摘全明星MVP
相关阅读: 参加IE9开发大赛 赢取现金大奖 微软最顶级平台技术会议PDC10全程视频播放 Microsoft Web平台——优秀项目展示 Windows Phone 7 MSDN开发中心 微软Web平台优秀项目精选推荐: 世界顶级论坛、社区程序:bbsmax论坛 世界上最大的自承载博客工具:Wo...
800 0
|
机器学习/深度学习 人工智能 大数据
下一篇
无影云桌面