使用後台和自助式 Amazon SageMaker AI 範本加速 MLOps - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用後台和自助式 Amazon SageMaker AI 範本加速 MLOps

Ashish Bhatt、Shashank hirematt 和 Shivanshu Suryakar,Amazon Web Services

摘要

使用機器學習操作 (MLOps) 系統的組織在擴展、標準化和保護其 ML 基礎設施方面面臨重大挑戰。此模式引進一種轉型方法,結合了開放原始碼開發人員入口網站 BackstageAmazon SageMaker AI 和強化基礎設施即程式碼 (IaC) 模組,以改善資料科學團隊如何開發、部署和管理 ML 工作流程。

此模式的 IaC 模組會在 GitHub AWS AIOps 模組儲存庫中提供。這些模組提供預先建置的範本,用於設定 ML 基礎設施和建立一致的 ML 環境。不過,資料科學家通常很難直接使用這些範本,因為他們需要基礎設施專業知識。新增開發人員入口網站,例如 Backstage,為資料科學家建立易於使用的方式,以部署標準化的 ML 環境,而無需了解基礎基礎設施詳細資訊。

透過使用 Backstage 做為自助式平台並整合預先設定的 SageMaker AI 範本,您可以:

  • 加速 ML 計畫的價值實現時間。

  • 協助強制執行一致的安全性和控管。

  • 為資料科學家提供標準化、合規的環境。

  • 降低營運開銷和基礎設施複雜性。

此模式提供解決方案,可解決 MLOps 的關鍵挑戰,並提供可擴展、可重複的架構,在維持組織標準的同時實現創新。

目標對象

此模式適用於組織內涉及 ML、雲端架構和平台工程的廣泛受眾。其中包含:

  • 想要標準化和自動化 ML 工作流程部署的 ML 工程師

  • 希望自助存取預先設定且合規 ML 環境的資料科學家

  • 負責建置和維護內部開發人員平台和共用基礎設施的平台工程師

  • 為 MLOps 設計可擴展、安全和經濟實惠雲端解決方案的雲端架構師

  • DevOps 工程師有興趣將持續整合和持續交付 (CI/CD) 實務延伸至 ML 基礎設施佈建和工作流程。

  • 監督 ML 計畫並希望改善團隊生產力、控管和上市時間的技術主管和經理

如需有關 MLOps 挑戰、SageMaker AI MLOps 模組,以及此模式提供的解決方案如何滿足 ML 團隊需求的詳細資訊,請參閱其他資訊一節。

先決條件和限制

先決條件

限制

  • 範本涵蓋範圍有限。目前,該解決方案僅支援更廣泛的 AIOps 解決方案中的 SageMaker AI 相關 AIOps 模組。其他模組,例如 Ray on Amazon Elastic Kubernetes Service (Amazon EKS)、MLflow、Apache Airflow,以及 Amazon Bedrock 的微調,尚無法做為後台範本使用。

  • 不可設定的預設設定。範本使用來自 AIOps SageMaker 模組的固定預設組態,無需自訂。您無法透過 Backstage 介面修改執行個體類型、儲存體大小、聯網組態或安全政策,這會限制特定使用案例的彈性。

  • AWS僅限 支援。平台專為 AWS 部署而設計,不支援多雲端案例。在 外部使用雲端服務的組織 AWS 雲端 ,無法將這些範本用於其 ML 基礎設施需求。

  • 手動憑證管理。您必須為每個部署手動提供登入 AWS 資料。此解決方案不提供與公司身分提供者的整合 AWS IAM Identity Center,或自動憑證輪換。

  • 有限的生命週期管理。範本缺少全面的資源生命週期管理功能,例如自動清除政策、成本最佳化建議和基礎設施偏離偵測。建立後,您必須手動管理和監控部署的資源。

架構

下圖顯示統一開發人員入口網站的解決方案架構,該入口網站使用 SageMaker AI 標準化和加速跨環境的 ML 基礎設施部署。

適用於具有 Backstage、CNOE、GitHub Actions 和 Seed-Farmer 的統一開發人員入口網站的架構。

在此架構中:

  1. AWS 應用程式現代化藍圖使用 Amazon EKS 叢集佈建基礎設施設定,做為雲端原生卓越營運 (CNOE) 架構的基礎。此全方位解決方案提供可擴展的內部開發人員平台 (IDP),可解決複雜的雲端原生基礎設施管理挑戰。藍圖提供結構化方法來設定強大、彈性的基礎設施,以適應不斷發展的組織需求。

  2. CNOE 開放原始碼架構整合 DevOps 工具,並透過統一的平台工程方法解決生態系統分段問題。透過結合不同的工具和技術,可簡化雲端原生開發的複雜環境,讓您的團隊可以專注於創新,而不是工具鏈管理。此架構提供標準化方法來選取、整合和管理開發工具。

  3. 透過 CNOE,Backstage 會部署為 out-of-the-box解決方案。Backstage 透過Keycloak 綁定了強大的身分驗證,並透過Argo CD 綁定了全面的部署工作流程。此整合式平台會建立集中式環境來管理開發程序,並為團隊提供單一位置,以跨多個環境存取、部署和監控其基礎設施和應用程式。

  4. GitHub 儲存庫包含預先設定的 AIOps 軟體範本,涵蓋整個 SageMaker AI 生命週期。這些範本可解決重要的 ML 基礎設施需求,包括 SageMaker Studio 佈建、模型訓練、推論管道和模型監控。這些範本可協助您加速 ML 計畫,並確保不同專案和團隊的一致性。

  5. GitHub Actions 實作自動化工作流程,透過 Seed-Farmer 公用程式動態觸發資源佈建。此方法將 Backstage 目錄與 AIOps 模組儲存庫整合,並建立簡化的基礎設施部署程序。自動化可減少手動介入、將人為錯誤降至最低,並確保跨不同環境快速、一致的基礎設施建立。

  6. AWS CDK 可協助您將基礎設施定義為程式碼,並確保跨指定資源的可重複、安全且合規的部署 AWS 帳戶。這種方法以最少的手動介入提供最大的控管,因此您可以建立標準化的基礎設施範本,以便輕鬆複寫、版本控制和稽核。

工具

AWS 服務

其他工具

  • Backstage 是一種開放原始碼架構,可協助您建置內部開發人員入口網站。

  • GitHub Actions 是一種 CI/CD 平台,可自動化軟體開發工作流程,包括建置、測試和部署程式碼等任務。

程式碼儲存庫

此模式使用來自下列 GitHub 儲存庫的程式碼和範本:

實作

此實作使用 儲存庫上現代工程 AWS後台的生產級部署模式。此方法可大幅簡化設定程序,同時整合安全性和可擴展性的 AWS 最佳實務。

此模式的 Epics 區段概述了實作方法。如需詳細的step-by-step部署說明,請參閱 AIOps 內部開發人員平台 (IDP) 中與 Backstage 儲存庫搭配使用的完整部署指南。實作包括:

  • 初始後台平台部署

  • 整合 SageMaker 軟體範本與 Backstage

  • 使用和維護後台範本

部署指南也包含持續維護、疑難排解和平台擴展的指引。

最佳實務

遵循這些最佳實務,以協助確保 MLOps 基礎設施實作的安全性、控管和卓越營運。

範本管理

  • 絕不對即時範本進行重大變更。

  • 在生產部署之前,請務必徹底測試更新。

  • 維護清楚且記錄良好的範本版本。

安全性

  • 將 GitHub 動作釘選到特定的遞交安全雜湊演算法 (SHAs),以協助防止供應鏈攻擊。

  • 使用具有精細許可的最低權限 IAM 角色。

  • 將敏感登入資料存放在 GitHub Secrets 和 中AWS Secrets Manager

  • 絕不在 範本中硬式編碼登入資料。

控管與追蹤

  • 實作全面的資源標記標準。

  • 啟用精確的成本追蹤和合規監控。

  • 維護基礎設施變更的清晰稽核線索。

本指南為使用 Backstage、SageMaker AI 和 IaC 模組實作這些最佳實務提供了堅實的基礎。

史詩

任務描述所需的技能

部署 Backstage。

此步驟使用 儲存庫上現代工程 AWS的藍圖,建置強大且可擴展的基礎設施,整合多個 AWS 服務 以建立 ML 工作流程的集中式 IDP。遵循部署指南後台部署一節中的指示,複製儲存庫、安裝相依性、引導 AWS CDK 設定環境變數,以及部署後台平台。

基礎設施使用 Amazon EKS 做為容器協同運作平台,以部署 IDP 元件。Amazon EKS 架構包含安全的聯網組態,可建立嚴格的網路隔離並控制存取模式。平台與身分驗證機制整合,以協助保護使用者跨服務和環境的存取。

平台工程師

設定 SageMaker AI 範本。

此步驟使用 GitHub AIOps 內部開發人員平台 (IDP) 中的指令碼搭配 Backstage 儲存庫。遵循部署指南的 SageMaker 範本設定區段中的指示,複製儲存庫、設定先決條件,以及執行設定指令碼。

此程序會建立儲存庫,其中包含與 Backstage 整合所需的 SageMaker AI 範本。

平台工程師

整合 SageMaker AI 範本與 Backstage。

請遵循部署指南的 SageMaker 範本整合區段中的指示來註冊 SageMaker AI 範本。

此步驟會將 AIOps 模組 (最後一個步驟的 SageMaker AI 範本) 整合到您的後台部署中,讓您可以自行滿足 ML 基礎設施需求。

平台工程師

使用來自 Backstage 的 SageMaker AI 範本。

遵循部署指南的使用 SageMaker 範本一節中的指示,存取 Backstage 入口網站並在 SageMaker Studio 中建立 ML 環境。

在 Backstage 入口網站中,您可以從可用的 SageMaker AI 範本中選擇,包括 SageMaker Studio 環境、SageMaker 筆記本、自訂 SageMaker 專案範本和模型部署管道的選項。在您提供組態參數之後,平台會自動建立專用儲存庫,並透過 GitHub Actions 和 Seed-Farmer 佈建 AWS 資源。您可以透過 GitHub 動作日誌和 Backstage 元件目錄來監控進度。

資料科學家、資料工程師、開發人員
任務描述所需的技能

更新 SageMaker AI 範本。

若要更新後台中的 SageMaker AI 範本,請遵循下列步驟。

  1. 修改範本內容:

    1. template.yaml 檔案中進行必要的變更,或編輯 skeleton/目錄中的檔案。

    2. 在本機或開發環境中測試任何新的參數、動作或檔案結構。

  2. 測試變更:

    1. 使用 Backstage UI 或 CLI (@backstage/create-app),使用更新的範本來堆疊測試元件。

    2. 驗證所有步驟是否成功執行,以及產生的程式碼是否符合您的期望。

  3. 遞交和推送變更:

    1. 將變更推送至儲存範本的 Git 儲存庫。

      如果範本已在特定分支中註冊 (例如 main),則會自動反映更新。

    2. 如果您使用的是版本控制 (請參閱下一個步驟),請確定已更新正確的版本或標籤。

平台工程師

建立和管理範本的多個版本。

對於重大變更或升級,您可能想要建立 SageMaker AI 範本的多個版本。

  1. 針對每個版本使用 Git 標籤或分支;例如:

    git checkout -b v2.0.0 git push origin v2.0.0
  2. (選用但建議) 分別註冊每個版本。

    在後台中,您可以將不同版本的範本註冊為目錄中的個別實體,其中每個實體指向特定的分支或標籤。例如 (檔案).yaml

    metadata: name: node-service-template-v2 description: Node.js service template - Version 2 spec: type: template lifecycle: experimental version: '2.0.0'
  3. 在範本儲存庫中維護CHANGELOG.md檔案,以清楚傳達變更。在此檔案中,記錄在範本的每個版本中引入了哪些功能或變更。

  4. 如有必要,請棄用範本的較舊版本:

    1. 在範本描述中將其標記為已棄用。

    2. 如果不再需要版本,請從目錄中移除版本。

平台工程師
任務描述所需的技能

將範本涵蓋範圍擴展到 SageMaker AI 之外。

目前的解決方案只會實作 SageMaker AI 相關的 AIOps 範本。您可以新增 AIOps 模組並整合其他 AWS 服務 和應用程式的自訂軟體範本,以擴展 ML 環境。您可以使用 Backstage 中的範本設計工具界面、實作自訂 scaffolder 動作,或使用標準中繼資料維護範本儲存庫,來建立這些項目。平台支援範本版本控制、跨團隊共用和驗證工作流程,以確保一致性。如需詳細資訊,請參閱 Backstage 文件

您也可以實作範本繼承模式來建立基本範本的專用版本。此可擴展性可讓您管理 SageMaker AI 以外的各種 AWS 資源和應用程式,同時保留簡化的開發人員體驗和維護組織的標準。

平台工程師

使用動態參數注入。

目前範本使用預設組態而不進行自訂,並執行 Seed-Farmer CLI 以部署具有預設變數的資源。您可以針對模組特定的組態使用動態參數注入來擴展預設組態。

平台工程師

增強安全性和合規性。

若要增強建立 AWS 資源的安全性,您可以啟用角色型存取控制 (RBAC) 與單一登入 (SSO)、SAML、OpenID Connect (OIDC) 和政策整合,做為程式碼強制執行。

平台工程師

新增自動資源清除。

您可以啟用自動清除政策的功能,也可以新增基礎設施偏離偵測和修復。

平台工程師
任務描述所需的技能

移除後台基礎設施和 SageMaker AI 資源。

使用完 ML 環境後,請遵循部署指南的清除和資源管理一節中的指示,移除後台基礎設施並刪除 ML 環境中的 SageMaker AI 資源。

平台工程師

故障診斷

問題解決方案

AWS CDK 引導失敗

驗證 AWS 登入資料和區域組態。

Amazon EKS 叢集存取問題

檢查 kubectl 組態和 IAM 許可。

Application Load Balancer 連線問題

確定安全群組允許連接埠 80/443 上的傳入流量。

GitHub 整合問題

驗證 GitHub 字符許可和組織存取。

SageMaker AI 部署失敗

檢查AWS 服務 配額和 IAM 許可。

相關資源

其他資訊

業務挑戰

開始或擴展 MLOps 計畫的組織經常遇到以下業務和技術挑戰:

  • 環境不一致。缺乏標準化的開發和部署環境會使協同合作變得困難,並增加部署風險。

  • 手動佈建額外負荷。使用 SageMaker Studio、Amazon Simple Storage Service (Amazon S3) 儲存貯體、IAM 角色和 CI/CD 管道手動設定 ML 基礎設施非常耗時且容易出錯,並從其模型開發的核心任務中轉移資料科學家。

  • 缺乏可探索性和重複使用性。由於缺少集中式目錄,因此很難找到現有的 ML 模型、資料集和管道。這會導致多餘的工作和錯失重複使用的機會。

  • 複雜的控管和合規。確保 ML 專案遵守組織安全政策、資料隱私權法規和合規標準,例如健康保險流通與責任法案 (HIPAA) 和一般資料保護法規 (GDPR),如果沒有自動化防護機制,可能具有挑戰性。

  • 值時間變慢。這些挑戰的累積效果會導致長期的 ML 專案生命週期,並延遲從 ML 投資實現商業價值。

  • 安全風險。不一致的組態和手動程序可能會引入安全漏洞,導致難以強制執行最低權限和網路隔離。

這些問題會延長開發週期、增加營運開銷,並帶來安全風險。ML 的反覆性質需要可重複的工作流程和高效的協同合作。

截至 2026 年,Gartner 預測 80% 的軟體工程組織將擁有平台團隊。(請參閱《Gartner 網站上的平台工程讓開發人員變得更好、更快、更快樂。) 此預測強調 IDP 如何加速軟體交付。做為 IDP,Backstage 有助於將訂單還原至複雜的基礎設施,以便團隊快速安全地交付高品質的程式碼。將 Backstage 與強化的 AIOps 模組整合,可協助您從被動故障診斷轉變為主動預防。

MLOps SageMaker 模組

用於此模式的 GitHub 儲存庫中的 AIOps 模組為 AWS 透過可重複使用且強化的 IaC 在 上標準化 MLOps 提供了寶貴的基礎。這些模組封裝了佈建 SageMaker 專案、管道以及相關聯網和儲存資源的最佳實務,目標是降低複雜性並加速 ML 環境的設定。您可以將這些範本用於各種 MLOps 使用案例,以建立一致且安全的部署模式,以培養更受管且更有效率的 ML 工作流程方法。

直接使用 AIOps 模組通常需要平台團隊部署和管理這些 IaC 範本,這可能為希望自助存取的資料科學家帶來挑戰。探索和了解可用的範本、設定必要的參數,以及觸發其部署,可能需要導覽 AWS 服務 主控台或直接與 IaC 工具互動。這可以為偏好專注於 ML 任務的資料科學家建立摩擦、增加認知負載,如果這些範本不是透過集中且易於使用的界面進行管理,可能會導致參數化不一致或偏離組織標準。將這些強大的 AIOps 模組與 Backstage 等 IDP 整合,可提供簡化的自助式體驗、增強的可探索性,以及更強大的控管控制,以使用這些標準化 MLOps 建置區塊,協助解決這些挑戰。

後台做為 IDP

內部開發人員平台 (IDP) 是由平台團隊建置的自助層,可簡化和標準化開發人員建置、部署和管理應用程式的方式。它可消除基礎設施的複雜性,並讓開發人員透過統一的界面輕鬆存取工具、環境和服務。

IDP 的主要目標是透過以下方式增強開發人員體驗和生產力:

  • 為服務建立和部署等任務啟用自助式服務。

  • 透過標準範本提升一致性和合規性。

  • 整合整個開發生命週期 (CI/CD、監控和文件) 的工具。

Backstage 是由 Spotify 建立的開放原始碼開發人員入口網站,現在是雲端原生運算基金會 (CNCF) 的一部分。它透過提供集中、可擴展的平台來管理軟體元件、工具和文件,協助組織建置自己的 IDP。透過 Backstage,開發人員可以:

  • 透過軟體目錄探索和管理所有內部服務。

  • 透過 scaffolder 外掛程式使用預先定義的範本建立新專案。

  • 從單一位置存取整合工具,例如 CI/CD 管道、Kubernetes 儀表板和監控系統。

  • 透過 TechDocs 維護一致的 Markdown 型文件。

常見問答集

使用此後台範本與透過 SageMaker 主控台手動部署 SageMaker Studio 有何不同?

Backstage 範本提供優於手動 AWS 主控台部署的多種優勢,包括遵循組織最佳實務的標準化組態、使用 Seed-Farmer 和 的自動化 IaC 部署 AWS CDK、內建安全政策和合規措施,以及透過 GitHub 與您組織的開發人員工作流程整合。範本也會使用版本控制建立可重現的部署,讓您更輕鬆地跨不同階段 (開發、預備、生產) 複寫環境,並維持團隊之間的一致性。此外,範本包含自動清除功能,並透過 Backstage 與您組織的身分管理系統整合。透過主控台手動部署需要深入的 AWS 專業知識,並且不提供版本控制或範本提供的相同層級的標準化和管理。因此,相較於生產 ML 環境,主控台部署更適合一次性實驗。

什麼是 Seed-Farmer?為什麼使用此解決方案?

Seed-Farmer 是一種 AWS 部署協調工具,可透過使用 管理基礎設施模組 AWS CDK。此模式使用 Seed-Farmer,因為它提供標準化、可重複使用的基礎設施元件,專為 AI/ML 工作負載而設計, AWS 服務 自動處理之間的複雜相依性,並確保在不同環境中進行一致的部署。

我需要安裝 AWS CLI 才能使用這些範本嗎?

否,您不需要 AWS CLI 在電腦上安裝 。範本完全透過雲端中的 GitHub 動作執行。您可以透過 Backstage 介面提供 AWS 登入資料 (存取金鑰、私密金鑰和工作階段字符),而部署會自動在 GitHub Actions 環境中進行。

部署 SageMaker Studio 環境需要多長時間?

典型的 SageMaker Studio 部署需要 15-25 分鐘才能完成。這包括 AWS CDK 引導 (2-3 分鐘)、Seed-Farmer 工具鏈設定 (3-5 分鐘) 和資源建立 (10-15 分鐘)。確切時間取決於您的 AWS 區域 和聯網設定的複雜性。

我可以在相同的 中部署多個 SageMaker 環境 AWS 帳戶嗎?

是,您可以。每個部署都會根據您在範本中提供的元件名稱來建立具有唯一名稱的資源。不過,請注意 AWS 服務 配額:每個帳戶每個區域的 SageMaker 網域數量有限,因此請在建立多個環境之前檢查您的配額