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

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

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

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

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

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

  图自:Techcrunch

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

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

  图自:Techcrunch

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

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

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

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





====================================分割线================================


本文转自d1net(转载)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)

责任链模式(Chain of Responsibility Pattern)职责链模式意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系将这些对象连接成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。责任…

YOLOv7 在 ML.NET 中使用 ONNX 检测对象

本文介绍如何在 ML.NET 中使用 YOLOv7 的 ONNX 模型来检测图像中的对象。什么是 YOLOYOLO(You Only Look Once)是一种先进的实时目标检测系统。它是一个在COCO数据集上预训练的物体检测架构和模型系列,其版本也是在不断优化更新。2022年7月&a…

NppFTP小插件的使用

大家在Linux系统中配置运行环境时,一定会遇到相关配置文件的修改,虽说在Linux系统中可以使用vi,vim的命令进行文本编辑,但是操作起来还是没有在Windows系统中用的爽,特别是操作大文本量的文件时。Notepad里提供了一个小插件&#…

『实战』使用Excel催化剂二维码功能批量生成带不同图案二维码。

熟悉Excel催化剂的老读者都知道,每逢图书大促,笔者都会向出版社申请优惠码优惠券来惠及广大粉丝。当然公众号上帮出版社推荐图书,会有佣金回报,这也是笔者唯一能接受的推广方式。公众号自创立以来,没有接过软文&#x…

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。要添加System.Web.Extensions.dll的引用。该类位于System.Web.Script.Serialization命…

使用vue组件搭建网页应用

使用vue组件搭建网页应用搭建开发环境开发组件搭建开发环境 搭建一个 vue 项目最快的方式就是使用 vue cli 脚手架进行初始化,包含了所有完整的依赖及开发配置。 首先全局安装 vue cli,打开 cmd 命令提示符 或者 power shell,输入以下命令&…

重新整理 .net core 实践篇 —linux上排查问题实用工具 [外篇]

前言介绍下面几个工具:Lldbcreatedumpdotnet-dumpdotnet-gcdumpdotnet-symbolProcdump该文的前置篇为:https://www.cnblogs.com/aoximin/p/16839812.html献给初学者,这篇就只介绍下看下日志和lldb,毕竟东西太多了。正文我以官网的例子作为演示&#xff1…

Office 365离线安装

Office 365除了可以在线安装外,还可以进行离线安装,但激活还是需要连接互联网的哟首先下载Office部署工具https://www.microsoft.com/en-us/download/details.aspx?id49117 下载文件后,运行自解压缩可执行文件,其中包含 Office 部…

reduceByKey和groupByKey区别与用法

2019独角兽企业重金招聘Python工程师标准>>> 在Spar看中,我们知道一切的操作都是基于RDD的。在使用中,RDD有一种非常特殊也是非常实用的format——pair RDD,即RDD的每一行是(key, value)的格式。这种格式很…

软件工程的第一性原理丨SmartIDE

作者:徐磊原文地址:https://smartide.cn/zh/blog/2022-1022-software-engineering/徐磊英捷创软科技(北京)有限公司创始⼈/⾸席架构师 / CEO / SmartIDE开源项⽬创始⼈。微软最有价值专家MVP,微软区域技术总监&#xf…

排序算法之快速排序详解

一、算法介绍 快速排序:快速排序的基本思想是通过一次排序将等待的记录分成两个独立的部分,其中一部分记录的关键字小于另一部分的关键字。C部分的快速排序一直持续到整个序列被排序。 任取一个元素 (如第一个) 为中心提出所有小于它的元素,并…

openstack 中国联盟公开课參会总结

主流趋势 1. openstack defcore 互操作性认证。打通不同的openstack 厂商之间的连接2. 首批OpenStack管理员认证(COA)将于2016年进行3. 混合云应用广泛 Cloud Broker,cascading openstack 云连接器4. DevOps5. 虚拟桌面6. Storage 方面,Ceph和Glusterfs 7. Network…

Re:从零开始的Vue项目搭建

Re:从零开始的Vue项目搭建初始的终结与结束的开始Nodejs项目的简单测试从零开始webpack开发模式webpack编译打包后记初始的终结与结束的开始 最开始接触vue项目搭建是从vue-cli开始,模板式操作,一键搞定,几乎可以无缝进入代码开发…

C# WPF 用代码画一幅图(*精品*)

概述有时候我们的程序界面中需要显示一些简单的示意图,一般我们有原图的话直接嵌入我们程序就可以,但有时候我们没有原图,这时候我们不妨用代码自己画出来.今天小编要给大家展示的是这样一副图片:接下来,我就用代码纯手…

矿难让显卡压了那么多货咋办?NV如是说

2019独角兽企业重金招聘Python工程师标准>>> 在苏州 GTC 开幕的几天前,英伟达刚刚遭遇了一次股价的腰斩。 近来加密货币的热度渐低,受到挖矿热潮照顾许多的英伟达「矿机」销量受到打击,甚至出现了严重的库存危机,加上近…

花式看超级碗 人工智能、大数据在碗里

“超级碗”可不是一个大碗!!!超级碗(Super Bowl)是美国国家美式足球联盟(也称为国家橄榄球联盟)的年度冠军赛,胜者被称为“世界冠军”。超级碗一般在每年1月最后一个或2月第一个星期天举行,那一天称为超级碗星期天(Super Bowl Sunday)。超级碗是比赛的名…

SimMechanics/Second Generation倒立摆模型建立及初步仿真学习

笔者最近捣鼓Simulink,发现MATLAB的仿真模块真的十分强大,以前只是在命令窗口敲点代码,直到不小心敲入simulink,就一发不可收拾。话说simulink的模块化建模确实方便,只要拖拽框框然后双击设置属性就可以慢慢堆建自己的…

10 行代码提取复杂 Excel 数据

把 Excel 文件导入关系数据库是数据分析业务中经常要做的事情,但许多 Excel 文件的格式并不规整,需要事先将其中的数据结构化后再用 SQL 语句写入数据库。而一般情况下,结构化的工作量会比较大,而且很难通用,每次都要针…

人工智能模型的网络结构可视化

本文主要介绍人工智能模型的网络结构可视化的常见方法。对于使用神经网络模型来说,我们主要关注的是模型的输入和输出。在 ML.NET 中使用 ONNX 模型时,我们就需要了解这些信息,以便在构成神经网络的所有层之间生成连接映射。下图就是昨天 《Y…

整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例

http://2sharings.com/2015/asp-net-mvc-5-custom-404-500-error-hanlde https://blog.csdn.net/yhyhyhy/article/details/51003683 ASP.NET MVC 5的开发中,服务器的各种错误[如:401(登录授权验证),403(禁止…