使用设备可靠性工程来降低物联网产品的风险

使用设备可靠性工程来降低物联网产品的风险

源节点: 1896718

开发团队非常了解这个周期。 他们终于在接下来的 48 小时内推出了一款产品,并在一切都令人惊叹的情况下庆祝。 但是,很快,冷酷的现实和在现场开发产品的艰苦工作开始了:永远不会没有问题的发布。

这不是人才或技术的失败。 固件作者兼演讲者 Jack Ganssle 认为,每 1,000 行代码有 10 到 100 个缺陷。 由于大多数物联网设备都有数千行代码,Ganssle 的逻辑表明每个设备中都存在数百(可能是数千)个缺陷。 虽然许多是微不足道的,但有些缺陷很严重,不容忽视。

无论组织的 QA 流程有多好,有些问题只会在生产中出现。 为什么? 如果一个错误每 10,000 小时发生一次,那么在 QA 中的少数设备中就很难找到该错误。 但是,一旦该领域有 10,000 个单位,该错误就会每小时出现一次。

错误、安全问题、缺失的功能——所有这些都会导致客户不满意,并且通常会导致一连串的客户投诉。 对这些发布后问题的规划应该是产品生命周期的一部分。 这种方法,称为 设备可靠性工程 (DRE),包括可用于大规模、发布后管理可靠性的工程实践、基础设施和工具。

由于该领域不可避免地会出现错误和问题,因此采用三种关键的 DRE 技术可以帮助各地的团队降低产品发布的风险。

1.综合OTA

考虑 无线 (OTA) 更新,这是向连接的设备无线传输新软件、固件或其他数据,即保险单; 没有它,唯一的选择就是产品召回。 借助 OTA,开发人员可以推出更新并保持设备运行。

正确构建 OTA 使其更有可能运行良好,其中包括确保最佳测试覆盖率。 成功的系统支持队列、分阶段部署和固件签名。

群组是指开发人员将他们的设备分组并分别更新每个组。 队列是测试发布的一种简单方法,使 A / B测试 和其他类型的实验。 当与多个希望按不同时间表进行更新的工业客户合作时,它也会派上用场。

分阶段推出提供了将新更新逐步推送到设备群的能力。 由于每次发布都会带来风险,因此逐步推出更新会限制任何新问题的爆炸半径,并可以防止问题立即影响所有客户。 理想情况下,开发人员可以设置一个系统,将报告的问题定向到 OTA 系统中; 如果没有报告任何问题,他们可以自动增加推出增量,直到它到达整个车队。

固件签名是一种证明文件是由可信来源创建且未被篡改的方法。 它通过为文件创建可验证的签名来实现这一点。 通过在引导加载程序中实施签名验证,开发人员可以识别给定固件更新的真实性,并且引导加载程序可以决定是警告用户、使设备保修失效还是干脆拒绝运行未经身份验证的二进制文件。

2. 性能指标

发布后,物联网开发人员必须能够访问硬数据,这对于 帮助他们监控 设备队列健康。

五个最有用的指标是连接性、电池寿命、内存使用、传感器性能和系统响应能力。 收集这些指标的系统需要具备三个基本特征:

  1. 低开销。 收集指标不应影响设备性能。
  2. 易于扩展。 当团队决定添加一个指标时,它不需要三个不同的团队进行协作。
  3. 隐私保护。 考虑到加利福尼亚、欧洲和其他可能使用设备的地方的监管环境,必须从一开始就内置隐私保护。

通常,这些指标有两个主要用例。 首先是查看设备指标。 通过为单个设备收集不同的数据点,开发人员可以通过客户支持或工程团队调查有关设备行为不当的特定报告。 组织应该能够捕获设备时间线,这样当客户打电话投诉电池寿命时,客户支持团队或工程师可以快速查看操作相关性,例如电池使用和写入闪存。 强大的公制系统使这成为可能。

关于捕获性能指标要记住的一个关键点是它可以异步完成,这对于连接受限的设备来说是一个特别重要的特性。 除了个别指标外,还应该有某种程度的聚合和仪表板来指示整体车队性能,并提供一种快速识别数据趋势的方法。

另一个主要用例是警报配置。 度量系统应该有一种配置警报的方法。 设置系统以将警报发送到电子邮件、IM 或 事件管理平台 当满足某些条件时。 警报不是等待某人查看图表,而是让问题立即引起团队的注意。

3.远程调试

考虑传统调试涉及的各个步骤。 通常,它从针对不同客户问题的几份不同报告开始; 可能都是同一个问题,但它们的描述不够相似,设计团队无法了解。 支持团队接听电话或回复个别电子邮件。 最终,组织收集反馈,然后将其转换为几个不同的日志,供客户手动收集。 有了这些数据,团队就可以将设备带回实验室,然后将它们发送给工程师。 这是耗时且昂贵的。

远程调试将这个漫长而昂贵的过程转换为可以更快发生的自动化过程。 它为设备创建了一种以自动方式报告问题的方法,方法是将它们输入到分析数据的云管道中,将报告整理成经过重复数据删除的错误实例,然后与工程部门共享这些报告。

核心转储是一种标准的调试技术。 它们是自动的、详细的诊断,只要出现问题就会被捕获。 它们带有日志、回溯和内存,并为工程师提供解决问题所需的信息。 开发人员必须收集诊断数据,将其上传并创建某种方式来查看它。

连通性通过延长产品生命周期改变了设备开发。 以前,运送产品意味着可能不再有互动。 现在,产品交付到客户手中后,产品生命周期会继续下去。

通过采用 DRE 技术,开发人员可以降低产品发布的风险,为不可避免的发布后问题做好准备,并交付持续改进的整体更高质量的产品。

关于作者
弗朗索瓦·巴尔达萨里 (François Baldassari) 是 内存错误,一个连接设备可观察性平台提供商。 作为一名嵌入式软件工程师,Baldassari 对软件工程中的工具和自动化的热情驱使他创办了 Memfault。 在 Memfault 之前,Baldassari 领导了 Oculus 的固件团队,并在 Pebble 构建了操作系统。 Baldassari 拥有布朗大学电气工程学士学位。

时间戳记:

更多来自 物联网议程