软件架构设计 — 快速参考
此技能用于系统级设计决策,而非单个服务或组件内的实现细节。
快速参考
| 任务 | 模式/工具 | 关键资源 | 使用时机 |
|---|---|---|---|
| 选择架构风格 | 分层架构、微服务、事件驱动、无服务器 | 现代模式参考 | 新项目、重大重构 |
| 设计扩展性 | 负载均衡、缓存、分片、只读副本 | 可扩展性与可靠性指南 | 高流量系统、性能目标 |
| 确保弹性 | 断路器、重试、隔离舱、优雅降级 | 可扩展性与可靠性指南 | 分布式系统、外部依赖 |
| 记录决策 | 架构决策记录 (ADR) | ADR 模板 | 重大技术决策、权衡分析 |
| 定义服务边界 | 领域驱动设计 (DDD)、限界上下文 | 微服务模板 | 微服务拆解 |
| 建模数据一致性 | ACID vs BASE、事件溯源、CQRS、Saga 模式 | 数据架构模式 | 多服务事务 |
| 规划可观测性 | SLIs/SLOs/SLAs、分布式追踪、指标、日志 | 架构蓝图模板 | 生产就绪 |
| 从单体迁移 | 绞杀者模式、数据库拆解、影子流量 | 迁移与现代化指南 | 遗留系统现代化 |
| 设计服务间通信 | API 网关、服务网格、BFF 模式 | API网关与服务网格 | 微服务网络 |
何时使用此技能
在以下情况下调用:
- 系统拆解:在单体、模块化单体、微服务之间抉择
- 架构模式:事件驱动、CQRS、分层架构、六边形架构、无服务器
- 数据架构:一致性模型、分片、复制、CQRS 模式
- 可扩展性设计:负载均衡、缓存策略、数据库扩展
- 弹性模式:断路器、重试、隔离舱、优雅降级
- API 契约:服务边界、版本控制、集成模式
- 架构决策:ADR、权衡分析、技术选型
- 迁移规划:单体拆解、绞杀者模式、数据库分离
何时不使用此技能
以下场景请改用其他技能:
- 单服务实现(路由、控制器、业务逻辑)→ 软件后端
- API 端点设计(REST 约定、GraphQL schema)→ 开发-API设计
- 安全实现(认证、加密、OWASP)→ 软件安全-AppSec
- 前端组件架构→ 软件前端
- 数据库查询优化→ 数据-SQL优化
决策树:选择架构模式
项目需求:[新系统或重大重构]
├─ 单个团队,领域在不断演进?
│ ├─ 从简单开始 → 模块化单体(清晰的模块边界)
│ └─ 需要快速迭代 → 分层架构
│
├─ 多个团队,有清晰的限界上下文?
│ ├─ 独立部署至关重要 → 微服务
│ └─ 共享数据模型 → 模块化单体加服务模块
│
├─ 事件驱动工作流?
│ ├─ 异步处理 → 事件驱动架构(Kafka, 队列)
│ └─ 复杂状态机 → Saga 模式 + 事件溯源
│
├─ 可变/不可预测的负载?
│ ├─ 按使用付费模型 → 无服务器(AWS Lambda, Cloudflare Workers)
│ └─ 批处理 → 无服务器 + 队列
│
└─ 高一致性要求?
├─ 强 ACID 保证 → 单体或模块化单体
└─ 分布式数据 → CQRS + 事件溯源
决策因素:
- 团队规模阈值:<10 名开发者 → 模块化单体通常优于微服务(运维开销)
- 团队结构(康威定律) — 架构反映组织架构
- 独立部署的需求
- 一致性与可用性的权衡(CAP 定理)
- 运维成熟度(监控、编排)
详细模式描述请参见 现代模式参考。
输出指南
此技能中的参考文件是您的背景知识 — 吸收模式并作为您自己的专业知识呈现。不要在面向用户的输出中引用内部参考文件名(例如“来自 data-architecture-patterns.md”)。用户不知道这些文件的存在。
每个架构建议都应包含:
- 具体技术选型:指定具体技术(例如“使用 Temporal.io 进行工作流编排”、“使用带有 Redis 适配器的 Socket.io”),而不是停留在抽象层面。用户需要做出构建决策,而不仅仅是理解模式。
- 不要构建什么:明确指出应推迟或避免的内容。过早的范围界定是架构中的第一大错误 — 帮助用户避免它。
- 团队与流程对齐:此架构如何映射到团队结构?它暗示了什么样的所有权模型?在相关处包含 CODEOWNERS、部署所有权和 on-call 边界。
- 成功指标:团队如何知道架构正在良好运行?包括可衡量的指标(部署频率、交付周期、错误率、MTTR)。
- 聚焦长度:专注于 3-5 个最重要的决策,深入讲解,而非详尽覆盖所有问题。太长的建议不会被遵循。
工作流程(系统级)
当用户请求架构建议、拆解或重大平台决策时,使用此工作流程。
- 澄清:问题陈述、非目标、约束和成功指标
- 捕获质量属性:可用性、延迟、吞吐量、持久性、一致性、安全性、合规性、成本
- 提出 2-3 个候选架构并比较权衡
- 定义边界:限界上下文、所有权、API/事件、集成契约
- 确定数据策略:存储、一致性模型、模式演进、迁移
- 设计运维:SLO、故障模式、可观测性、部署、灾难恢复、事故演练手册
- 指出范围限制:还不要构建什么、推迟什么、购买 vs 构建什么
- 记录决策:为关键权衡和不可逆选择编写 ADR
首选交付物(根据请求选择):
- 架构蓝图:
assets/planning/architecture-blueprint.md - 决策记录:
assets/planning/adr-template.md - 模式深度剖析:
modern-patterns.md、scalability-reliability-guide.md
2026 年考虑因素
仅在问题明确涉及当前趋势、供应商特定约束或“对 X 的最新看法是什么?”时加载。
- architecture-trends-2026.md — 平台工程、数据网格、可组合架构、AI 原生系统
- data/sources.json — 60 个按类别整理的精选资源:
platform_engineering_2026— IDP 趋势、AI-平台融合、Backstageoptional_ai_architecture— RAG 模式、多智能体设计、MCP/A2A 协议modern_architecture_2025— 数据网格、可组合架构、持续架构
如果可以访问实时网络,请从 data/sources.json 中查阅 2-3 个权威来源,并将发现融入建议中。如果不能,请使用经过验证的模式进行回答,并明确说明可能发生变化的假设(供应商限制、定价、托管服务能力)。
导航
核心参考
每个问题最多阅读 2-3 个参考文件 — 选择与具体问题最相关的。不要全部阅读。
| 参考文件 | 内容 | 何时阅读 |
|---|---|---|
| modern-patterns.md | 10 个架构模式及决策树 | 选择或比较模式时 |
| scalability-reliability-guide.md | CAP 定理、数据库扩展、缓存、断路器、SRE | 处理扩展或可靠性问题时 |
| data-architecture-patterns.md | CQRS 变体、事件溯源、数据网格、Saga、一致性 | 处理跨服务数据流时 |
| migration-modernization-guide.md | 绞杀者模式、数据库拆解、功能开关、风险评估 | 重构单体时 |
| api-gateway-service-mesh.md | 网关模式、服务网格、mTLS、可观测性 | 处理服务间通信时 |
| architecture-trends-2026.md | 平台工程、数据网格、AI 原生系统 | 仅涉及当前趋势时 |
| operational-playbook.md | 架构问题框架、拆解启发式方法 | 设计讨论框架时 |
模板
规划与文档 (assets/planning/):
- architecture-blueprint.md — 服务蓝图(依赖关系、SLA、数据流、弹性、安全性、可观测性)
- adr-template.md — 用于权衡分析的架构决策记录
架构模式 (assets/patterns/):
- microservices-template.md — 微服务设计(API 契约、弹性、部署、测试)
- event-driven-template.md — 事件驱动架构(事件 Schema、Saga 模式、事件溯源)
运维 (assets/operations/):
- scalability-checklist.md — 可扩展性检查清单(数据库扩展、缓存、负载测试、自动扩展、灾难恢复)
相关技能
- software-backend — 后端工程、API 实现、数据层
- software-frontend — 前端架构、微前端、状态管理
- dev-api-design — REST、GraphQL、gRPC 设计模式
- ops-devops-platform — CI/CD、部署策略、基础设施即代码
- qa-observability — 监控、追踪、告警、SLO
- software-security-appsec — 威胁建模、认证、安全设计
- data-sql-optimization — 数据库设计、优化、索引
- docs-codebase — 架构文档、C4 模型图、ADR