Lyft 使用 Amazon EC2 竞价型实例提高模拟能力并降低成本
2020 年
Lyft 是美国和加拿大最大的交通服务网络之一,其使命是:通过提供世界上最好的交通服务改善人们的生活。为实现这一使命,除了专注于拼车、共享单车系统、电动滑板车和公共交通合作伙伴关系外,Lyft 还在 2017 年成立了 Level 5 自动驾驶汽车(AV)部门。Lyft 的工程师使用从其自动驾驶车队收集的数 PB 数据,每年运行数百万次模拟,以提高其自动驾驶系统的性能和安全性。
进行这些模拟需要大量计算资源,Lyft 需要以可承受的价格获得能够纵向扩展和缩减的巨大计算能力。该公司自 2012 年推出拼车平台起,便一直在使用 Amazon Web Services(AWS)。如今,为了提高计算能力并降低成本,该公司再次寻求与 AWS 合作,最终选择将 Amazon Elastic Compute Cloud(Amazon EC2)竞价型实例和 Amazon Elastic Kubernetes Service(Amazon EKS)结合用于其自动驾驶汽车模拟工作负载。
现在,我们大约 77% 的计算实例集使用的是 Amazon EC2 竞价型实例。我们能够大幅纵向扩展我们的计算能力,同时降低总体运营成本。”
在 Amazon EC2 竞价型实例上运行模拟
在数千个图形处理单元(GPU)上并行运行模拟,对于 Level 5 成功测试和改进自动驾驶车辆对各种路况的响应方式至关重要。Lyft Level 5 高级工程师 Timothy Perrett 说:“模拟是我们提高软件安全性的关键方法之一,在经过充分模拟后我们才会让车辆上路,即便是测试道路也是如此。”探索模拟空间(例如改变速度、位置或车辆动力学)需要重复测试,因此需要很高的计算灵活性。
我们很早就清楚认识到,Level 5 的计算需求与 Lyft 的拼车业务截然不同。Perrett 说,“Level 5 有着不同的需求和限制。”“我们的主要计算需求是满足存在极高峰值的大型批量工作负载的运行需要。我们需要能够突增至高峰值负载,然后在我们不使用时迅速关闭一切。”
Lyft 本可以投资于本地中央处理器和 GPU,但由于此前使用 AWS 的良好体验,Lyft 团队选择将 AWS Cloud 作为首选方案。测试由此开始。Level 5 工程师首先利用 AWS 提供的 Amazon EC2 按需型实例的容量以及完全托管式 Kubernetes 服务 Amazon EKS。
在尝试使用按需型实例运行模拟后,Lyft 的 Level 5 团队很快意识到,改用 Amazon EC2 竞价型实例可以提高效率并降低成本。现在,Lyft 超过 90% 的模拟在 Amazon EC2 竞价型实例(包括由 NVIDIA V100 Tensor Core GPU 提供支持的 Amazon EC2 P3 实例)上运行,这使他们能够以相较于按需定价低至三折的价格利用 AWS Cloud 中未使用的 Amazon EC2 容量。“在我们试用 Amazon EC2 竞价型实例期间,我们意识到随着我们的计划快速发展,我们将能够显著降低运营成本,”Perrett 表示。
让模拟高效运行
Level 5 团队以 Perrett 所说的“聪明的舞步”方式分配其模拟工作负载,以确保即使在 Amazon EC2 竞价型实例由于需求量大而无法使用时模拟仍可运行。工程人员会观察哪些集群(以及这些集群中的池)高效运行,并考虑区域和可用区的使用情况。“在某一天给定资源池的情况下,我们能够以更加智能的方式分配工作,”Perrett 指出。该团队使用 Amazon EKS 对资源池进行优先级排序和扩展,以便作业高效地使用实例。
该工程团队还仔细设计系统,以便模拟可以在各种硬件上运行,从而充分利用可用的硬件,Lyft 称之为实例集多样性。Perrett 解释说:“我们花了大量工夫让堆栈能够在任何类型的实例上运行,例如,Amazon EC2 P3 实例与 Amazon EC2 P2 实例。” 这样的灵活性有助于 Level 5 工程师避免因安排模拟浪费时间,即使在需求很高的情况下也是如此。
Lyft 还必须管理从模拟及其自动驾驶车队收集的大量数据,并且随着其测试车辆上采用的传感器数量的增加,Lyft 开始利用 Amazon Simple Storage Service(Amazon S3)来存储和访问不断增加的数据集。Level 5 团队从其自动驾驶汽车和模拟中所收集和存储的信息的数据量达到 PB 级,并且他们需要将这些数据直接传输到云端,在采用先前的方法时,成本很高。为了降低成本,Lyft 使用 AWS Direct Connect,用于在其 Level 5 工程中心与其云系统之间建立专用网络连接。“我们有一个非常高容量的网络,可以连接到我们运营自动驾驶车队的地方,”Perrett 指出。“然后我们以更低的每 PB 成本上传数据。”
通过在 Amazon EC2 竞价型实例上仔细划分和引导其模拟流量,Lyft 的 Level 5 工程团队将模拟成本降低到了每次执行只需几美分。“现在,我们的所有 Level 5 工作负载中的大约 77% 的计算实例集,以及超过 90% 的自动驾驶汽车模拟工作负载使用的是 Amazon EC2 竞价型实例,总体成本节省了大约三分之二,”Perrett 说。“我们能够大幅纵向扩展我们的计算能力,同时降低总体运营成本。”
未来的交通
Lyft 的工程团队通过使用 AWS,大幅降低了数百万次模拟的成本,从而能够在办公室内对软件修改进行充分测试,增强在现实世界中测试实体车辆的信心。“与在测试道路测试车辆相比,模拟是一种更具成本效益的验证软件修改的方法,”Perrett 说。“这缩短了工程人员进行迭代的时间,并有助于在更短的时间内提高安全性和软件质量。”
展望未来,Level 5 凭借运行数百万次模拟的能力,必定能够取得令人兴奋的发展。Lyft 通过结合使用 Amazon EC2 竞价型实例和 Amazon EKS 以及其他 AWS 服务,让全世界距离利用自动驾驶汽车实现安全可靠的交通的梦想更进一步。
关于 Lyft
Lyft 是美国和加拿大最大的交通服务网络之一,其使命是:通过提供世界上最好的交通服务改善人们的生活。其提供拼车、电动滑板车和共享单车系统,并建立公共交通合作伙伴关系。
AWS 带来的效益
● 计算成本降低三分之二
● 显著提升计算能力
● 提高自动驾驶汽车的开发速度
使用的 AWS 服务
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) 是一种 Web 服务,可以在云中提供安全并且可应需调整的计算容量。该服务旨在让开发人员能够更轻松地进行 Web 规模的云计算。
Amazon EC2 Spot 实例
Amazon EC2 Spot 实例让您可以利用 AWS 云中未使用的 EC2 容量。与按需实例的价格相比,使用竞价型实例最高可以享受 90% 的折扣。您可以将竞价型实例用于各种无状态、容错或灵活的应用程序。
Amazon EKS
Amazon EKS 是完全托管式 Kubernetes 服务。EKS 可运行上游 Kubernetes,并且经认证与 Kubernetes 一致,因此您可以利用社区中开源工具的所有优势。
开始使用
不同行业和规模的公司都在使用 AWS,将其日常业务运营进行转型。联系我们的专家,立即踏上您的 AWS 云之旅。