AWS Proton

平台团队定义基础设施模板,开发者无需关心基础设施即可部署服务的托管交付服务

概述

AWS Proton 是一项由平台工程团队定义和管理基础设施模板(环境模板和服务模板),开发者只需选择模板即可部署应用程序的全托管服务。以 CloudFormation 或 Terraform 为后端,将 VPC、ECS、Lambda 等基础设施配置作为模板进行版本控制。模板更新时控制对已部署服务的批量应用和回滚,在组织内平衡基础设施标准化和治理。

环境模板与服务模板设计

Proton 的模板系统是两层结构:定义共享基础设施的环境模板和定义应用程序特定资源的服务模板。环境模板描述多个服务共享的基础资源如 VPC、子网、ALB 和 ECS 集群,服务模板描述每个应用程序的资源如 ECS 任务定义、Lambda 函数和 API Gateway 端点。模板使用语义版本管理(major.minor),次版本更新自动应用于现有服务,主版本更新需要开发者明确批准。模板输入参数明确分离暴露给开发者的项目(实例大小、环境变量等)和平台团队固定的项目(安全组、IAM 策略等),精确控制开发者自由度和治理的平衡。

自助部署与 CI/CD 管道集成

开发者从 Proton 控制台或 CLI 选择服务模板,输入少量参数即可完成基础设施和应用程序部署。CodePipeline 集成可将 Git 仓库推送触发的自动部署管道嵌入模板。也可与 GitHub Actions 和 GitLab CI 等外部 CI/CD 工具集成,调用 Proton API 报告部署状态。服务实例概念允许将同一服务以各自参数部署到开发、预发布和生产环境,在模板参数级别管理环境间的配置差异。所有部署历史记录在 Proton 中,自动维护何时应用了哪个模板版本的审计跟踪。

Terraform 支持与平台工程实践

Proton 除 CloudFormation 外还支持 Terraform 作为供应引擎。Terraform 支持使用自管理供应机制在 CodeBuild 上执行 terraform apply,允许将现有 Terraform 模块资产直接纳入 Proton 模板。在平台工程上下文中,Proton 作为内部开发者平台(IDP)的核心组件。与 Backstage 等开发者门户的 API 集成,实现开发者从门户创建服务时 Proton 在后台供应基础设施的架构。纳入模板审查和审批流程,确保只有通过安全团队预审的模板可用,也有助于抑制影子 IT。

共有するXB!