资源管理平台
# 01.项目说明
# 1、项目介绍
项目:台架与测试车辆管理平台
- 项目描述:
- 为了统一管理台架与测试车辆,开发了一个资源管理平台,通过系统化的管理方式提升调度效率和资源利用率
- 平台提供了接口和数据基础,支持上层调度平台实现多种测试手段的高效组合
- 主要职责:
- 设计并实现了车辆和台架的资源管理模块,支持生命周期管理、静态信息管理和状态监控
- 开发了多种任务管理功能,支持更加合理的资源调度,实现全局感知整体测试资源的使用情况、分布与统计
- 完成了对HIL(Hardware-in-the-Loop)测试中资源使用情况的定量统计,优化资源分配以降低成本
- 开发了路测车的实时监控和数据上报功能,帮助追溯与排查问题,同时统计了路测车辆的利用率
- 实现了虚拟上位机的管理功能,包括公钥私钥的生成与分发、基于K8s的Pod管理和远程命令执行,支持用户调度任务到台架
- 参与了『车辆管理/软件安装信息』和『车辆管理/软件配置管理』模块的开发,确保车云之间通信的安全可靠,保证车辆软件的保活与更新
- 实现了车云链路日志的上报功能,采用gRPC流和Filebeat技术,将车端软件日志从外网收集到云端内网,确保数据安全传输
- 技术栈:
- 编程语言:Golang
- 平台与工具:Kubernetes, Docker, gRPC, Filebeat, CA, SSH
- 数据库:MySQL, Redis
- 项目成果:
- 提高了资源管理和调度的效率,降低了测试成本
- 通过系统化管理,减少了资源浪费,实现了高效的多测试手段组合
- 确保了车辆与台架管理的高安全性与可靠性
# 2、项目说明
# 1. 项目背景与目标
- 随着自动驾驶和智能网联技术的快速发展,测试与验证过程中的资源管理需求日益增加
- 为了解决测试资源(如台架和测试车辆)管理中的效率低下和资源浪费问题,本项目旨在开发一个统一的车辆与台架管理平台
- 该平台通过系统化的管理手段,提升资源管理效率,改进调度方式,并为上层调度平台提供接口和数据基础
# 2. 系统整体架构
平台架构设计基于以下几个核心模块:
- 资源管理模块:管理台架与测试车辆的生命周期、静态信息及状态监控
- 任务管理模块:支持资源与任务的合理调度,并提供全局资源点用、分布和统计信息
- 数据与接口支持模块:为上层调度平台提供必要的接口和数据支持,确保测试手段的多样化组合
# 3. 测试闭环体系与资源管理
测试闭环体系的核心在于多个测试手段与测试阶段的整合,包括仿真任务、实车路测任务等每个阶段都依赖不同的测试资源和任务体系,本平台通过统一的资源管理框架来提升整体效率和资源利用率
- 目标
- 提升测试效率,降低测试成本,确保高质量交付
- 支持多测试手段的组合,以实现更为灵活高效的测试策略
# 4. 资源管理模块
资源管理模块是平台的核心组件,主要负责台架与测试车辆的管理具体功能包括:
- 生命周期管理:记录资源的整个生命周期,从投入使用到维护、升级、退役的全流程管理
- 静态信息管理:存储资源的基础信息,如台架类型、车辆型号、配置等
- 状态监控:实时监控台架和车辆的使用状态,包括运行状态、健康状况、资源占用情况等
# 5. 任务管理模块
任务管理模块支持更为合理的资源调度,并为调度平台提供必要的数据基础,主要功能如下:
- 资源调度支持:为任务分配最适合的资源,优化资源利用率
- 全局感知与统计:提供全局视角的资源点用和分布情况,并生成统计报表,辅助决策
# 6. HIL(Hardware-in-the-Loop)支持
HIL系统用于模拟测试环境中的硬件设备,通过本平台的资源管理与任务调度功能,实现对HIL资源的优化管理
- 挑战
- 缺少对具体使用情况的定量统计
- 灵活的资源调度能力不足
- 解决方案
- 通过平台的资源监控与统计功能,提供对HIL资源使用的深入分析,以实现降本增效的目标
# 7. 路测支持
针对实车路测任务,平台提供了全面的资源管理与数据支持功能:
- 路测车辆利用率统计:记录车辆的实际运行情况,生成利用率报表,优化车辆调度
- 实时监控与上报:提供车辆实时状态监控和数据上报功能,帮助问题追溯与排查
- 远程数据部署:支持远程更新路测车辆上的测试数据,减少人工干预,提高测试效率
# 8. 虚拟上位机管理
虚拟上位机通过自建CA实现安全管理,并通过Kubernetes(K8s)集成,为台架操作提供便利
- 公钥私钥管理:通过自建CA生成公钥私钥,将公钥通过SSH放入台架中,私钥写入虚拟上位机,实现免密登录
- K8s集成:虚拟上位机以K8s Pod形式启动,通过注册的SSH命令在虚拟上位机中远程调用台架执行命令
- 用户任务调度:启动用户agent后,用户可以通过调度任务到台架,实现自动化测试流程
# 9. 车辆管理模块
车辆管理模块涵盖了车辆的软件安装信息和配置管理,确保车云之间的通信安全可靠
- 车云通信链路安全:车辆端部署agent生成公钥私钥,并通过云端审批生效,确保数据传输的安全性
- 软件保活与更新:管理车辆上已安装软件的版本控制和更新流程,确保软件的持续可用性
- 数据上云:支持将车辆生成的数据安全上传至云端,实现远程数据监控与分析
# 10. 车云链路日志上报
平台提供了一套高效、安全的日志上报机制,将车端软件日志从外网传输到云端内网,便于数据收集和分析
- 技术架构
- gRPC Stream:使用Golang实现gRPC流机制,确保日志数据的实时传输
- Filebeat集成:在客户端集成Filebeat,通过解析配置文件生成相应的配置,并在客户端启动或停止Filebeat,实现日志的自动化采集和传输
- 应用场景
- 用于收集和分析车辆的运行日志,帮助快速定位问题和优化系统性能
# 11. 总结
本平台通过对台架与测试车辆的统一管理,优化了资源利用率,降低了测试成本,并为调度平台提供了高效的数据支持通过系统化、标准化的管理方式,平台能够适应多种测试需求,并为未来的扩展和优化奠定了坚实基础
# 02.项目整理
# 1、项目需求说明
注意这里提供的是车辆,台架管理平台,不负责调度能力,给调度平台提供接口和数据基础的
为了统一管理台架与测试车辆,使用系统化方式进一步提升资源管理效率,改进调度方式,提升资源利用率
完整的测试闭环体系包含了多种测试手段与各个测试阶段,各个环节依赖不同的测试资源(台架,车辆等)以及不同的任务体系(仿真任务,实车路测任务等)
但总体的核心目标都是保证高质量交付条件下,提升测试效率,降低测试成本;
期望多测试手段组合提升效率,降低成本;
本文档的思路是从测试手段的底层依赖-资源上着手,通过建立统一的资源管理,以相对统一的管理方式进行资源管理
不仅支持台架,也可以支持测试车辆,在资源管理上支持生命周期/静态信息管理,状态监控
从任务管理上支持更加合理的资源调度,继而可以从全局感知整体测试资源点用,分布与统计
HIL:
- 缺少对具体使用情况的定量统计与灵活资源调度,实现降本增效的目的
路测:
- 路测车实际运行情况统计,期望统计路测车辆的利用率;
- 路测车的实时监控,实时上报,帮助问题追溯与排查;
- 路测车的远程数据部署;
虚拟上位机机
- 自建CA生成公钥私钥,将公钥ssh放入台架中
- K8s pod启动作为虚拟上位机,虚拟上位机写入私钥实现免密
- 将ssh命令注册到pod系统中,使用 s1 xxx在虚拟上位机中远程调用台架执行命令
- 虚拟上位机启动后会启动用户agent,这样就可以实现用户调度任务到台架上
『车辆管理/软件安装信息』和『车辆管理/软件配置管理』模块
- 建立车云之间安全可靠的通信链路
- 车辆数据上云
- 车辆已安装软件保活与更新
- 链路安全:车端部署agent 生成公钥私钥,公钥上传到云端,审批后生效,车端使用私钥加密,云端使用公钥解密
车云链路日志上报
- 需求是将车端软件日志从车端收集到云端,车端在外网,云端在内网
- 使用golang grpc stream
- 云端grpc server
- 车端
- grpc client
- 在client中集成filebeat,解析配置文件生成filebeat配置文件
- 在client中启动,停止filebeat
# 2、整体通用设计

# 3、资源管理
