本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
MLOps 使用后台和自助服务 Amazon A SageMaker I 模板加速
Ashish Bhatt、Shashank Hirematt 和 Shivanshu Suryakar,Amazon Web Services
摘要
使用机器学习运营 (MLOps) 系统的组织在扩展、标准化和保护其机器学习基础架构方面面临重大挑战。这种模式引入了一种变革性方法,它将开源开发者门户 Backstag
此模式的 IaC 模块在 GitHub AWS AIOps 模块
通过将 Backstage 用作自助服务平台并集成预配置的 SageMaker AI 模板,您可以:
加快机器学习计划的价值实现时间。
帮助实施一致的安全和治理。
为数据科学家提供标准化、合规的环境。
降低运营开销和基础架构复杂性。
这种模式提供了一种解决关键挑战的 MLOps 解决方案,还提供了一个可扩展、可重复的框架,在保持组织标准的同时实现创新。
目标受众
这种模式适用于组织内参与机器学习、云架构和平台工程的广泛受众。这包括:
想要实现@@ 机器学习工作流程部署标准化和自动化的机器学习工程师。
想要自助访问预配置且合规的机器学习环境@@ 的数据科学家。
负责构建和维护内部开发者平台和共享基础设施的平台@@ 工程师。
为其设计可扩展、安全且经济实惠的云解决方案的云@@ 架构师 MLOps。
DevOps 有兴趣将持续集成和持续交付 (CI/CD) 实践扩展到机器学习基础架构配置和工作流程的@@ 工程师。
负责监督机器学习计划@@ 并希望提高团队生产力、治理和上市时间的技术主管和经理。
有关 MLOps 挑战、 SageMaker AI MLOps 模块以及此模式提供的解决方案如何满足您的机器学习团队需求的更多信息,请参阅其他信息部分。
先决条件和限制
先决条件
AWS Identity and Access Management (IAM) 角色和权限
,用于将资源配置到您的 AWS 账户 了解 A mazon SageMaker Studio、SageMaker 项目、SageMaker 管道和SageMaker 模型注册表的概念
对 IaC 原理的理解和使用诸如以下工具的经验 AWS Cloud Development Kit (AWS CDK)
限制
模板覆盖范围有限。目前,该解决方案仅支持更广泛的AIOps 解决方案
中 SageMaker 与 AI 相关的 AIOps 模块。其他模块,例如亚马逊 Elastic Kubernetes Service(亚马逊 EKS)上的 Ray MLflow、Apache Airflow 以及亚马逊 Bedrock 的微调,尚未作为后台模板提供。 不可配置的默认设置。模板使用 AIOps SageMaker 模块中的固定默认配置,无需自定义。您无法通过 Backstage 界面修改实例类型、存储大小、网络配置或安全策略,这限制了特定用例的灵活性。
AWS-仅支持。该平台专为 AWS 部署而设计,不支持多云场景。在外部使用云服务的组织 AWS Cloud 不能使用这些模板来满足其机器学习基础架构需求。
手动凭证管理。您必须为每个部署手动提供 AWS 证书。此解决方案不提供与企业身份提供商的集成 AWS IAM Identity Center,也不提供自动凭证轮换。
有限的生命周期管理。这些模板缺少全面的资源生命周期管理功能,例如自动清理策略、成本优化建议和基础设施偏差检测。创建后,您必须手动管理和监控已部署的资源。
架构
下图显示了统一开发者门户的解决方案架构,该门户通过跨环境的 SageMaker AI 来标准化和加速机器学习基础架构的部署。

在此架构中:
AWS 应用程序现代化蓝图
将基础设施设置配置为 Amazon EKS 集群作为云原生卓越运营 (CNOE) 框架的基础。这个全面的解决方案通过提供可扩展的内部开发者平台 (IDP) 来解决复杂的云原生基础设施管理挑战。蓝图提供了一种结构化的方法来建立强大、灵活的基础架构,以适应您不断变化的组织需求。 CNOE 开源框架通过统一的平台工程方法整合 DevOps 工具并解决生态系统碎片化问题。通过整合不同的工具和技术,它简化了云原生开发的复杂格局,因此您的团队可以专注于创新而不是工具链管理。该框架提供了一种用于选择、集成和管理开发工具的标准化方法。
在 CNOE 中,Backstage 作为 out-of-the-box解决方案部署在 Amazon EKS 集群中。Backstage 捆绑了通过 Keycloak 提供的强大身份验证和 A
rgo CD 的全面部署工作流程。 该集成平台创建了一个用于管理开发流程的集中式环境,并为团队提供了在多个环境中访问、部署和监控其基础架构和应用程序的单一场所。 GitHub 存储库包含涵盖整个 SageMaker AI 生命周期的预配置 AIOps 软件模板。这些模板可满足关键的机器学习基础架构需求,包括 SageMaker Studio 配置、模型训练、推理管道和模型监控。这些模板可帮助您加快机器学习计划,并确保不同项目和团队之间的一致性。
GitHub A@@ c
tions 实现了一个自动化工作流程,该工作流程通过 Seed-Farmer 实用程序动态触发资源配置。这种方法将 Backstage 目录与 AIOps 模块存储库集成,并创建了简化的基础架构部署流程。自动化减少了手动干预,最大限度地减少了人为错误,并确保在不同的环境中快速、一致地创建基础架构。 AWS CDK可帮助您将基础架构定义和配置为代码,并确保在指定 AWS 账户范围内进行可重复、安全和合规的资源部署。这种方法以最少的人工干预提供了最大限度的治理,因此您可以创建易于复制、版本控制和审计的标准化基础架构模板。
工具
AWS 服务
AWS Cloud Development Kit (AWS CDK)是一个软件开发框架,可帮助您在代码中定义和配置 AWS Cloud 基础架构。
亚马逊 Elastic Kubernetes Service(亚马逊 EKS)可帮助你在上面运行 AWS Kubernetes,而无需安装或维护自己的 Kubernetes 控制平面或节点。
Amazon SageMaker AI 是一项托管机器学习服务,可帮助您构建和训练机器学习模型,然后将其部署到可用于生产的托管环境中。
其他工具
代码存储库
此模式使用来自以下 GitHub 存储库的代码和模板:
SageMaker 来自模块存储库的 AI 相关AWS AIOps 模块
AWS存储库@@ 中的现代工程
实施
此实现使用了存储库上现代工程
此模式的 Epics 部分概述了实现方法。有关详细的 step-by-step部署说明,请参阅带有 Backstage 存储库的AIOps 内部开发者平台 (IDP)
最初的后台平台部署
将 SageMaker 软件模板与 Backstage 集成
使用和维护后台模板
部署指南还包括有关持续维护、故障排除和平台扩展的指南。
最佳实践
遵循这些最佳实践,以帮助确保 MLOps 基础设施实施中的安全性、治理和卓越运营。
模板管理
切勿对实时模板进行重大更改。
在生产部署之前,请务必对更新进行全面测试。
保持清晰且有据可查的模板版本。
安全性
将 GitHub 操作固定到特定的提交安全哈希算法 (SHAs),以帮助防止供应链攻击。
使用具有精细权限的最低权限的 IAM 角色。
将敏感凭据存储在 S GitHub ecret
s 和AWS Secrets Manager。 切勿在模板中对凭据进行硬编码。
治理和跟踪
实施全面的资源标签标准。
实现精确的成本跟踪和合规性监控。
对基础设施变更保持清晰的审计跟踪。
本指南为使用 Backstage、 SageMaker AI 和 IaC 模块实现这些最佳实践提供了坚实的基础。
操作说明
| Task | 说明 | 所需技能 |
|---|---|---|
在后台部署。 | 此步骤使用 AWS存储库现代工程 该基础设施使用 Amazon EKS 作为用于部署 IDP 组件的容器编排平台。Amazon EKS 架构包括安全的联网配置,用于建立严格的网络隔离和控制访问模式。该平台与身份验证机制集成,可帮助保护用户跨服务和环境的访问权限。 | 平台工程师 |
设置你的 SageMaker AI 模板。 | 此步骤使用 GitHub AIOps 内部开发者平台 (IDP) 中的脚本和 Backstage 此过程将创建一个存储库,其中包含与 Backstage 集成所需的 SageMaker AI 模板。 | 平台工程师 |
将 SageMaker AI 模板与 Backstage 集成。 | 按照部署指南的 “SageMaker 模板集成 此步骤将 AIOps 模块(上一步中的 SageMaker AI 模板)集成到您的 Backstage 部署中,这样您就可以自助满足机器学习基础架构的需求。 | 平台工程师 |
使用 Backstage 中的 SageMaker AI 模板。 | 按照部署指南的 “使用 SageMaker 模板 在 Backstage 门户中,您可以从可用的 SageMaker AI 模板中进行选择,包括 SageMaker Studio 环境、 SageMaker 笔记本、自定义 SageMaker 项目模板和模型部署管道的选项。在您提供配置参数后,平台会自动创建专用存储库,并通过 Actions 和 Seed- GitHub Farmer 配置 AWS 资源。您可以通过 GitHub 操作日志和 Backstage 组件目录监控进度。 | 数据科学家、数据工程师、开发人员 |
| Task | 说明 | 所需技能 |
|---|---|---|
更新 SageMaker AI 模板。 | 要在 Backstage 中更新 SageMaker AI 模板,请按照以下步骤操作。
| 平台工程师 |
创建和管理模板的多个版本。 | 要进行重大更改或升级,您可能需要创建 SageMaker AI 模板的多个版本。
| 平台工程师 |
| Task | 说明 | 所需技能 |
|---|---|---|
将模板覆盖范围扩展到 SageMaker AI 之外。 | 当前的解决方案仅实现 SageMaker 与 AI 相关的 AIOps 模板。您可以通过添加AIOps 模块 您还可以实现模板继承模式来创建基础模板的专用版本。这种可扩展性使您能够管理 SageMaker 人工智能以外的各种 AWS 资源和应用程序,同时保留简化的开发人员体验并保持组织的标准。 | 平台工程师 |
使用动态参数注入。 | 当前模板使用无需自定义的默认配置,并运行 Seed-Farmer CLI 以使用默认变量部署资源。您可以通过对模块特定的配置使用动态参数注入来扩展默认配置。 | 平台工程师 |
增强安全性和合规性。 | 为了增强创建 AWS 资源的安全性,您可以启用基于角色的访问控制 (RBAC) 集成,包括单点登录 (SSO)、SAML、OpenID Connect (OIDC) 和策略即代码执行。 | 平台工程师 |
添加自动资源清理。 | 您可以启用自动清理策略的功能,还可以添加基础设施偏差检测和修复。 | 平台工程师 |
| Task | 说明 | 所需技能 |
|---|---|---|
移除后台基础架构和 SageMaker AI 资源。 | 使用完机器学习环境后,请按照部署指南的 “清理和资源管理 | 平台工程师 |
问题排查
| 事务 | 解决方案 |
|---|---|
AWS CDK 引导失败 | 验证 AWS 凭证和区域配置。 |
亚马逊 EKS 集群访问问题 | 检查 kubectl 配置和 IAM 权限。 |
Application Load Balancer 连接 | 确保安全组允许端口 80/443 上的入站流量。 |
GitHub 集成问题 | 验证 GitHub 令牌权限和组织访问权限。 |
SageMaker AI 部署失败 | 检查AWS 服务 配额和 IAM 权限。 |
相关资源
平台工程(在《AWS 云采用框架:平台视角》指南中)
后台软件模板
(后台网站) AIOps 模块存储库
(用于机器学习的可重复使用的 IaC 模块集合) AWS存储库@@ 中的现代工程
其他信息
业务挑战
开始或扩大其 MLOps 计划的组织经常会遇到以下业务和技术挑战:
环境不一致。缺乏标准化的开发和部署环境使协作变得困难,并增加了部署风险。
手动配置开销。使用 SageMaker Studio、Amazon Simple Storage Service (Amazon S3) 存储桶、IAM 角色 CI/CD 和管道手动设置机器学习基础设施既耗时又容易出错,而且会使数据科学家偏离模型开发的核心任务。
缺乏可发现性和重复使用性。由于缺乏集中式目录,因此很难找到现有的机器学习模型、数据集和管道。这会导致冗余工作和错失重复使用的机会。
复杂的治理和合规性。如果没有自动护栏,确保机器学习项目遵守组织安全政策、数据隐私法规以及诸如《健康保险便携性和责任法案》(HIPAA) 和《通用数据保护条例》(GDPR) 等合规标准可能具有挑战性。
实现价值的时间很慢。这些挑战的累积效应导致机器学习项目生命周期延长,并延迟机器学习投资实现业务价值。
安全风险。不一致的配置和手动流程可能会引入安全漏洞,从而难以强制执行最低权限和网络隔离。
这些问题延长了开发周期,增加了运营开销,并带来了安全风险。机器学习的迭代性质要求可重复的工作流程和高效的协作。
Gartner预测,到2026年,80%的软件工程组织将拥有平台团队。(参见 Gartner 网站上的平台工程赋能开发者变得更好、更快、更快乐
MLOps SageMaker 模块
GitHub 存储库中用于此模式的AIOps 模块
直接使用这些 AIOps 模块通常需要平台团队部署和管理这些 IaC 模板,这可能会给想要自助访问的数据科学家带来挑战。要发现和了解可用模板、配置必要的参数并触发其部署,可能需要浏览 AWS 服务 控制台或直接与 IaC 工具进行交互。这可能会造成摩擦,增加更喜欢专注于机器学习任务的数据科学家的认知负担,如果这些模板不通过集中且用户友好的界面进行管理,则可能导致参数化不一致或偏离组织标准。将这些强大的 AIOps 模块与诸如Backstage之类的IDP集成,可为使用这些标准 MLOps 化构建块提供简化的自助服务体验、增强的可发现性以及更强的治理控制,从而帮助应对这些挑战。
作为 IDP 在后台
内部开发者平台 (IDP) 是由平台团队构建的自助服务层,旨在简化和标准化开发人员构建、部署和管理应用程序的方式。它抽象了基础架构的复杂性,让开发人员能够通过统一的界面轻松访问工具、环境和服务。
IDP 的主要目标是通过以下方式增强开发者的体验和生产力:
为服务创建和部署等任务启用自助服务。
通过标准模板促进一致性和合规性。
在整个开发生命周期中集成工具(CI/CD、监控和文档)。
Backstage是一个开源开发者门户,由Spotify创建,现在是云原生计算基金会(CNCF)的一部分。它通过提供集中、可扩展的平台来管理软件组件、工具和文档,帮助组织构建自己的 IDP。借助 Backstage,开发者可以:
通过软件目录发现和管理所有内部服务。
通过脚手架插件使用预定义的模板创建新项目。
从一个位置访问集成工具,例如 CI/CD 管道、Kubernetes 仪表板和监控系统。
通过以下方式保持一致的、基于降价的文档。 TechDocs
常见问题解答
使用此后台模板与通过 SageMaker 控制台手动部署 SageMaker Studio 有什么区别?
与手动 AWS 控制台部署相比,Backstage模板具有多种优势,包括遵循组织最佳实践的标准化配置、使用Seed-Farmer和的自动IaC部署 AWS CDK、内置的安全策略和合规措施,以及通过集成组织的开发人员工作流程。 GitHub该模板还通过版本控制创建可重现的部署,这样可以更轻松地跨不同阶段(开发、暂存、生产)复制环境并保持团队间的一致性。此外,该模板还包括自动清理功能,并通过 Backstage 与贵组织的身份管理系统集成。通过控制台进行手动部署需要深厚的 AWS 专业知识,并且无法提供版本控制或与模板相同的标准化和治理水平。出于这些原因,控制台部署比生产机器学习环境更适合一次性实验。
什么是 Seed-Farmer?这个解决方案为什么要使用它?
Seed-Farmer 是一款 AWS 部署编排工具,它使用管理基础架构模块。 AWS CDK这种模式之所以使用 Seed-Farmer,是因为它提供了专为工作负载设计的标准化、可重复使用的基础设施组件,可以 AWS 服务 自动处理 AI/ML 工作负载之间的复杂依赖关系,并确保在不同环境中实现一致的部署。
我需要安装 AWS CLI 才能使用这些模板吗?
不,您不必 AWS CLI 在计算机上安装。这些模板完全通过云端 GitHub 操作运行。您通过 Backstage 界面提供您的 AWS 凭据(访问密钥、密钥和会话令牌),然后在 Actions 环境中自动进行 GitHub 部署。
部署 SageMaker Studio 环境需要多长时间?
典型的 SageMaker Studio 部署需要 15-25 分钟才能完成。这包括 AWS CDK 引导(2-3 分钟)、Seed-Farmer 工具链设置(3-5 分钟)和资源创建(10-15 分钟)。确切的时间取决于您的网络设置 AWS 区域 以及您的网络设置的复杂性。
我可以在同一个 SageMaker 环境中部署多个环境 AWS 账户吗?
是的,可以。每个部署都会根据您在模板中提供的组件名称创建具有唯一名称的资源。但是,请注意 AWS 服务 配额:每个账户在每个区域可以拥有有限数量的 SageMaker 域名,因此在创建多个环境之前,请检查配额。