亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

使用 DevOps 解决嵌入式软件挑战

DevOps 被认为是满足嵌入式软件市场对更多应用程序和新功能的需求的最佳方式,所有这些都可以在更短的时间内提供。

一场完美风暴正在酝酿嵌入式设备软件开发。嵌入式设备正在激增,特别是随着新的连接选项(例如 5G)使创新的连接设备应用成为可能,并且它们的使用正在扩大,利用新的分析和人工智能功能。同时,设备生命周期需求(例如响应不断演变的网络攻击)使得快速创建和部署软件更改成为必要。

这些条件对开发和运营人员提出了新的要求。越来越多地,DevOps 被认为是满足市场对更多应用程序和新功能的需求的最佳方式,所有这些都可以在更短的时间内提供。 RTInsights 最近采访了 Wind River 产品管理高级总监 Graham Morphew。我们讨论了嵌入式设备软件开发的挑战、传统环境和嵌入式设备的 DevOps 之间的差异等等。

以下是我们谈话的摘要。

RTInsights:嵌入式设备的 DevOps 与开发软件的传统 DevOps 方法有何不同?

墨菲: 当您查看基于 IT 企业的环境中的传统 DevOps 时,您拥有一个无处不在的执行环境。您要么在云中的英特尔服务器上运行,要么在英特尔 PC 上运行某些东西。嵌入式是非常不同的。您的最终执行环境通常与您用于开发的架构不同。由于终端硬件的多样性以及部署方式的多样性,存在更多挑战。例如,当您为基于云的环境构建软件时,您知道它会在 Google Cloud、Azure 或 AWS 环境中运行。在构建嵌入式软件时,部署环境的选择几乎是无限的,您也可以在远程位置拥有设备。

因此,在您对软件的看法以及这些差异如何转化为 DevOps 实施挑战方面存在许多差异。

您必须应对专门的硬件、交叉编译、交叉调试、内存占用和安全问题。您不会像在云环境中那样拥有几乎无限的资源。在设计这些系统时,您需要牢记一个执行岛。您还需要担心安全问题。您不一定对设备的安全性拥有物理控制权。您可能不得不应对设备的物理篡改。

另一个挑战是来自这些设备的数据更难收集。在 DevOps 环境中,您需要一个连续的反馈循环。如果在您控制的服务器上进行开发,这很容易。当您谈论设备时,它们可能会被远程分发,并且它们可能不会一直在线。因此,在比较传统的 DevOps 和嵌入式软件的 DevOps 时,会出现许多不同的问题。

RTInsights:为什么嵌入式设备社区会转向 DevOps?为什么它变得引人注目,以及市场上正在发生什么来推动这一点?

墨菲: 对于嵌入式软件,对更频繁更新和更高质量的需求日益增长。要到达那里,您需要自动化来帮助您。自动化将在 DevOpsand 嵌入式软件的未来发挥重要作用。如果你回到一两年前,就会有很多注意力集中在驱动设备功能的硬件上。现在,设备供应商之间的差异化技术更多是软件。

推动公司转向嵌入式系统 DevOps 的另一个因素是我们在风河看到的很多东西:软件开发的人口结构不断变化。

有两个截然不同的阵营。您有传统的嵌入式软件开发人员和应届毕业生或开发人员从其他软件领域进入智能设备领域。传统的开发人员往往年纪大了,很多人都退休了。像我一样,有些人从大学毕业就进入市场,那时你会看硬件手册、程序寄存器等。这不是大学课程现在花费大量时间的事情。

我有一个儿子现在上大学了。他正在用 Python 编程。他刚刚第一次学习 C,这让他大开眼界。Python 提供了更高级别的抽象。

DevOps 可以帮助克服应用程序环境之间的障碍,并希望使设备软件开发人员看起来像熟悉的环境。这样做的必要性是制造设备的公司难以获得新的软件开发人才。

我最近在和我们聘请的实习生交谈,他告诉我们,他的许多同学都想去硅谷,为 Facebook、谷歌、苹果和特斯拉等公司工作。对于工业或航空航天和国防领域的公司而言,吸引所需的软件人才可能更具挑战,这些人才将进入并在基本的 C 环境中对嵌入式设备进行编程。

为了克服这个问题,一些公司认为为新一代软件开发人员提供他们熟悉的环境会有所帮助。这也是 Wind River 采用 Visual Studio Code 环境的原因之一。 Visual Studio Code 是一个自进入市场以来迅速普及的环境。与我们交谈的每个人都来自新的毕业生的角度,都非常熟悉 VS Code,我们看到新开发人员在 Eclipse 等旧环境方面的经验较少。所以,有时你必须在你的观众已经在的地方。

RTInsights:公司在尝试采用 DevOps 解决方案时遇到了哪些问题?嵌入式设备领域与其他领域相比的主要挑战是什么?

墨菲: 最大的挑战是企业内部必须发生的文化转变。这不一定是嵌入式特定挑战。它在一些软件开发实践中更加根深蒂固。

你有小团队,而且在很多情况下,你有做非常具体的任务的个人。您需要与 DevOps 进行一定程度的协作和合作,这有时会使人们脱离他们多年来已经习惯的领域。你不得不说,“每个人都在共同努力。”

嵌入式 DevOps 的 Ops 部分是一个挑战,因为在传统的云计算 DevOps 环境中,Opsis 非常标准。您正在运行一个网站或开发一个通过基于云的界面执行某些操作的应用程序。当您谈论嵌入式时,您是在谈论该领域的设备,而该设备的作用是特定于您的公司的。在许多情况下,设备制造商并不是操作设备的公司。设备制造商可能会将其设备出售给大型电气公司或大型制造商。这些公司是运营这些设备的公司。有时会得到设备制造商的帮助,但这并不是您可能看到的基于云的解决方案的完全闭环。

存在工具集兼容性问题。拥有一个通用的开发环境有时会遇到阻力。这又回到了实施这些系统所需的一些文化和管理支持。

然后又是硬件问题。这是嵌入式市场的共同主题。您如何获得足够的硬件来构建实现 DevOps 现实所需的自动化环境?这是一个持续的挑战。通常,成功的客户会混合使用硬件和模拟来扩展他们的测试流程。

RTInsights:是否有工具可以更轻松地过渡到 DevOps?

墨菲: 帮助公司度过这场革命的一件事是工具的可用性。其中许多工具是开源的或有免费版本。您经常会看到围绕某种类型的源代码管理(通常是一种 Git)进行整合。现在,组织已经从非常以源代码管理为中心的解决方案转变为在其解决方案中包含越来越多的 DevOps 类型的工具。这有助于公司实现转型。

有很多选择。有时您可能会争辩说选择太多。我们看到客户现在面临的挑战是,是的,有很多工具。如何将它们组合成一个适合我的解决方案?

如今,许多公司正在启动项目,他们在内部组建团队,以管理他们向更加以数字化为重点的开发环境的过渡。我们现在看到嵌入式领域正在发生转变,就像我们在其他技术转变中看到的那样。在许多情况下,这很大程度上是一种自己动手的心态,“让我们为我们构建完美的系统,让我们根据我们的需求对其进行定制。”这样的努力正在耗尽公司越来越多的资源,只是为了维持这些事情的发展。这不一定是他们想要投资的地方。随着时间的推移,这种方法可能会演变成人们希望另一家公司维护更多环境的方法。

最终,公司可以让他们的生活更轻松的另一个领域是明确区分应用程序开发和维护他们运行的软件平台。过去是你有一个小团队同时做这两件事,应用程序和平台相互融合。但是现在,您需要这种清晰的分离来模块化您的软件,并让人们从事他们最擅长的工作。

RTInsights:解决方案的行业驱动力有哪些,可以更轻松地开发和测试嵌入式设备软件?

墨菲 :IT 和 OT 世界的融合。您的设备已连接到 Internet。这一直是公司重新审视他们如何交付软件的一大推动力。此外,在多个行业中,您需要更新设备中的软件。您会在医疗领域看到这一点,现在您必须证明,如果已知安全漏洞,您可以更新您的设备。这可能是生死攸关的情景。如果出现此类问题,您需要能够证明您可以解决此类问题。

这些驱动因素正在推动公司审视他们正在使用的流程,以了解他们进行远程更新的能力。我们看到的是,许多大公司感受到了来自这些数字原生新公司和新兴公司的威胁。他们甚至有一些术语来描述它。你听说过特斯拉化这个词。他们说他们需要更像特斯拉,成为一个非常、非常以软件为中心的企业,而不是更多地与硬件相关的实体、钢铁和钢铁类型的思维。他们必须越来越多地在他们正在构建的东西上运行的软件上区分他们的产品。

大流行也加速了这一趋势。大多数以软件为中心的员工都在家工作。在许多情况下,大量员工在这结束后不会返回办公室。这是一个很大的转变。因此,您需要改变您思考工作的方式,以使这种情况对开发人员富有成效。这就是挑战。在某种程度上,它需要更多的协作工具和更多的标准化,因为你没有很多人面对面工作并以更传统的方式进行协作。

RTInsights:转向另一个问题,为什么快速的软件迭代成为每个行业的关键竞争优势?这与自动化测试的需求有何关系?

墨菲: 我经历了几个从瀑布模型过渡到更敏捷模型的项目。进行持续测试和自动化测试的能力通常是提高生产力的限制因素。如果你要跑得快,而且你仍然想保持你的质量,这是必要的。这是一个特殊的领域,拥有终端设备的数字双胞胎可以让您对其进行大量测试,并且可以大规模进行。

我们看到的 DevOps 适用于嵌入式的重大进步之一是能够模拟嵌入式设备,然后在基于云的环境中大规模使用它。这样,您可以同时运行一百个测试。您仅受云资源的限制。这是我们看到许多公司正在经历的转型之一,也是他们最终非常看重的东西。

我们在 WindRiver 开展了多年的模拟业务。一些早期采用者在他们的服务器上做了很多这样的事情,扩大了大量的模拟。但是,当您将其迁移到云端时,您不必每六个月购买一次新服务器。

您可以控制所使用的硬件类型和数量。您可以随时根据自己的需要来调高和调低它,而不用花费大型硬件和 IT 团队来维护它。现在,我们看到了一种平衡或混合云环境,其中一些测试是在本地完成的,而一些测试是在公共云中进行的。

RTInsights:您还想提出我们遗漏的其他要点吗?

墨菲: 当您谈论 DevOps 和将嵌入式软件开发转移到更加云原生、以云为中心的环境时,作为产品经理,我个人认为有几件事是巨大的变化。

其中之一是协作。我正在尝试完成 Linux 构建。我不是一个久经考验的 Linux 工程师。我在构建正常工作时遇到了一些问题。当我这样做时,我们的一位 Linux 软件架构师可以看到我有几个失败的构建。然后他通过一个即时通讯应用程序联系我说,“嘿,我看到你遇到了一些麻烦,我看看,你只需切换设置,你就会好起来的。我只是继续为你修好了。”

如果我在另一个环境中进行开发,我的 PC 上安装了软件,那么没有人会知道我遇到了问题。我得出去问问。此外,我很可能无法重现相同的场景。最有可能的是,我整天都被困在上面。而且,我可能在一段时间后就放弃了。因此,对我来说,能够快速访问您不必在本地安装的软件,并且能够在一个普通的沙盒中玩游戏,让您大开眼界,让您大开眼界,仅仅因为基本上拥有这些类型在您的团队中共享资产。

RTInsights:还有什么?

墨菲: 在不久的将来,我们期待的一件事是拥有数字反馈循环,您可以在其中将数据从设备中取出,将数据从开发环境中取出,然后将其反馈以改进您的软件。人工智能和机器学习也在其中发挥作用。我可以从这些设备中获取哪些信息?如何使用模型或引擎的大型云规模、大数据类型对其进行潜在分析,然后将其反馈到未来的软件开发中?这可以帮助我优化整个系统。


物联网技术

  1. 9 在云端使用 DevOps 的有效最佳实践
  2. 将云与 DevOps 服务结合使用的好处
  3. 无线更新:五个典型挑战和解决方案
  4. 文本字符串是嵌入式软件中的漏洞吗?
  5. 使用维护工单软件
  6. 解决的问题:使用物联网技术的可扩展生产
  7. 软件测试物联网设备的挑战
  8. 使用预防性维护软件进行制造
  9. 组合车床解决车削挑战
  10. 创造性思维解决制造业招聘挑战
  11. 嵌入式软件正在改变硬件供应链的性质
  12. CMMS 软件如何解决小型企业面临的挑战?