用途
System Architecture Advisor 是一个技术架构助手技能,为设计稳健、可扩展、可维护的软件架构提供专家指导。它协助处理架构模式、API 设计、技术栈选择、可视化系统图以及现代应用开发的最佳实践。
适用场景包括:设计新系统架构、评估或重构现有架构、在架构模式之间做选择、规划 API 设计(REST、GraphQL、RPC)、创建系统图与文档、技术栈选择与技术评估、可扩展性与性能规划、安全架构设计。
主要能力
架构模式选择
技能提供模式选择框架,先评估三类因素:规模需求(当前用户量、增长预测、地理分布)、团队结构(团队规模、分布方式、技术专长)、业务约束(上市时间、预算、合规要求)。随后通过决策树给出建议:
- 新项目:小团队快速 MVP 建议单体架构(分层或模块化);多团队不同领域建议微服务;事件密集、实时处理建议事件驱动架构;负载多变、成本敏感建议无服务器。
- 重构现有系统:单体过于复杂、团队受阻则逐步抽取为微服务;紧耦合导致问题则引入事件驱动模式;成本或扩展问题则将组件迁移到无服务器。
技能详细列出各模式的适用场景、结构、优缺点与示例技术栈:
- 单体架构:适合快速迭代的初创、小团队(1-10 名开发者)、业务逻辑直接、流量可预测。分层单体包含表现层、业务逻辑层、数据访问层与数据库;模块化单体按领域划分用户、产品、订单、支付模块与共享内核。优点是部署调试简单、本地开发容易、ACID 事务自然、运维复杂度低;缺点是整体扩展、技术锁定、构建测试时间随应用增长、大型代码库团队冲突。示例栈:Next.js + Supabase、Django + PostgreSQL、Rails + PostgreSQL。
- 微服务架构:适合多团队独立工作、不同领域有不同扩展需求、需要技术多样性、具备成熟 DevOps 能力。结构为 API 网关加各服务(用户、产品、订单、支付、通知),每个服务拥有自己的数据库、独立部署、RESTful/gRPC API。优点是独立扩展、技术灵活、团队自治、故障隔离;缺点是分布式系统复杂度、网络延迟、最终一致性挑战、运维开销高。关键模式包括 API 网关、服务发现、断路器、Saga 模式。
- 事件驱动架构:适合实时数据处理、需要解耦组件、异步工作流、IoT 或流数据。结构为事件生产者 → 事件总线(Kafka/RabbitMQ)→ 事件消费者。优点是服务间松耦合、扩展性优秀、异步处理、实时响应;缺点是最终一致性、调试困难、事件模式管理、需要消息代理基础设施。技术包括 Apache Kafka、RabbitMQ、AWS EventBridge、Google Pub/Sub。
- 无服务器架构:适合流量多变/不可预测、事件触发工作负载、成本优化优先、希望最小化运维开销。结构为 API 网关 → Lambda 函数 → 托管服务。优点是按执行付费、自动扩展到零、无需服务器管理、部署周期快;缺点是冷启动延迟、供应商锁定风险、调试复杂、无状态约束。提供商包括 AWS Lambda + API Gateway + DynamoDB、Cloudflare Workers + D1 + R2、Vercel Functions + PostgreSQL、Supabase Edge Functions。
API 设计指导
技能提供 REST、GraphQL、gRPC 的决策矩阵,从最佳用途、性能、学习曲线、工具、缓存、实时能力等维度对比。
REST 最佳实践包括资源命名(GET/POST/PUT/PATCH/DELETE 及嵌套资源)、响应结构(data、meta、links)、状态码(200、201、204、400、401、403、404、500)。
GraphQL 模式包括 schema 设计示例(User、Order、Query、Mutation、Subscription 类型),优点是单一端点、客户端指定所需字段、强类型、订阅实时;缺点是缓存复杂、N+1 查询问题(使用 DataLoader)、团队学习曲线。
技术栈推荐
技能给出三套完整技术栈:
- 全栈 JavaScript(现代 SaaS):Next.js + Supabase + Vercel。前端 Next.js 15(App Router),后端 Next.js API Routes + Supabase Edge Functions,数据库 PostgreSQL(Supabase),认证 Supabase Auth,存储 Supabase Storage,托管 Vercel(前端)与 Supabase(后端)。优点是单一语言(TypeScript)、开发快、开发体验优秀、内置认证存储实时;缺点是供应商锁定(可缓解:开源)、限于 JavaScript 生态。适合 SaaS 产品、Web 应用、MVP。
- Python 后端 + React 前端:FastAPI + PostgreSQL + React + AWS。前端 React + Vite + TanStack Query,后端 FastAPI(Python),数据库 PostgreSQL,缓存 Redis,部署 AWS ECS/Lambda + S3 + CloudFront。优点是 Python 适合数据密集型后端、丰富的 ML/数据科学生态、React 现代 UI、AWS 灵活;缺点是组件更多、需维护两种语言。适合数据密集型应用、ML 集成、复杂业务逻辑。
- 企业 .NET:ASP.NET Core + SQL Server + Azure。后端 ASP.NET Core Web API,数据库 SQL Server / CosmosDB,前端 Blazor / React,部署 Azure App Service + Azure SQL。优点是企业级工具、IDE 支持优秀(Visual Studio)、强类型安全、Azure 集成;缺点是微软生态锁定、学习曲线较高。适合企业应用、金融系统、合规密集领域。
可视化系统图
技能使用 Mermaid 提供多种图表示例:系统上下文图、微服务架构图、事件驱动流程图(sequenceDiagram)、分层架构图。
安全架构原则
技能涵盖安全边界(网络安全分层:Internet → WAF/CDN → 负载均衡器 → 私有网络,含 Web 层 DMZ、应用层私有、数据层隔离)、认证与授权(OAuth 2.0 + OIDC,RBAC 或 ABAC,JWT 令牌与带速率限制的 API 密钥)、数据保护(传输中 TLS 1.3、静态 AES-256 加密、密钥管理 Vault/AWS Secrets Manager/环境变量)。并提供安全检查清单:全站 HTTPS、输入验证与清理、OWASP Top 10 缓解、公共 API 速率限制、SQL 注入防护(参数化查询)、XSS 防护(输出编码)、CSRF 防护、安全头(CSP、HSTS 等)、定期更新依赖、密钥绝不入代码/仓库。
可扩展性模式
技能对比垂直扩展(向上扩展)与水平扩展(向外扩展),介绍缓存策略(多级缓存:请求 → CDN 缓存 → 应用缓存 → 数据库;缓存模式:Cache-Aside、Write-Through、Write-Behind),以及数据库扩展(读扩展:读副本、CQRS 模式;写扩展:分片、联邦)。
文件夹结构建议
技能提供 Next.js App Router(2025)与 Python FastAPI 的推荐目录结构示例。
最佳实践
技能强调关注点分离(每个组件单一职责,如 UserController 处理 HTTP、UserService 处理业务逻辑、UserRepository 处理数据库操作)与依赖倒置(依赖抽象而非具体实现,示例使用 IEmailService 接口)。并列出应避免的 API 设计反模式:话痨式 API、过度获取、深层嵌套资源、REST 中的 RPC 风格端点、命名不一致、缺少分页、无版本策略。
决策框架模板
技能建议在推荐架构时考虑:当前状态(现有系统还是全新、团队技能与规模、当前痛点)、需求(性能、规模预期、预算约束、上市时间)、权衡(复杂度 vs 灵活性、成本 vs 性能、速度 vs 正确性)、面向未来(增长轨迹、技术演进、团队扩展计划)。输出为带推理的清晰建议、图表以及迁移路径(如重构)。
示例使用模式
技能给出两个示例:请求“为 10 万用户的 SaaS 产品设计架构”时,响应包含推荐模式(可能是模块化单体 → 微服务路径)、技术栈(Next.js + Supabase + Vercel)、系统图(Mermaid)、文件夹结构、扩展计划、安全考虑、迁移策略;请求“电商 API 应该用 REST 还是 GraphQL”时,响应包含对比矩阵、基于上下文的建议、示例 schema/端点、性能考虑、实现指导。
使用方式
该技能以技能(skill)形式提供,具体安装命令与调用方式在现有资料中暂未提供。
适用场景
适用于架构设计、重构评估、模式选型、API 设计、技术栈评估、系统图与文档创建、可扩展性与性能规划、安全架构设计等。
限制
现有资料未提供该技能的收费、价格、平台支持范围、具体安装命令与调用方式等信息,这些内容暂未提供。