架构不是技术选型清单,是一系列 trade-off 决策的集合。本系列不推荐”最佳实践”,只呈现真实权衡。
目标读者:中高级后端/基础设施工程师。假设你熟悉至少一门系统编程语言(Go/Java/Rust/C++),理解操作系统和网络基础,写过后端服务但不满足于只会 CRUD。
Part I:架构思维基础
不急着画架构图,先建立正确的思维框架。
- 什么是软件架构:从代码结构到系统决策
- 架构质量属性:不只是”高可用高性能”
- 架构决策与 ADR:如何做出可追溯的技术决策
- 架构评估:ATAM 与 trade-off 分析实战
- 复杂性管理:架构的核心战场
- 架构视图与文档:C4 模型从入门到实战
Part II:架构风格与模式
每种模式都有它最擅长的场景和最致命的代价。
- 单体架构:被严重低估的选择
- 分层架构:最古老的模式为何仍然有效
- 微服务架构深度审视:优势、代价与适用边界
- 事件驱动架构:从消息通知到事件溯源
- CQRS:读写分离的架构哲学
- 六边形、洋葱与整洁架构:端口与适配器的统一视角
- 管道与过滤器:Unix 哲学的架构表达
- 空间架构:极端扩展场景的解法
Part III:可扩展性设计
扩展性不是”加机器就行”。无状态设计、缓存策略、分片方案——每一步都有工程陷阱。
- 扩展性原理:水平、垂直与对角扩展
- 无状态设计:扩展的第一步也是最难的一步
- 缓存架构:从本地到分布式的多级缓存体系
- 数据库扩展:分库分表的工程实践与替代方案
- 消息队列架构:异步解耦的设计与陷阱
- CDN 架构:全球加速的设计原理
- 连接池设计:被忽视的性能杀手
- 弹性伸缩:自动扩缩容的设计与实现(待写)
Part IV:可靠性工程
可靠性不是”加个重试就行”。每一个保护机制本身都可能成为故障源。
- 高可用设计模式:冗余、故障转移与仲裁
- 弹性设计模式:熔断器、舱壁与超时
- 限流与过载保护:保命的最后一道防线(待写)
- 优雅降级:如何体面地”坏掉”(待写)
- 容灾架构:多活与灾备设计
- SLO 工程:可靠性的量化管理
- 容量规划:从拍脑袋到数据驱动
- 混沌工程:主动验证系统的韧性
Part V:性能工程
性能优化的第一步是建立正确的度量和模型,而不是改代码。
- 性能建模:用数学思维分析系统瓶颈
- 延迟分析:从 P50 到 P999 的全链路追踪
- 吞吐量优化:批处理、流水线与并发模型
- 线程模型:从 thread-per-request 到协程
- 零拷贝与内存映射:数据搬运的极致优化
- 数据库性能模式:索引、查询与连接管理
- 全链路压测:大规模系统的性能验证
Part VI:数据架构
数据是系统的”引力中心”——架构的核心约束往往来自数据模型和数据流。
- 数据建模:从关系范式到文档模型的真实权衡
- 多模数据库选型:Polyglot Persistence 的工程实践
- 数据湖与数据仓库:分析架构的演进路线
- 流处理架构:从批处理到实时的范式迁移
- 搜索引擎架构:倒排索引之上的系统设计
- 时序数据架构:监控与 IoT 的存储设计
- 数据迁移与版本化:在线不停机的数据演进
- 应用层数据一致性模式:在正确性与性能之间走钢丝
Part VII:API 与服务通信
API 是系统的”合同”。设计得好是契约,设计得差是枷锁。
- API 设计哲学:REST vs GraphQL vs gRPC 的真实权衡
- API 网关设计:入口层的职责边界
- 服务发现与注册:动态拓扑的基础设施
- 配置管理架构:从配置文件到配置中心
- 幂等性设计:分布式环境下的安全重试
- 契约测试与 Schema 演进:服务间的信任协议
- 长连接与推送架构:WebSocket、SSE 与 MQTT
Part VIII:领域驱动设计
DDD 不是”给类起个好名字”。它是用业务语言建立架构边界的系统方法。
- DDD 战略设计:限界上下文与上下文映射
- DDD 战术模式:聚合、实体与值对象
- 领域事件与事件风暴:从业务到架构的桥梁
- 防腐层与开放主机服务:系统集成的 DDD 方案
- CQRS + Event Sourcing 完整实战:从领域建模到部署
- DDD 与微服务:用领域模型划分服务边界
Part IX:安全架构
安全不是事后补丁,是架构的一等公民。
- 认证架构:从 Session 到 JWT 到 OIDC
- 授权架构:RBAC、ABAC 与策略引擎
- 零信任架构:不信任网络边界的安全模型
- API 安全:从注入攻击到供应链威胁
- 数据加密架构:静态、传输与应用层加密
- 密钥管理与证书体系:PKI 的工程实践
Part X:可观测性与运维架构
你无法改善你无法观测的系统。
- 日志架构:从 printf 到结构化日志管道
- 指标与监控架构:维度数据模型与基数爆炸
- 分布式追踪:OpenTelemetry 与全链路可观测
- 告警策略:如何避免”狼来了”
- 部署架构:蓝绿、金丝雀与渐进式发布
- 特性开关架构:安全发布与实验的工程实践
- 故障排查方法论:从告警到根因的系统化路径
Part XI:云原生与基础设施架构
云原生不是”用了 Kubernetes 就行”。
- 容器架构:从 cgroup/namespace 到容器编排
- Kubernetes 架构深度剖析:控制平面与数据平面
- Serverless 架构:无服务器的真实成本与收益
- 基础设施即代码:从 Terraform 到 Crossplane
- 服务网格:Sidecar 模式的价值与代价
- 多云与混合云策略:技术之外的架构决策
- 平台工程:构建内部开发者平台
Part XII:架构演进与治理
好的架构不是一次设计出来的,是演进出来的。
- 单体到微服务:渐进式拆分的工程方法
- 技术债务管理:架构债的识别、量化与偿还
- 架构治理:让规范落地而不变成官僚
- 遗留系统现代化:务实的改造策略
- 架构师的工具箱:建模、评审与沟通
- 团队拓扑与架构:康威定律的工程应用
Part XIII:真实系统案例拆解
不画饼,不猜测。每一篇都基于公开的工程博客、论文或会议演讲。
- Twitter/X 架构演进:从 Ruby on Rails 到分布式帝国
- Netflix 架构:全球流媒体的技术底座
- Uber 架构:实时调度系统的设计哲学
- 微信架构:十亿用户的即时通讯系统
- 阿里巴巴双十一架构:极致弹性的电商系统
- Google 基础设施:Borg、Spanner 与 Zanzibar
- Slack 架构:实时协作平台的技术演进
- Shopify 架构:Rails 单体的极限突破(待写)
- Discord 架构:从 Go 到 Rust 的性能进化(待写)
- Cloudflare 架构:全球边缘网络的设计哲学(待写)
Part XIV:前沿架构范式
技术在变,但架构思维的核心不变。
- AI 原生架构:LLM 时代的系统设计(待写)
- 边缘计算架构:算力下沉的设计挑战(待写)
- WebAssembly 架构:浏览器之外的运行时革命(待写)
- 数据密集型应用架构:DDIA 之后的新思考
- 多租户架构:SaaS 系统的核心设计难题(待写)
- 架构的不变量:穿越技术周期的设计原则(待写)
Part XV:AI 时代的架构约束
AI 写代码已是默认方式。架构的角色随之改变。
- 防御性架构:用系统设计约束 AI 犯错(待写)
- AI 时代的工程基础设施:让 pipeline 替你兜底(待写)
- 架构即 AI 上下文:让 AI 读懂你的系统(待写)
- AI 原生开发流程:人机协同的架构实践(待写)
延伸阅读
- 全部系列索引
- 分布式系统百科
- 存储工程索引
- 操作系统百科:架构师在做容量、扩展、可观测决策时,最容易忽略的就是 OS 侧约束。建议至少读 调度延迟分析、内存回收、io_uring 内核内部、容器隔离的真实强度。
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【Agent 身份与安全】落地架构与案例框架
IdP + Policy Engine + Agent Gateway + MCP Host 参考架构,Keycloak/OPA/Envoy 能力边界,以及从用户 token 直连到 Gateway 代签的迁移路径。
系统设计案例索引
汇总本站系统设计类文章,覆盖一致性哈希、序列化成本与系统语言实测等案例。
【分布式 OLAP 查询引擎】引擎选型与数据平台阅读地图
用决策树收束 Trino/Spark/ClickHouse/DuckDB/DataFusion/PostgreSQL 的适用边界:交互式联邦、批 ETL、嵌入式分析、流批一体各走哪条路径;给出能力对照表(无吞吐排名)与 postgresql→columnar→lakehouse→stream→query-engine 全栈阅读顺序,闭合数据平台栈。
【GPU 算子工程】全景:算子工程在 AI 计算栈的位置
从框架一行 matmul 到 PTX/SASS,拆开 AI 计算栈的分层:框架算子、算子库、手写 kernel、编译器生成。回答工程师什么时候才需要自己写或调 kernel,以及本系列的实验环境与方法。