Lyft 使用 Amazon EC2 Spot 執行個體提高模擬能力並降低成本

2020 年

Lyft 是美國和加拿大最大的交通服務網路之一,旨在透過提供世界上最優質的交通服務,改善人們的生活。為實現這一使命,除了專注於共乘、公共自行車系統、電動滑板車和公共交通合作夥伴關係外,Lyft 還在 2017 年成立了 Level 5 自動駕駛汽車 (AV) 部門。Lyft 的工程師使用從其自動駕駛車隊收集的數 PB 資料,每年執行數百萬次模擬,以提高其自動駕駛系統的效能和安全性。

進行這些模擬需要大量運算資源,因此 Lyft 需要能夠縱向擴展和縮減並且價格合理的巨大運算能力。該公司自 2012 年推出共乘平台起,便一直使用 Amazon Web Services (AWS)。如今,為了提高運算能力並降低成本,該公司再次與 AWS 合作,最終選擇將 Amazon Elastic Compute Cloud (Amazon EC2) Spot 執行個體Amazon Elastic Kubernetes Service (Amazon EKS) 結合用於其自動駕駛汽車模擬工作負載。

kr_quotemark

現在,我們大約 77% 的運算機群使用的是 Amazon EC2 Spot 執行個體。我們能夠大幅縱向擴展我們的運算能力,同時降低總體營運成本。」

Timothy Perrett
Lyft Level 5 資深工程師

在 Amazon EC2 Spot 執行個體上執行模擬

在數千個圖形處理單元 (GPU) 上平行執行模擬,對於 Level 5 成功測試和改進自動駕駛車輛對各種路況的回應方式至關重要。Lyft Level 5 資深工程師 Timothy Perrett 表示:「模擬是我們提高軟體安全性的關鍵方法之一,在經過充分模擬後,我們才會讓車輛上路,即便在測試道路上也是如此。」探索模擬空間 (例如改變速度、位置或車輛動力學) 需要重複測試,因而需要很高的運算靈活性。

我們很早就清楚認識到 Level 5 的運算需求與 Lyft 的共乘業務截然不同。Perrett 說,「Level 5 有著不同的需求和限制。」「我們的主要運算需求是滿足存在極高尖峰的大型批次工作負載的執行需要。我們需要能夠爆量至尖峰負載,然後在我們不使用時迅速關閉一切。」

Lyft 本可以投資於內部部署中央處理器和 GPU,但由於此前使用 AWS 的良好體驗,Lyft 團隊選擇將 AWS 雲端作為首選方案。測試由此開始。Level 5 工程師首先利用 AWS 提供的 Amazon EC2 隨需型執行個體的容量以及全受管 Kubernetes 服務 Amazon EKS。

在嘗試使用隨需型執行個體執行模擬後,Lyft 的 Level 5 團隊很快意識到,改用 Amazon EC2 Spot 執行個體可以提高效率並降低成本。現在,Lyft 超過 90% 的模擬都在 Amazon EC2 Spot 執行個體 (包括採用 NVIDIA V100 Tensor Core GPU 技術的 Amazon EC2 P3 執行個體) 上執行,這使他們能夠以相較於隨需定價低至三折的價格,充分利用 AWS 雲端中未使用的 Amazon EC2 容量。「在我們試用 Amazon EC2 Spot 執行個體期間,我們意識到隨著我們的計劃快速發展,我們將能夠顯著降低營運成本,」Perrett 表示。

讓模擬高效執行

Level 5 團隊以 Perrett 所說的「聰明的舞步」方式分配其模擬工作負載,以確保即使在 Amazon EC2 Spot 執行個體由於需求量大而無法使用時,模擬仍可執行。工程人員會觀察哪些叢集 (以及這些叢集中的集區) 高效執行,並考慮區域和可用區域的使用情況。「我們能夠以更加智慧的方式於任何資源集區重新放置與分配工作,」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 Spot 執行個體上仔細劃分和引導其模擬流量,Lyft 的 Level 5 工程團隊將模擬成本降低到了每次執行只需幾美分。「現在,我們的所有 Level 5 工作負載中大約 77% 的運算機群,以及超過 90% 的自動駕駛汽車模擬工作負載都在使用 Amazon EC2 Spot 執行個體,總體成本節省了大約三分之二,」Perrett 說道。「我們能夠大幅縱向擴展我們的運算能力,同時降低總體營運成本。」

未來的交通

Lyft 的工程團隊透過使用 AWS,大幅降低了數百萬次模擬的成本,從而能夠在辦公室內對軟體修改進行充分測試,增強在現實世界中測試實體車輛的信心。「與在測試道路測試車輛相比,模擬是一種更具成本效益的驗證軟體修改的方法,」Perrett 表示。「這縮短了工程人員進行迭代的時間,並有助於在更短的時間內提高安全性和軟體品質。」

展望未來,Level 5 憑藉執行數百萬次模擬的能力,必定能夠取得令人興奮的發展。Lyft 透過結合使用 Amazon EC2 Spot 執行個體和 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 容量。與隨需價格相比,Spot 執行個體最高可享受 90% 的折扣。您可以將 Spot 執行個體用於各種無狀態、容錯或靈活的應用程式。

進一步了解 »

Amazon EKS

Amazon EKS 是一種全受管 Kubernetes 服務。EKS 執行上游 Kubernetes,且已通過 Kubernetes 符合認證,因此您可以從社群中獲取開放原始碼工具的所有益處。

進一步了解 »


入門

各行各業、各種規模的公司每天都在使用 AWS 來轉型業務。聯絡我們的專家,立即開始使用 AWS 雲端服務。