tag 标签: mbd

相关博文
  • 热度 2
    2024-2-7 20:17
    497 次阅读|
    0 个评论
    MBD工具链的云部署
    “ 云技术用于不会用于汽车开发 “ 。说到云部署在汽车行业的应用,业界曾经认为云技术并不适合用在汽车行业的产品开发。知识产权保护、数据的安全、流程不够透明、迁移成本过高、 IT 部门的保守等种种现实问题成为了云技术应用在汽车开发上的阻碍。然而,随着电动车巨头特斯拉等一众公司的成功,行业的发展趋势变得不言自明 : 汽车行业正朝着更加注重软件驱动的方向发展,越来越多的 OEM 正重新定位,将重心放在软件和技术方面。驱动这样的转变的因素有很多,比如高级辅助驾驶系统 (ADAS) ,电动出行技术 (E-mobility) ,以及信息娱乐和舒适系统的开发等。总的来说,汽车行业已经开始采用云技术推动汽车软件的设计,汽车软件向着更先进,更智能的方向迈进。本文着重探讨云技术在汽车行业应用的优势和注意事项,以及其在汽车行业软件设计质量保证领域的实际应用。 云技术的关键要素 首先明确云技术应用的关键要素。云技术是一种按需提供计算存储网络或其他 IT 资源的计算模式。对于云技术而言,算力和应用程序可在任意位置的集中式服务器农场中运行,这些服务器不受空间约束,可以是 OEM 在本地的部署,也可以是各个地方公共云上的服务器。虚拟机 (VM) 是一种虚拟的计算环境,是云技术的关键资源。在这些服务器当中,使用虚拟机进行计算,并可以根据工作的负载动态部署或撤销。理论上,云计算的算力可以无限扩展。个人电脑的角色也十分重要,是云计算中与云计算中心计算能力进行交互的主要接口。带宽资源在云计算中同样值得提及,为了使云应用程序发挥作用,需要足够的带宽接入使设备可以实现快速的互联网连接,并需要监控实际使用的应用服务,以确保一切正常运行。这些云技术的要素帮助提高了开发工作的灵活度,并使工作更容易扩展。从企业的角度来说,云技术能够帮助企业降低成本,提高效率。 围绕云技术,关键的概念也有很多。容器 (Container) 是一种把应用程序及其依赖项到打包在一起的一种技术,使其可以方便地在云环境中部署运行及管理应用程序。容器技术常见的一种实现被称为 Docker , Docker 是一种开源的容器化平台,可以帮助开发者将应用程序及依赖项打包,并在支持 Docker 的环境中运行,使其不受环境差异的影响。对于集群技术, Kubernetes ( 又称 k8s) 是一种容器编排系统,帮助企业管理容器化的应用程序。 Automation ( 自动化 ) ,作为云计算的重要概念,其目的在于降本增效。对于自动化管道及构建管道, Jenkins 、 Bamboo 、 Git 等等常被提及。 Jenkins 是一个由 Java 编写的、开源的持续集成的工具,类似的还有 Bamboo 。 Jenkins 主要帮助团队进行自动化的构建、测试和发布过程,提高软件交付的效率及质量。此外,同样需要版本控制系统的支持,比如 Git 。可以使用 Git 来追踪项目的变化,协同开发。仓库 (Repository) 用于存储云技术相关的软件要素。 IaaS ( 基础架构即服 务 ) , PaaS ( 平台即服务 ) 和 SaaS ( 软件即服务 ) 是云服务的主要类型。 IaaS ( 基础架构即服 务 ) 提供计算存储网络资源,用户可以按照实际使用需求支付费用。 PaaS ( 平台即服务 ) 提供开发,部署和运用应用程序的平台。 SaaS ( 软件即服务 ) 提供已经预先构建好的软件应用程序。 CaaS ( 内容即服务 ) 以提供消费者基础网络资源以及操作系统服务为中心。 DbaaS ( 数据库即服务 ) 为客户提供数据库的访问,而无需部署或管理底层的基础设施。无服务器 (Serverless) 通常称为功能即服务 (FaaS) ,是以 PaaS ( 平台即服务 ) 为基础,提供一个微型的架构,中层客户无需部署配置或者管理服务器的服务,代码运行所需要的服务器服务都由云端平台来提供。对于小型公司来说,可以运用云计算来托管其网站应用程序,无需投资建立自己的硬件软件,从而节省支出。而大型企业也可以使用云计算技术来扩展 IT 基础设施,以满足业务需求的多样化。 行业机遇与挑战 云技术的关键词和主要运用形式已作过介绍,下面来关注云技术的应用优势和面对的挑战。可扩展性是云计算的首要和关键优势。灵活的工具配置使云计算可以更好地适应不同的工作场景和负载。集中的管理可以实现实时的监控,使运作流程透明且可控。全局的标准化同样重要,云计算可以提供一种更为精简工作流的实现过程,同时其易维护性保障了系统的可维护性和高效利用。云计算的这些优势帮助企业达到降低成本,同时提高透明度的作用。 当然,云技术同样面临一些挑战。首先,由于云计算的应用可能需要用户更改其原本的工具使用模式,这使得用户的使用习惯面临改变,不适应的情况可能出现,用户的接受度成为一大挑战。此外,将项目完全迁移至云端也会耗费一定时间,项目的运行速度或进展可能因此延缓,企业在进行迁移前需要更好的准备工作以应对这些问题。云端工具链的不够完备,一些重要的工具可能还未实现云端化,云工具链的不完备也可能造成困扰,需要技术的持续发展来帮助工具链实现完全云端化。使用云技术还可能会导致企业对第三方服务的依赖,这其中也存在风险。 汽车行业中云部署的经典案例 在汽车行业的软件开发和测试中,云部署架构的实际应用主要有两种 : “桌面云”和“过程云”。“桌面云”以用户为中心。在这种应用案例中,最终的用户,也就是 PC 前的工作人员,通过传统 PC 触发应用程序,而算力和数据存储在云端的某服务器农场中。从用户体验上来说,基本与传统 PC 无异。使用的软件与应用以交互的方式被使用。“过程云”则是以过程为中心,在用户端以自动化流程触发应用程序,其触发的自动化管道前文已有所介绍,主要有 Jenkins 、 Git 和 Bamboo 等等工具。最终的结果以报告或事件的方式自动分发。 下面来分析具体架构案例。对于软件开发来说,当开发人员和测试人员向 Git 仓库 (Git Repository) 提交 (Commit) 一个模型更新或测试变更时,此行为会主动触发 (Trigger) Jenkins 主节点上的自动化管道,此自动化管道中包含了一系列对测试环境的描述。当测试环境描述文件发生变更时, Jenkins 主节点作为数据中心枢纽被自动触发,负责控制和分发这些更改的管道设置。 Jenkins 主节点首先向代理节点 (Agent Nodes) 请求部署,随后,代理节点会向云端仓库 (Container Repository) 请求下载相应的容器 (Docker) 。如图 1 所示, Docker 仓库中,已部署好适应不同平台 (Windows 或 Linux) 的容器包。随后,适合系统要求的容器包将被请求并部署至 Jenkins 代理节点上。容器包 (Docker) 随后接收到自动化管道发出的命令,继而从 Git 仓库 (Git Repository) 签出 (Check Out) 相应的模型及配置文件等需要的信息。并根据具体指令进行静态分析。 Jenkins 主节点随后请求结果,而分析结果将会被发送回 Jenkins 主节点,并自动存储。最后, Jenkins 主节点负责向代理节点 (Agent Nodes) 请求取消部署,关闭不再需要的容器 (Docker) ,并将最终报告发送给开发或测试人员。 图 1 :桌面云设置 而从用户出发,用户端 (User Clients) 也可以进行扩展,通过使用终端服务器来完成开发、测试和分析全过程 ( 由图 2 所示 ) 。用户可以是单一或多个开发或测试人员从终端服务器 (Terminalserver) 登录。服务器会针对不同的工作环境和要求匹配不同的工具链并进行设置。如果需要相应的工具许可,可以向浮动许可证服务器发送相应请求,而相应的许可也可以被托管在不同位置。为保证安全,服务器通常配置为冗余或异地冗余的模式。这种情况下,由提交 (Commit) 操作自动触发的 Jenkins 主节点分发相应的自动化管道 (Automation Pipeline) 到代理节点 (Agent Nodes) ,代理节点 (Agent Nodes) 则可以通过 Kubernetes 进行扩展,从而由静态扩展转向可扩展的代理,进而实现云环境的扩展。 图 2 :可扩展的云端自动化 对于云架构的过程支持,如果需要容器中的软件工具, MES 模赛思可以提供相应的容器模板辅助构建配置。 许可模式及工具链的云部署 回顾此前的关键词解释,根据云服务商交付模式的不同,云服务模型主要可以分为: · 1.软件即服务 (SaaS) · 2.平台或基础架构即服务 (PaaS or IaaS) 软件即服务 (SaaS) 中,用户应用是托管服务的集成部分,按使用量付费是主要的业务开展方式。平台或基础架构即服务 (PaaS or IaaS) 需要关注客户租用的算力以及操作系统的容量。平台即服务 (PaaS) 包括操作系统及数据库,而基础架构即服务 (IaaS) 包括硬件和虚拟机 (VM) 。使用平台或基础架构即服务 (PaaS or IaaS) 的客户拥有应用软件的所有权和许可,并可以通过定制计划来明确使用成本。而在高工作负载的情况下,额外容量变得非常重要,因此,更为灵活的动态订阅模式能够在超出常规用量的情况下提供额外的支持。 对于 MBD 工具链来说,行业的主流为基础架构托管。应用及工具链多保存在公司内部,这样的架构有利于对开发过程的监控和灵活调控。对于汽车厂商,基础架构即服务 (IaaS) 是主要的云技术运用方式。动态许可模式是目前行业的需求所在,也是 MES 模赛思所使用的许可模式。 MES 模赛思的工具链目前已完全适配云许可的模式,并可以提供 Windows 和 Linux 版本。对于汽车行业来说,许可订阅是主流选择。许可模式的一种是开发者云桌面,用于交互式云环境,为桌面迁移到云设计。对于许可模式的覆盖范围,自动化全球云覆盖全球许可,做到完全自动化和高动态,并且可以在全球任何地方使用,为过程迁移到云设计。同样,目前 MES 模赛思支持在云端设置 MBD 工具链,并可为试点项目提供基于云的沙箱环境,并为 Docker 容器提供配置模板。 MES 模赛思同样支持在云端设置的自动化管道 (Automation Pipeline) 。 图 3 : MES 模赛思云服务 如图 3 所示,从技术咨询,到工具与工作流,最后到构建与迁移, MES 模赛思能够为客户提供云部署的全程支持,帮助客户实现工具链的云部署。 模赛思软件技术有限公司 (Model Engineering Solutions ,简称 MES) 是一家高科技软件公司,专为软件项目的质量保证提供解决方案。 MES 为客户基于模型的软件开发提供技术支持,使其符合 IEC 61508 、 ISO 26262 或 ASPICE 等行业标准。 MES 的主要客户包括整车厂如戴姆勒、大众、丰田和吉利等以及博世、西门子和三星等行业供应商。在汽车行业中,除少数几家公司外,全球数十家顶尖制造商及供应商均在他们的开发环境中使用 MES 的解决方案。为支持其全球客户, MES 已在美国和中国建立了子公司,并与全球分销商网络紧密合作。 MES 的产品包括 4 种质量工具软件: MES Model Examiner ® 、 MES Test Manager® 、 MES Model & Refactor® 和 MES Quality Commander® ,它们共同构成了一个工具链,全面保障基于模型的软件开发过程中所有阶段的质量。通过 MES Jenkins Plugin ,该工具链也可以在持续集成环境中使用。工具链主要应用平台为 MATLAB®Simulink® 。除了 MES 质量工具外, MES 测试中心 和 MES 学院 的专家们还为全球客户提供关于质量保证和开发流程优化的定制咨询服务及培训课程。 MES 是 dSPACE 公司的战略合作伙伴和 MathWorks 及 ETAS 的产品合作伙伴。 MES 学院与 SAE International 有合作关系。
  • 热度 13
    2021-11-19 18:52
    738 次阅读|
    0 个评论
    沃尔沃汽车公司( VCC )是世界上最知名与最受人尊敬的汽车品牌之一。 该公司在为全球客户提供最新技术和安全性能方面享有很高的声誉。 在瑞典哥德堡郊区的 VCC 研发中心里,数千名工程师组成的工作团队致力于为下一代乘用车创造新技术。无论是应用于电动、燃油还是混合式动力系统,沃尔沃汽车研发活动的重点是提高动力总成部件(发动机,动力传动系统,齿轮箱)的性能。 因此,汽车动力系统应用的控制软件起着至关重要的作用。 扩大沃尔沃汽车内部软件开发的规模 沃尔沃汽车公司( VCC )在大约 20 年前引进了基于模型的内部软件开发,主要用于发动机和动力传动系统的控制。 基于模型的开发的优点是,现场工程师的专业知识可以与自动化的高质量软件开发相结合。 未来控制软件的功能模型将由功能开发人员的人编写,他们是其各自领域的专家。 他们专注于机电一体化系统及其功能行为,在软件生成工具链的支持下创建易于阅读,可测试和可维护的软件模型,包括控制器代码。 VCC 驱动系统和动力总成部门始于 2002 年,当时有一个大约由 10 名软件开发人员组成的不大的团队和一个简单的基本流程。 当时手动批处理( Bat )文件被用于生成代码和软件建构流程中。 在过去的几年里,由于来自多种不同车辆项目的需求不断增加,如不同类型的动力传动系统和燃烧控制功能的扩展,控制器软件中加入了越来越多的功能。 所需功能的复杂性和绝对数量也呈指数级增长。 这导致越来越多的验证和确认步骤需要插入到开发链中。目前这个开发团队已发展成 100 多名行业专家和功能开发人员的团队。 随着团队规模的扩大,将不同的软件组件集成到一个工作系统中,并减少需要在软件存储库中进行跟踪的故障数量成为了一个挑战。 而新软件产品的每一个版本的发布也变得越来越具有挑战性。 当时 Apache SVN 被用作管理开发不同软件版本的主要工具。 沃尔沃汽车向持续集成的转变 2014 年,沃尔沃汽车的高层技术管理层决定引进先进软件行业的最佳实践、工具和方法。 在当今的软件行业里,持续集成( CI )和每日构建被用于将软件系统中的不同组件轻松集成到成熟的软件系统中,并使已有的保留功能不会被新的特征影响。 此外,每个开发人员会收到关于他们对软件系统的贡献的快速反馈,且资源密集型的测试过程能够一夜之间在一个更大的服务器上完成。 通过使用回归测试、每日构建和持续集成,人们可以有效地避免一场 “ 集成噩梦 ” , 即要等到发布日那一天才能将其开发的各部分合并到预发布分支( release branch) 上时的通常情况。 这些重要的 CI 原则被引入到 VCC 整个电子控制模块系列中。 2018 年,他们又额外引进了基于 OpenStack ZUUL 的新 CI 系统。 ZUUL 的座右铭是: “ 不要合并损坏的代码。 ” 因此,只有经过测试和分析的代码才被允许合并到主分支( master )上。 ZUUL 有许多优点,但最重要的一个是预测合并步骤,它允许大规模并行化。 ZUUL 建立在变更管理系统 GIT 的基础上,这是一种快速、可扩展的分布式版本控制系统。 此外, GIT 的插件 Gerrit 用来准备协作代码审查。 因此, ZUUL 是大脑, 它听取 Gerrit 里的事件并将任务分发给 Jenkins 。 这个最新引进的、基于 CI 的开发链被称为沃尔沃汽车 ECM CI 链。 从软件实现开始,每一个新的提交都会自动触发一组集成和回归测试。 开发人员提交的变更已通过运行对构建的自动测试进行了验证。 这种新的开发方法完全遵循项目前期加载质量保证流程的理念。 另外,将后期集成问题的数量降低到绝对最低值的主要目标也很快得到了实现。 沃尔沃汽车的工具软件部署 到目前为止, VCC 关注的重点一直是用于版本管理、代码生成和最终代码质量的主要技术。 但是,在基于模型的设计中,最终代码的质量取决于为自动代码生成提供基础的软件模型的设置。 功能模块是最核心的工件,而对软件模型的全面验证是保证最终代码质量的关键。 出于这个原因,沃尔沃汽车的动力总成部门开始寻找先进、实用的模型质量指标和质量工具,以弥补在这方面的不足。 2017 年, VCC 评估了一套由 Model Engineering Solutions ,一家位于柏林的软件模型质量专业公司设计的模型质量工具。 VCC 决定逐步将模型结构检查工具 MES MXRAY® 和建模规范检查工具 MES Model Examiner® 引入到现有的 CI 工具链。 MES 工具软件能够计算质量指标并分析每个通过 CI 工具链的模型是否符合建模规范的标准。 在开发流程中,收集的指标充当了质量门禁的作用,如果软件模型的质量指标未超过阈值,那么它只能由开发人员才能成功提交。 分析的结果将报告给各功能设计人员,他们对其模型的更改负全部责任。单击链接将会弹出更多的详细结果,高效地支持开发人员修复模型。 由报告生成的软件指标 在 MES 模赛思公司的支持以及 MES 专家的指导下, VCC 驱动系统和动力总成部门对他们的项目进行了调查并选出了合适的模型质量规范。 于是,我们按照相关的具体建模风格需求编制并测试了常规开发项目与沃尔沃汽车驱动系统中安全攸关项目的建模规范集。 在 ECM CI 链中,每次单个提交都会触发一组自动化测试,包括 MES MXRAY 的复杂性分析和 MES Model Examiner® 的建模规范合规性检查。 最后,例如建模规范合规性、复杂性、单元测试结果和代码审查结果会以汇总反馈的形式提供给开发人员,并提供详细报告的链接。 公司的总目标是建立一个学习圈,并在此过程中激励早期和自我问责的错误预防。 ECM CI 的设计涵盖了从模型的首次提交到自动生成代码的审查的所有流程步骤。 它还可以加入那些影响工具链中的检查、测试配置和工作流的配置设置。 使用 CI 驱动开发链取得的成果 尽管引入新的 CI 驱动工具链需要花费一些时间和精力,但它已经展现了许多优点。 首先,它显著改善了软件开发团队之间的协作方式。 验证和质量保证的主要目标得到了实现、提高了生产率,并且显著减少了繁琐的手工工作量。 最大的提升来自 MXRAY ,因为复杂性的降低有助于对功能的更好理解,进而可以快速稳健地进行动力系统的参数调优(校准)。 复杂性的降低会带来模型的重构,并使单元测试的编写更加容易。 根据沃尔沃汽车驱动系统的 ECM 软件架构师 Andreas Wikerstål 博士的说法, ECM CI 链 “ 为我们提供了必要的工具组合,以应对不断增长的基于软件的功能的数量,同时保证了软件的稳健性和质量不变。 在功能模型层级, MES 工具允许我们在开发流程的早期阶段进行度量并提高质量。 这为代码创建和集成的最后关键阶段节省了大量时间与金钱。 ” 向全集成 CI 链迈进 在未来几年,沃尔沃汽车的目标是逐步扩展其基于模型的设计流程,并覆盖所有的开发项目。 越来越多的用户将使用工具链,其中 MES Model Examinar® 和 MES M-XRAY 将发挥不可或缺的作用。 沃尔沃汽车将全面致力于 ECM CI 工具链的持续扩展,并使其剩余的半自动步骤完全实现自动化。 沃尔沃汽车驱动系统的 CI/CD 产品负责人 Johannes Foufas 自信地说: “ 我们目前正在研究向 ZUUL v3 的方向迈进 , ,因为该产品将为我们提供 in-repo 配置,实时配置更改,对多节点作业的本机支持以及 Ansible 工作内容。 我们还将努力移除所有手动步骤,并根据 GIT 标签仅保留同行评审,产品负责人批准和发布步骤。 如果可能的话,其它的所有步骤都应该实现自动化。 ” 未来,软件 CI 工具链的创建将自动触发工具链中的下一步,且不受任何用户的干扰。 此外,更加详尽的建模规范将被逐步引进,以进一步提升进度,提高建模规范的合规性。 关于 MES 模赛思 : 软件质量在控制之中 模赛思软件技术有限公司(Model Engineering Solutions GmbH, 简称MES)于2006 年在德国柏林成立,自2018年起先后在美国底特律和中国上海设立子公司。作为一家持续发展的高科技软件公司,自成立以来MES 模赛思致力于对基于模型的嵌入式软件提供质量保障,为客户基于模型的软件开发提供技术支持,使其符合IEC 61508、ISO 26262或ASPICE等行业标准。我们的产品为用于软件开发的质量工具,此外,我们还提供嵌入式软件基于模型开发领域的免费线上研讨会和付费培训课程。 MES 的主要客户包括整车厂如戴姆勒、大众、丰田和吉利等以及博世、西门子和三星等行业供应商。在汽车行业中,除少数几家公司外,全球数十家顶尖制造商及供应商均在他们的开发环境中使用 MES 的解决方案。 MES 的产品包括 4 种质量工具软件: MXAM 、 MTest 、 MoRe 和 MQC ,它们共同构成了一个工具链,全面保障基于模型的软件开发过程中所有阶段的质量。通过 MES Jenkins Plugin ,该工具链也可以在持续集成环境中使用。工具链主要应用平台为 MATLAB® Simulink® 。除了 MES 质量工具外, MES 测试中心和 MES 学院的专家们还为全球客户提供关于质量保证和开发流程优化的定制咨询服务及培训课程。
相关资源