作者:徐果、冰羽、瑶靖
自动驾驶被认为是推动智能汽车发展的里程碑式技术。数智化大潮下,大众对汽车的定义和需求都发生了巨大变化,汽车的功能已不再是简单的交通工具,而是逐渐演变为一个个“超级智能终端”。
然而,成本和效率一直是制约自动驾驶大规模商用的重要因素。得益于 Kubernetes 和云原生技术在边缘场景的拓展和应用,自动驾驶企业能够以更加高效率、低成本的方式处理数据、训练算法,将研发人员从硬件配备和日常运维管理等繁琐事务中解脱出来,把更多精力投入自动驾驶核心算法的研发及业务的增长中。
本文将通过介绍元戎启行使用阿里云边缘容器服务 ACK@Edge 的实践,分享在自动驾驶网约车场景下,如何将云边一体的云原生能力快速覆盖到众多智能车载设备,有效降低自动驾驶车辆管理成本。
为什么说“云边协同”是自动驾驶发展的加速器?
元戎启行科技有限公司是一家专注于研发和应用 L4 级自动驾驶技术的科技公司,拥有自动驾驶乘用车“元启行”和自动驾驶轻卡“元启运”两大产品,主要是为车企、Tier1、出行公司等提供定制化的自动驾驶解决方案。其中,Robotaxi 出行搭载元戎启行自研 L4 级自动驾驶解决方案,通过自营车队和合作运营的模式落地。元戎启行 L4 级自动驾驶前装方案车队已投入运营,为乘客提供城市出行服务。
在业务快速增长的迫切需求下,车载设备在高并发场景下的性能要求与计算资源受限的矛盾、车载环境云边网络不可靠与车载业务追求可靠性的矛盾、企业迅速响应需求变化的诉求与传统运维手段低下的矛盾、云端管控车载设备以及车载设备对安全性高要求的矛盾等,都会为元戎启行进入高阶自动驾驶量产过程中的成本和效率带来挑战。
面临的挑战
- 系统可扩展性差,车载应用环境依赖冲突:在自动驾驶领域,车载业务的传统的交付模式大多数以 deb/rpm 包的方式部署,对车载运行环境的依赖性比较强,不同业务对系统库的依赖版本可能会冲突;此外,由于算法模块的数量不断增多,单个模块又需要依赖更多的模块,因此不能快速搭建与复现 bug 发生时的运行系统环境,给研发调试带来许多困扰。这些都可能给车载线上业务、路上车辆的正常运行带来隐患。
- 环境不一致导致研发运维效率低:实际业务中仿真与车上环境不一致,仿真环境一直保持容器环境运行,但是车上保留的则为 deb 的部署方式;此外,以 deb/rpm 包等传统的部署方式需要较多的人工干预,容易造成车辆业务部署和运行时测试及研发迭代效率低的问题。
- 缺少全局管控能力:对于路测车辆,许多研发人员需要在车端调试需求,由于车载运维条件有限,影响调试工作的效率;此外,线下运营的车辆越来越多,车载业务的升级、运维、监控等都面临较大挑战,需要一个从全局视角对线下运营车辆业务的统一管理和部署的能力。
- 缺少云端一体化交付能力:现阶段云原生在云上已经成为事实标准,自动驾驶车企可以在云上使用云原生+ AI 的能力,进行大量的AI模型训练和仿真业务的运行。但是当AI模型和仿真业务训练好后, 如何将这些制品快速高效的交付到车端,也是车企所面临的问题。若单独开发一套平台来专门维护车端应用,不仅带来额外开发和维护成本,而且和云端业务的 CI/CD 流程出现割裂,因此车企也希望通过云原生的能力管理边缘侧的车载业务,进行云端一体化交付。
- 车载网络安全问题:网络安全对于自动驾驶的重要性已经毋庸置疑,通常情况下车端应用始终要和云端保持通信,以监听云端下发的任务,而车端又是一个很容易和外部人员产生物理接触的环境,尤其是网约车运营形式的自动驾驶场景。如果车端被恶意侵入,入侵者有可能通过这条链路侵入云端,甚至进一步影响和云端有连接的所有车辆,这就对车端应用提出了非常高的安全诉求,显然,这会大大加重应用开发人员的负担。
- 弱网/断网环境下的车载业务自治能力:在以网约车运营形式的自动驾驶车辆,在线下运行时,由于车辆所处的位置的不同,很可能处于弱网或者断网的情况,在这种情况下,如何能保证车载业务在极端重启情况下稳定运行,这也是车企所急需要解决的问题。
- 车辆监控/日志采集:大量的运营车辆在行驶过程中,需要监控车辆的硬件温度、CPU、 内存等控件的使用率,时刻在云端监控大屏上显示,另外云端需要车辆上系统和应用的关键日志采集,用来日志分析,当前并没有通用且有效的方法去解决。
ACK@Edge 助力元戎启行车云一体化协同
ACK@Edge 云边端一体化应用优势
自动驾驶场景是云原生在云边协同场景下的很好用例:车载设备可以作为云边协同的计算节点,统一接入到云端,由云端统一管控,同时使用云原生的能力,能很好保证车载上业务之间的环境隔离问题,可以对于自动驾驶车载应用系统在云上进行统一升级更新、资源调度、运维管控,实现云端一体化交付。
阿里云边缘容器服务(简称 ACK@Edge)是一款提供标准 Kubernetes 集群云端托管,支持边缘计算资源、业务快速接入、统一管理、统一运维的云原生应用平台,能够帮助用户轻松实现云边一体化协同。用户利用 ACK@Edge 通过纳管边缘节点将云上应用延伸到边缘,联动边缘和云端的数据,使得边缘节点拥有云端相同能力。在云端提供对边缘设备、边缘应用的统一 Ops 能力,保证边缘设备及边缘智能应用少运维、高可用。
目前 ACK@Edge 已经全面升级为基于云原生的云边一体和云端一体架构,能够适配更多的垂直领域的边缘计算场景,另外在云端协同场景,车载设备、交通、桥梁等小终端设备的轻量化接入,加速您容器化应用的分发、运维,降低您自建运维的成本。除自动驾驶外,已广泛用于 CDN、IDC、IoT、智慧物流、工业大脑、新零售等诸多场景。
ACK@Edge 自动驾驶解决方案助力元戎启行云边协同
基于 ACK@Edge 云边一体、云端一体,Kubernetes 容器编排调度的能力,以及 ACK@Edge 在 Kubernetes 之上针对边缘场景叠加的如轻量化、OTA,边缘侧 POD 离线启停,边缘自治、边缘单元化、单元化部署、Tunnel 通道的能力,切实解决了元戎启行智能在自动驾驶领域的相关痛点,最终承载了元戎启行自动驾驶线上运营车辆,为乘客提供城市智能出行服务。
ACK@Edge 在原生 Kubernetes 的基础上针对自动驾驶场景提供了独有的增强型功能:
- 云端运维,远程调试:ACK@Edge 提供的 Tunnel 通道, 可以让业务人员快速查看容器日志和进入容器调试。同时利用 tunnel 通道可以将车载设备的监控信息(硬件温度,CPU/内存使用率等)统一收编到云上,为元戎云端平台提供监控和告警服务。
- 边缘自治:ACK@Edge 的边缘自治能力,可以在运营车辆离线、或者车辆重启这种极端情况下, 还能保证车载上的的业务能正常运行。期间,ACK@Edge 团队与元戎系统团队做了大量的断网、重启操作,最终在证明运营车辆上的业务能够正常运行。
- 轻量化接入:ACK@Edge 在云端场景下,提供轻量化接入的能力,边侧组件具有更少的资源占用率。更少的资源占用率可以为业务腾挪出更多的资源,提高了车载应用对摄像头视频流的处理能力,进一步提高自动驾驶车辆的反应速度。
- 车载应用的 OTA:由于自动驾驶场景对于车辆运行安全要求非常苛刻,对车辆上的应用升级有着非常高的要求,原生的 Kubernetes workload 的升级回滚方式还是显得比较暴力, 针对这些特殊场景,ACK@Edge 创新性的提出了针对于 POD 的 OTA,以及在离线场景下 POD 的启停管理能力,此功能可以很好的满足运营车辆的根据当时的情况按需升级,以及在极端情况下管理人员人工接入运维的需求。
方案亮点和效果
- 统一的交付标准:使用 containerd+ACK@edge 来交付应用,交付流程简单,交付物标准,减少和车端设备的耦合,且不会污染车端环境。
- 设备安全接入能力下沉,应用聚焦业务:Lite-kubelet(车端设备上运行的agent) 支持一机一密认证访问 MQTT,确保每台车载设备都用自己的设备证书接入至 ACK@Edge 集群,极大提高接入的安全性;且整个过程对业务层透明。
- 提供更丰富、灵活的设备管理能力:通过 OTA(SoftwareOverTheAir)、边缘侧 Pod 离线启停管理,提高了车载应用的发布运维效率。
相比较传统的云原生工作负载节点管理方式,通过将元戎启行运营车辆的车载设备以轻量化方式接入 ACK@Edge,使设备接入资源占用降低 50 %,接入安全性大幅提升。基于边缘侧 Pod 的启停、OTA 功能便捷化管理车载设备,业务发布运维效率提升 60% 以上。
自动驾驶的未来:云原生+边缘计算双轮驱动
汽车产业的自动化已经成为了不可阻挡的潮流,加速落地将会成为下一阶段的主题。相信云原生与边缘计算的结合能够帮助更多汽车企业更好地吸收云计算、大数据和 AI 的成果优势,通过有效降低自动驾驶车辆管理成本,推动解决自动驾驶量产工程难题。
未来,未来 ACK@Edge 会继续深耕边缘计算领域,拓展更多的业务场景,期望推出更多的面向于垂直领域的解决方案。同时,我们也已将 ACK@Edge 全部核心代码贡献出来,成立了 OpenYurt 开源社区,并捐献给 CNCF,吸引 VMware、中国电信、浙大实验室、中国联通、中国移动等公司和组织的众多开发者参与。希望能有更多企业和开发者加入我们,通过持续凝聚社区实践,推动云原生边缘计算标准形成。
点击此处,了解 ACK@Edge 更多详情