使用说明
面向代理工具服务的云部署参考架构
引言
你有一个工具服务器—— 主控程序 服务器,一个REST API,一个gRPC服务-在您的机器上本地运行。它是有效的:代理可以调用它,获取结果,并在他们的工作流程中使用这些结果。但它一次只能在一台机器上为一个用户服务。
此存储库向您展示了如何将该本地工具服务器作为可扩展的共享服务部署到云端 通过适当的身份验证、凭证管理和操作保护,多个代理和用户可以通过网络访问。
它提供了一个 云部署抽象 --不依赖于任何单一的云提供商。每个架构组件都由其角色定义(例如,“入站身份验证网关”、“凭证库”、“无服务器计算”),并与两者进行具体映射 亚马逊云服务 和 天蓝 因此,您可以准确地看到在每个平台上使用哪些服务。
此存储库包含什么
这是一个 设计参考,不是可运行的代码库。它包括:
- 架构文档 --一个分层部署模型,显示流量如何从外部代理通过身份验证、容器化工具运行时和无服务器后端计算流向存储
- 多云映射 --每个组件的并排AWS和Azure服务映射
- 基础结构模板 --后端API和基础架构层的参数化YAML模式
- 操作检查表 --逐步部署和安全审计清单
问题
基于Agent和多Agent的系统依赖于 工具 --代理调用以搜索、检索、分析或转换数据的外部功能。在研究和原型设置中,这些工具通常作为本地单用户进程运行。将工具从本地原型移动到 可扩展云共享服务 引入了部署挑战:
- 认证:外部代理如何进行身份验证?工具服务如何与下游云资源进行身份验证?
- 容器化工具服务是如何打包以实现可重复、可移植的部署的?
- 可扩展性:该服务如何处理来自多个代理或用户的并发请求?
- 凭据管理:如何在不重新部署服务的情况下轮换和撤销机密?
- 多云可移植性:相同的部署模式如何适应不同的云提供商?
该存储库通过 分层部署抽象 其中每一层都有一个单一的职责,并清晰地映射到AWS或Azure上的服务。
仓库结构
MCP-tool-deployment-pattern/
README.md <- You are here
LICENSE <- Apache License 2.0
NOTICE <- Copyright notice
docs/
architecture.md <- Layered architecture, multi-cloud mapping, data flow
design-principles.md <- Two-layer auth, containerization, Token Vault, trade-offs
schemas/
backend-api-template.yaml <- Backend service API template
infrastructure-layer-template.yaml <- Cloud infrastructure layer template
templates/
deployment-checklist.md <- Step-by-step cloud deployment checklist
security-audit-checklist.md <- Security review checklist for tool service deployments
infrastructure-config-template.yaml <- Infrastructure configuration skeleton
assets/
architecture-overview.svg <- High-level architecture diagram (rendered)
architecture-overview.mmd <- Mermaid source for the diagram
架构概述
图表来源:
assets/architecture-overview.mmd(美人鱼)
多云映射
一个关键的设计目标是部署模式 不依赖于单一的云提供商下表将每个架构角色映射到AWS和Azure上的具体服务,表明可以在任何一个平台上实现相同的模式。
| 架构角色 | 目的 | AWS | Azure |
|---|---|---|---|
| 工具访问网关 | 外部代理的入站身份验证代理 | API网关+Cognito(OAuth2) | Azure API管理+Azure AD(Entra ID) |
| 代币库 | 出站凭据生命周期(轮换、吊销) | 密钥管理器 | Azure密钥库 |
| 容器镜像仓库 | 存储/分发版本化工具服务映像 | ECR(弹性容器注册表) | ACR(Azure容器注册表) |
| 容器运行时 | 运行带有健康检查的工具服务容器 | ECS/Fargate | Azure容器实例/AKS |
| API网关(后端) | 第二身份验证层,速率限制,路由 | API网关(REST/HTTP) | Azure API管理(后端策略) |
| 无服务器计算 | 执行后端逻辑(搜索、检索) | Lambda | Azure函数 |
| 对象存储 | 持久索引/数据存储 | S3 | Azure Blob存储 |
| 共享文件系统 | 用于计算的低延迟热缓存 | EFS(弹性文件系统) | Azure文件(NFS) |
| 键值存储 | 带TTL | DynamoDB | Cosmos DB的分页游标(API表) |
| 虚拟网络 | 具有私有/公共子网的隔离网络 | VPC | Azure ExpressRoute |
| 基础设施即代码 | 可复制、版本控制的部署 | CDK/CloudFormation | 二头肌/ARM模板 |
这种映射是说明性的,并不详尽。其他云提供商(GCP、自托管)可以通过其等效服务实现相同的角色。
人工制品指数
| 工件 | 类型 | 描述 |
|---|---|---|
| 建筑学 | 文档 | 分层部署架构、多云映射、数据流 |
| 设计原则 | 文档 | 两层身份验证、容器化、令牌库、云原生原理 |
| 后端API模板 | 架构 | 后端服务REST API端点模板(两层身份验证模型) |
| 基础结构层模板 | 架构 | 六层云基础架构模板(网关到网络) |
| 部署检查表 | 模板 | 分步云部署检查表 |
| 安全审计检查表 | 模板 | 安全审查清单(网关身份验证、令牌库、容器运行时) |
| 基础结构配置模板 | 模板 | 基础结构配置骨架(所有层) |
模式摘要
部署架构分解为按以下方式组织的层 资源生命周期和变更频率:
| 层 | 角色 | 关键特征 |
|---|---|---|
| 工具访问网关 | 入站身份验证代理,令牌库 | 两层身份验证:网关处理来自代理的入站OAuth2;令牌保管库管理出站凭据(轮换、撤销) |
| 工具服务运行时 | 容器化工具服务执行 | 从容器注册表中提取工具服务映像;在托管容器环境中运行 |
| 后端服务 | 特定于域的计算(搜索、索引、检索) | 单二进制、双入口点(本地/无服务器) |
| 访问控制 | 令牌授权人、使用计划、客户端密钥 | 每个客户端的速率限制;外部代理平台支持 |
| 处理 | 无服务器功能,API网关(cloud-native auth) | 缩放为零;用于快速冷启动的编译二进制文件;第二认证层 |
| 数据 | 对象存储、共享文件系统、复制 | 独立扩展;用于低延迟访问的热缓存 |
| 网络 | 虚拟网络、子网、NAT、角色、安全组 | 共享网络;变化很少 |
如何使用此参考
此存储库是 设计参考,不是可运行的代码库。建议用法:
- 从架构开始 --阅读
docs/architecture.md了解分层分解和多云映射。确定哪些层适用于您的部署,哪些云服务映射到您的环境。 - 审查设计原则 —
docs/design-principles.md解释了每个基础设施决策背后的权衡。使用此选项评估相同的权衡是否适用于您的环境。 - 选择您的云映射 --使用多云映射表为目标云提供商选择具体服务。该架构的设计使得将一个提供者交换为另一个提供者会改变服务实现,但不会改变层结构。
- 调整模板 --下面的YAML模板
schemas/使用定义参数化后端API和基础结构合同{{placeholders}}。分叉这些并填写特定于环境的值。 - 使用检查表进行操作 --部署和安全检查表
templates/可以直接用作操作运行手册。为您的基础设施进行复制和自定义。
相关工作
有关设计连接到此基础架构的工具服务器(工具契约模式、瘦服务器模式、双模传输)的指导,请参阅配套项目 MCP工具服务器模式.
去标识通知
此存储库包含 通用云部署模式、基础架构模板和操作清单 凭借在工业云环境中的经验。所有雇主特定的系统名称、内部URL、专有配置和敏感的运营数据均已删除。这里演示的模式适用于在云基础设施上部署面向代理的工具服务的任何组织。
许可证
Apache许可证2.0。看 许可证.
