Facebook公司在其普赖恩维尔数据中心构建移动测试实验室

简介:

日前据悉,Facebook公司已经在其俄勒冈州普赖恩维尔的数据中心创建了一个独特的移动设备测试实验室。该公司采用了60个定制服务器机架,基础设施的自动化工具Chef,数据中心的布线技术,以及近2000部平板电脑和智能手机,旨在提高第三方硬件与自己的软件之间的兼容性。

  Facebook公司在普赖恩维尔数据中心的移动设备实验室

  第一代移动设备机架metalsleds

  第二代移动设备机架godola

  第三代移动设备机架slatwall

  第四代-移动设备机架

Facebook公司曾在实验室对部署手机设备的机架设计进行了几次尝试,而工程师们意识到采用数据中心机架设计是这项工作的最佳选择。现在,该公司正在致力于开源的机架和基础设施的自动化工具的相关设计。

试验和错误

Facebook公司在普赖恩维尔的数据中心是该公司采用自己的设计和产品建设的第一个数据中心,这代表了其在大型数据中心的未来思考和设计理念与创新:2013年,该数据中心分别获得DatacenterDynamics的两个类别的奖项。

Facebook公司已在该数据中心园区新建了一个设施,目前正在兴建第三个,预计将在今年12月完成。

原来,除了数千台兼容开放计算项目(OCP)的服务器以外,普赖恩维尔数据中心还拥有数以千计的移动设备。

该公司在2015年推出了一个CT扫描平台,可以监控Facebook的软件代码更改的影响,并帮助开发者减少发生错误,例如产生更多的数据,内存不足或电池的使用等等。

Facebook公司生产工程师,安东尼·瑞威斯特表示,采用CT扫描最初用于测试插入个人计算机的各个设备的代码,但工作团队很快就意识到他们需要一个实验室,可以在数百种的数千台不同的移动设备上运行,并测试代码,最终建立了这个实验室。

但是建立这样一个实验室是一个挑战。例如实验室中部署的机架使得实验的效果不是很好,这主要是因为第一种设计机架采用了金属材质,而太多的金属意味着使Wi-Fi网络信号会受到影响。

第二个版本称为“gondola”,是采用塑料材质的机架,可以承载每100台移动设备。塑料材质并不具有Wi-Fi干扰,但是USB电缆的长度短造成了很大的问题。瑞威斯特将其技术设计形容为“一团糟”。

  移动设备机架的内部布局

接着,Facebook公司的工程师们建立了第三种机架设计“slatwall”,整个空间用金属和木材构建,就像移动设备运营商店那种组合的货架。这种类型的单间可容纳240部移动设备,这意味着Facebook公司还要建造另外九个这样的空间,以满足其要求。

正是出于这一点,Facebook公司的工程师决定采用第四种设计,数据中心设备部署的方式,也就是他们所熟悉的服务器机架,每个机架可以部署测试32个移动设备。

“我们定制自己的机架,并将其设计成为一个电磁隔离(EMI)的空间。每个机架容纳8台MacMini(或测试Android系统的四个OCPLeopard服务器)系统驱动的手机,并进行安装,测试和卸载我们正在测试的应用程序。每个MacMini可以连接4个iPhone,而每个OCPLeopard服务器可以连接到8个Android设备,每个机架总共可以测试32部手机。”瑞威斯特解释说。

“这些手机通过每个机架的无线接入点连接到Wi-Fi网络。这些手机部署在一个稍微倾斜的面板上,安装的摄像头可以记录他们的屏幕状态。工程师可以远程访问这些摄像头,可以详细了解每一部手机对代码的变化作出的反应。”

工程师们还部署了Chef,这是Facebook公司使用的管理其庞大数量的服务器的一个软件工具,可以对移动设备进行自动化管理。该公司现在计划部署两个开源的机架和Chef工具。这两个机架采用了新型的机架设计,可以部署64个设备,是该实验室的硬件密度的两倍。

“我们希望通过开放的硬件设计,通过移动设备测试机架和自动化管理软件工具来控制和测试手机,其他公司也可以从我们的做法获得效益,并对我们的设计提出更好的建议。”瑞威斯特说。





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


本文转自d1net(转载)

目录
相关文章
|
29天前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
40 1
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
2月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
53 3
|
3月前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
114 2
|
26天前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
27天前
|
敏捷开发 监控 测试技术
探索自动化测试框架的构建与优化####
在软件开发周期中,自动化测试扮演着至关重要的角色。本文旨在深入探讨如何构建高效的自动化测试框架,并分享一系列实用策略以提升测试效率和质量。我们将从框架选型、结构设计、工具集成、持续集成/持续部署(CI/CD)、以及最佳实践等多个维度进行阐述,为软件测试人员提供一套系统化的实施指南。 ####
|
1月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
124 1
|
1月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
60 0
|
2月前
|
SQL 消息中间件 大数据
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
72 1
|
2月前
|
SQL 大数据 Apache
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
87 1