下面討論的範例工作負載說明如何建置模擬,以透過 Azure DevOps 管線自動執行並評估模擬車輛功能。 每次工程師檢查範例函式的原始程式碼或其模擬環境新版本時,都會執行此管線。
架構
下載此架構的 Visio 檔案。
用戶輸入層
開發人員只會與此層互動。 其中包含開發人員工作站(我們範圍內的 Azure VM),以及描述模擬環境的規格檔案。
協調流程層
“協調流程”具有廣泛的意義:這個詞所描述的一些問題是微不足道的:其他則更為複雜。 例如,建立、監視和終結容器和 VM 的「協調流程」問題已由許多工具解決—Azure API 本身就足以達到此目的的「協調器」!
工作流程
不過,請務必將「協調流程」黑匣子分解成較小的元件。
模擬 API:此 API 會接收規格檔案,而且是使用協調流程層控制模擬環境和模擬執行的進入點。
解釋器:此元件會將規格檔案解譯為模擬管理員的邏輯結構。
模擬管理員:這是將邏輯模擬環境物件轉換成其他元件所要使用的所需狀態和動作的狀態機器。 這是觸發模擬建置、執行和卸除的元件。 它也會管理內部相依性和失敗模式。
排程器:此元件會將建置組塊指派給基礎結構資源,並在該處加以啟動。 其會考慮硬體和存取需求、可用的資源和資源限制。
環境管理員:此元件會監看基礎結構並響應問題,例如容器主機關閉時。
網路管理員:此元件會管理模擬環境的網路和路由。 每個環境都必須存在於隔離的網路環境中,隔離建置組塊會接收傳入連線以進行互動。 此元件也會用來解析模擬內的建置元件(例如,透過內部 DNS)。
存取管理員:此元件會將來自Microsoft Entra 標識符的授權/驗證反映到系統的其餘部分。
Configuration Manager:此元件可作為基礎結構和模擬環境狀態的持續性儲存機制。
基礎結構抽象:這是抽象層,可將泛型命令轉譯成容器與 VM 的特定 Azure API 命令。
記憶體管理員:此元件會管理模擬環境的布建和鏈接記憶體(例如 VM 根裝置或容器連結磁碟區)。
資源監視器:此元件會將基礎結構層級的資源使用量監視為時間序列資料庫,以匯出至 ADP 的核心監視。
記錄管理員:此元件會從建置組塊匯總記錄以進行用戶檢查。 它也會將記錄導出至 ADP 核心記錄。
協調流程層是此範例工作負載的主要焦點。
模擬基礎結構層
此層代表所有執行中的模擬環境。
模擬環境:定義檔案和參數所定義的建置組塊組合在這裡建立,與任何其他模擬環境保持網路隔離。
建置組塊合約:撰寫的標準,定義所有建置組塊如何將輸出、錯誤和狀態傳送至協調流程層。
建置組塊管線:此區域會管理建置組塊的建立和儲存。
建置組塊存放庫:這是建置組塊映像的記憶體和擷取系統,例如容器登錄和/或 Azure 映像庫。
建置組塊處理站:持續整合和持續部署 (CI/CD) 管線,它會使用宣告式組態語言(例如 Chef 或 Ansible)的不可變、可驗證的元件套件(例如 dpkg 或 apt)來建立建置組塊映射。
儲存層
此層可永久且可存取地儲存仿真的結果。 它主要是行動應用程式開發平臺 (MADP) Data Lake Workstream 的責任,不過您的輸出必須由該小組管理。
記憶體介面:允許使用者使用模擬結果記憶體的介面。 這與上述記憶體管理員協調流程元件可以與上述的記憶體管理員協調流程元件搭配運作,或可以取代。
記憶體:用於儲存模擬結果的儲存機制(例如,Azure Blob 儲存體 或 Azure 磁碟記憶體資源)。
元件
Azure 虛擬機器提供隨選的可調式計算資源,使您能夠靈活地進行虛擬化,無需購買和維護實體硬體。
Azure 虛擬網路 是私人網路在 Azure 中的基本建置組塊。 Azure 虛擬網絡 可讓許多類型的 Azure 資源,例如 Azure 虛擬機器,安全地彼此通訊、因特網和內部部署網路。
Azure 容器執行個體 提供在 Azure 中執行容器的最快速且最簡單的方式,而不需要管理任何 VM,也不需要採用較高層級的服務。
Azure Container Registry 是受控的私人 Docker 登錄服務,以開放原始碼 Docker Registry 2.0 為基礎。 您可以搭配使用 Azure 容器登錄與現有的容器開發與部署管線,或使用 Azure Container Registry 工作在 Azure 中建置容器映像。 視需要建置,或透過原始程式碼認可和基底映像更新等觸發程序,使建置完全自動化。
Azure Pipelines 是 Azure DevOps Services 的一部分,並執行自動化組建、測試和部署。 您也可以使用第三方 CI/CD 解決方案,例如 Jenkins。
Microsoft Entra 識別碼 是雲端式身分識別和存取管理服務,可驗證用戶、服務和應用程式。
Azure 儲存體 提供持久、高可用性且可大幅調整的雲端記憶體解決方案。 它包含物件、檔案、磁碟、佇列和數據表記憶體功能。
Azure 監視器 會收集來自各種內部部署和 Azure 來源的監視遙測。 此服務會將遙測匯總並儲存在已針對成本和效能優化的記錄數據存放區中。
替代項目
此架構會使用 VM 和容器來部署不同的工具和服務。 或者,您也可以使用 Azure Kubernetes Services (AKS)。 AKS 提供無伺服器 Kubernetes、整合的 CI/CD 體驗,以及企業級的安全性與治理。
此架構中用來儲存模擬結果的儲存機制是以 Azure Blob 儲存體 或 Azure 磁碟記憶體為基礎。 作為較大工作負載的替代方案,您也可以查看 Azure 的大型 數據和分析 解決方案,以儲存和分析數據。
也請考慮使用 Azure 監視器 來分析和優化基礎結構的效能,以及監視和診斷網路問題,而不需要登入 VM。
案例詳細資料
若要評估自動駕駛(AD),函式工程師需要模擬具有AD功能的車輛行為。 請考慮下列駕駛案例範例:
一輛試車在3車道高速公路的右車道上以每小時80英里的速度行駛。 在相同的車道上行駛時,有一輛600英尺長的卡車,在每小時55英里處以相同的方向行駛。 中間車道附近沒有車輛。 道路標記是可見的,太陽照亮的垂直車輛,道路乾燥。
使用類似案例的車輛行為的有限模擬稱為 模擬執行。 在上述案例中,模擬車輛的預期行為是輕鬆通過卡車,而不會造成事故,而且不違反任何交通規則。 AD 函式工程師會針對每個新版本的函式執行模擬,以測試新版本是否仍會呈現預期的行為。
為了執行模擬,AD 函式工程師通常會使用一組軟體應用程式。 這些可以包括虛擬試駕(VTD)、時間分割測試(TPT)、航空電子開發系統 2G(ADS2)和汽車數據和時間觸發架構(ADTF),所有這些架構都根據其特定組態相互通訊,以測試指定的自動駕駛功能,如高速公路飛行員。 這組軟體工具及其設定部署至內部部署和/或雲端中的實體和/或虛擬機(VM)稱為 模擬環境。
若要確保您所執行之每個模擬所產生的測試結果有效性,您應該確保模擬會在新的模擬環境中啟動,並將其初始狀態設定為 。
每個自主駕駛小組在其模擬環境中都需要一組個別的應用程式,並具有獨特的設定。 許多小組也需要多個不同的模擬環境。 例如,若要評估 LIDAR 感測器,您將需要非常高解析度的物件模擬,但不需要其他驅動程式、道路標記或其他功能。 雖然每個環境都是唯一的,但所使用的應用程式會有很大的重疊。 例如,許多小組會跨多個模擬環境使用 VTD。
在由可重複使用、封裝和獨立評估的單位所組成的模擬環境中,可以執行模擬。 這些單元可作為您將用來在 Azure 雲端中自動和隨選建立模擬環境的「建置組塊」。 這些模擬環境也稱為自動化駕駛平臺(ADP)。
潛在使用案例
此解決方案適用於汽車和運輸產業。 此工作負載的典型用法包括:
自動化駕駛測試。
汽車工業中控制系統的原型設計、開發、整合、測試、驗證和驗證。
記錄用於視覺效果的車輛數據。
在汽車產業中模擬複雜的駕駛案例。
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
可用性與復原能力
請考慮跨可用性設定組或可用性區域部署 VM,以協助保護應用程式免於計畫性維護事件和非計畫性中斷。
可用性設定組是 VM 的邏輯群組,可讓 Azure 了解您應用程式的建置方式,以提供備援和可用性。
可用性區域是 Azure 區域內的唯一實體位置,可協助保護 VM、應用程式和數據免於資料中心失敗。 每個區域由一或多個數據中心組成。 即使單一數據中心發生實體失敗,區域中的 VM 和應用程式仍可維持可用狀態。
延展性
您可以手動或使用 自動調整功能來調整 Azure VM。
針對容器部署, Azure 容器實例 和 Azure Kubernetes Services 也設計為手動或自動相應增加或相應放大。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性支柱的概觀。
如同任何其他類型的應用程式,模擬環境的設計目的是要處理敏感數據。 因此,您應該限制誰可以登入並使用,而且也應該根據使用者的身分識別或角色來限制可以存取的數據。 使用 Microsoft Entra ID 進行身分識別和訪問控制,並使用 Azure 金鑰保存庫 來管理密鑰和秘密。
如需有關設計安全解決方案的一般指引,請參閱 Azure 安全性文件。
DevOps
若要部署全新的模擬環境,最好使用 Azure DevOps 或 GitHub Actions 等解決方案來使用 CI/CD 程式。
成本最佳化
成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化支柱的概觀。
通常會使用 Azure 定價計算機估算成本。 您也可以遵循從頭開始調整 VM 容量大小的程式,並視需要簡化重設大小,以將成本優化。 Microsoft Azure Well-Architected Framework 中的「成本」一節會說明其他考量。
下一步
產品文件:
Microsoft學習路徑:
相關資源
Azure 架構中心概觀文章: