嵌入式软件开发为什么需要 DevOps?
DevOps 提出至今已逾十年,作为热门概念,DevOps 近年来频频出现于各大技术社区和媒体文章中,备受行业大咖追捧。作为新一代持续集成/持续开发(CI/CD)的方法论,DevOps 正被快速引入嵌入式软件开发领域中。
为什么嵌入式软件开发对 DevOps 的接受度越来越高?其根本原因就在于,目前暂时没有比 DevOps 更能显著降低成本、提升效率的方法了。
谷歌的 DevOps 研究和评估(DevOps Research and Assessment,DORA)团队于 9 月 29 日发布了《2022 年 DevOps 促进状态报告》,从吞吐量(代码变更的准备时间和部署频率的综合)、稳定性(恢复服务的时间和变更失败率的综合)和运营业绩(可靠性)三个维度对受访者进行了聚类分析,结果显示,未使用 DevOps 的受访者很少能在半年内将软件投入生产,即便成功投产,也有 16%-30%的失败率。
失败意味着什么?根据 IT 软件质量联盟(Consortium for IT Software Quality,CISQ)的调查显示,2020 年全美劣质软件成本消耗高达 2.1 万亿美元,每个失败项目造成了约 5000 万美元的经济损失。
嵌入式软件开发 &DevOps
对于嵌入式软件开发来说,应用 DevOps 并非易事。与传统软件领域的 DevOps 不同的是,嵌入式软件开发的 DevOps 严重依赖硬件,软硬件存在紧耦合的情况。随着嵌入式系统复杂程度的直线飙升,硬件成为了掣肘嵌入式软件开发领域 DevOps 实施的瓶颈,不仅增加了部署的成本与实践,还有降低开发质量的可能。对硬件进行模拟仿真成为了最佳解决方案。
天目全数字实时仿真软件 SkyEye,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模,可模拟复杂嵌入式系统硬件。
▲ SkyEye 界面图
基于 SkyEye 搭建的嵌入式系统虚拟化运行环境,工程师可不受物理硬件限制,随时访问目标系统,快速搭建虚拟硬件模型并提前进行开发、测试和验证工作,实现高效率、高质量的软件交付。
基于 SkyEye 的 DevOps 痛点及应对方法
研发周期瓶颈
选择对硬件进行仿真模拟是尽快完成开发、缩短研发周期的有效方法,但工业软件需要选择满足苛刻设计要求的最佳仿真平台。SkyEye 可进行硬件行为级仿真,是为工业软件量身定制的仿真平台。
仿真的准确与快速
仿真的准确性与速度似鱼与熊掌,往往不可兼得,对于航空、航天、轨交等安全关键领域而言,准确性通常更为重要。基于 DevOps 搭建的流水线,仿真程度越是准确,开发团队对代码的信心就越高,软件发布的准备也会更为完备。
如需开发基于特定 SoC 芯片的嵌入式软件,在无法获得芯片实物的情况下,就可以考虑应用 SkyEye。SkyEye 支持主流的嵌入式硬件平台,可运行国内外主流的操作系统,对国产生态的支持尤为出色。通过利用基于 LLVM 的动态二进制翻译技术,SkyEye 可使虚拟处理器在典型的桌面计算机上运行速度达到 2000MIPS 以上。
准确性与速度可通过 SkyEye 实现兼顾。
无限次的无损测试
基于 SkyEye 搭建的嵌入式系统虚拟化运行环境,工程师可不受物理硬件限制,在不损坏实验室、不破坏实际设备的情况下对虚拟设备进行反复的压力测试、真空测试等——涉及安全关键的嵌入式硬件往往伴随着高昂的硬件制作成本。
开发团队可应用 SkyEye 随时访问目标系统,并基于此进行无穷无尽的场景组合测试,从而加快产品测试速度,更大幅降低 DevOps 应用成本。
与第三方语言或者模型集成
仿真平台如无法与第三方语言或模型集成,DevOps 实际的可行性就要大打折扣。SkyEye 目前已实现与 SystemC 集成进行时序仿真,可与 MATLAB/Simulink 集成进行多领域协同仿真,DevOps 实施的便捷性得到了有效保障。
▲ SkyEye 与 MATLAB 连接图
对嵌入式软件开发领域而言,使用 SkyEye 对硬件进行高精度的仿真模拟,能够有效规避应用 DevOps 时原有硬件问题带来的风险,大大提高开发效率、降低开发成本。
版权声明: 本文为 InfoQ 作者【DevOps和数字孪生】的原创文章。
原文链接:【http://xie.infoq.cn/article/43a8613e351820868264faa31】。文章转载请联系作者。
评论