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模赛思可以提供相应的容器模板辅助构建配置。
许可模式及工具链的云部署
回顾此前的关键词解释,根据云服务商交付模式的不同,云服务模型主要可以分为:
- 软件即服务 (SaaS)
- 平台或基础架构即服务 (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模赛思能够为客户提供云部署的全程支持,帮助客户实现工具链的云部署。
标签:服务,MBD,技术,部署,Jenkins,工具,节点 From: https://www.cnblogs.com/meschina/p/18038782