发布于: Oct 30, 2022
将数据注入管理平台是利用已有数据的第一步,今天我们将会介绍一种现代化的数据管理模式。Serverless (无服务器) 是一种用于描述服务、实践和策略的方式, 开发人员可以使用 Serverless 构建更敏捷的应用程序,从而能够更快地创新和响应变化。通过 Serverless, 开发人员可以将容量预置和补丁等基础设施管理任务交由 Amazon Web Services 来处理,从而专注于编写为客户服务的代码。现代应用程序在“Serverless First (即无服务器优先)”的基础上进行构建,而 Amazon Web Services 在计算、应用程序集成和数据存储等方面均提供了丰富的服务帮助开发人员快速构建现代化的应用。
本博客以自动驾驶初创公司文远知行 WeRide 为例,介绍文远知行是如何利用 Lambda, API Gateway, S3 和 Fargate 等 Serverless 相关服务,实现对自动驾驶数据注入管理平台的应用现代化改造。
文远知行,像所有的自动驾驶公司一样,需要不断地从现场道路测试中收集数据用于模型训练、算法测试和模拟仿真。随着更多的车辆投入运营和测试,数据采集量不断增加。在 2020 年,文远知行的自动驾驶车队每天产生 TB 级别的数据。同时,文远知行在多地开展自动驾驶技术的研发和车队运营,数据需要跨区域进行采集,并进行管理。
自动驾驶的研发是以数据为中心的。文远知行在 2019 年开始便在 Amazon Web Services 中国区域内利用 Amazon S3 构建了自动驾驶数据湖,测试车辆通过各类传感器采集了测试数据后经过多种方式注入云端的数据湖,并进行数据处理、标注、模型训练和仿真等等一系列的步骤,将训练好的模型重新部署到车端,再到路面进行测试,由此完成一个闭环。在这个博客里,我们主要关注“数据采集与注入”这个环节。
随着文远知行与车企的合作不断深入,自动驾驶车队规模迅速扩大,测试数据上传与任务管理变得更为复杂,旧有的数据注入平台已经无法满足需求。2020 年下半年,我们开始尝试利用 Amazon Serverless 技术进行应用现代化发行,以构建一个低成本、免运维和高安全性的数据注入管理服务。
在这里我们先简要描述一下数据注入服务的基本工作流程:
如上图示,各地的自动驾驶车辆在每天的运行过程中,会自动采集数据,记录到随车部署的服务器上。收车后,车载服务器上的移动硬盘插到车库的一台服务器上(我们称之为 Uploader )。Uploader 会自动对移动硬盘内的数据进行分析,将研发人员关注的 Labeling,Incidents 和 Logs 等数据自动上传至 Amazon Web Services 云端存储 S3。另外部分数据也会同时上传到本地机房的存储集群供后续处理。
车库里的显示屏会实时显示 Uploader 的数据上传状态,如下图示:同时管理员也能实时查看 Uploader 的健康状态、下发上传或计算任务以及任务运行状态。
相关文章