土法炼钢兴趣小组的算法知识备份

系统架构设计百科

文章导航

分类入口
architecture
标签入口
#system-design#architecture#software-engineering

目录

架构不是技术选型清单,是一系列 trade-off 决策的集合。本系列不推荐”最佳实践”,只呈现真实权衡。

目标读者:中高级后端/基础设施工程师。假设你熟悉至少一门系统编程语言(Go/Java/Rust/C++),理解操作系统和网络基础,写过后端服务但不满足于只会 CRUD。


Part I:架构思维基础

不急着画架构图,先建立正确的思维框架。

  1. 什么是软件架构:从代码结构到系统决策
  2. 架构质量属性:不只是”高可用高性能”
  3. 架构决策与 ADR:如何做出可追溯的技术决策
  4. 架构评估:ATAM 与 trade-off 分析实战
  5. 复杂性管理:架构的核心战场
  6. 架构视图与文档:C4 模型从入门到实战

Part II:架构风格与模式

每种模式都有它最擅长的场景和最致命的代价。

  1. 单体架构:被严重低估的选择
  2. 分层架构:最古老的模式为何仍然有效
  3. 微服务架构深度审视:优势、代价与适用边界
  4. 事件驱动架构:从消息通知到事件溯源
  5. CQRS:读写分离的架构哲学
  6. 六边形、洋葱与整洁架构:端口与适配器的统一视角
  7. 管道与过滤器:Unix 哲学的架构表达
  8. 空间架构:极端扩展场景的解法

Part III:可扩展性设计

扩展性不是”加机器就行”。无状态设计、缓存策略、分片方案——每一步都有工程陷阱。

  1. 扩展性原理:水平、垂直与对角扩展
  2. 无状态设计:扩展的第一步也是最难的一步
  3. 缓存架构:从本地到分布式的多级缓存体系
  4. 数据库扩展:分库分表的工程实践与替代方案
  5. 消息队列架构:异步解耦的设计与陷阱
  6. CDN 架构:全球加速的设计原理
  7. 连接池设计:被忽视的性能杀手
  8. 弹性伸缩:自动扩缩容的设计与实现

Part IV:可靠性工程

可靠性不是”加个重试就行”。每一个保护机制本身都可能成为故障源。

  1. 高可用设计模式:冗余、故障转移与仲裁
  2. 弹性设计模式:熔断器、舱壁与超时
  3. 限流与过载保护:保命的最后一道防线
  4. 优雅降级:如何体面地”坏掉”
  5. 容灾架构:多活与灾备设计
  6. SLO 工程:可靠性的量化管理
  7. 容量规划:从拍脑袋到数据驱动
  8. 混沌工程:主动验证系统的韧性

Part V:性能工程

性能优化的第一步是建立正确的度量和模型,而不是改代码。

  1. 性能建模:用数学思维分析系统瓶颈
  2. 延迟分析:从 P50 到 P999 的全链路追踪
  3. 吞吐量优化:批处理、流水线与并发模型
  4. 线程模型:从 thread-per-request 到协程
  5. 零拷贝与内存映射:数据搬运的极致优化
  6. 数据库性能模式:索引、查询与连接管理
  7. 全链路压测:大规模系统的性能验证

Part VI:数据架构

数据是系统的”引力中心”——架构的核心约束往往来自数据模型和数据流。

  1. 数据建模:从关系范式到文档模型的真实权衡
  2. 多模数据库选型:Polyglot Persistence 的工程实践
  3. 数据湖与数据仓库:分析架构的演进路线
  4. 流处理架构:从批处理到实时的范式迁移
  5. 搜索引擎架构:倒排索引之上的系统设计
  6. 时序数据架构:监控与 IoT 的存储设计
  7. 数据迁移与版本化:在线不停机的数据演进
  8. 应用层数据一致性模式:在正确性与性能之间走钢丝

Part VII:API 与服务通信

API 是系统的”合同”。设计得好是契约,设计得差是枷锁。

  1. API 设计哲学:REST vs GraphQL vs gRPC 的真实权衡
  2. API 网关设计:入口层的职责边界
  3. 服务发现与注册:动态拓扑的基础设施
  4. 配置管理架构:从配置文件到配置中心
  5. 幂等性设计:分布式环境下的安全重试
  6. 契约测试与 Schema 演进:服务间的信任协议
  7. 长连接与推送架构:WebSocket、SSE 与 MQTT

Part VIII:领域驱动设计

DDD 不是”给类起个好名字”。它是用业务语言建立架构边界的系统方法。

  1. DDD 战略设计:限界上下文与上下文映射
  2. DDD 战术模式:聚合、实体与值对象
  3. 领域事件与事件风暴:从业务到架构的桥梁
  4. 防腐层与开放主机服务:系统集成的 DDD 方案
  5. CQRS + Event Sourcing 完整实战:从领域建模到部署
  6. DDD 与微服务:用领域模型划分服务边界

Part IX:安全架构

安全不是事后补丁,是架构的一等公民。

  1. 认证架构:从 Session 到 JWT 到 OIDC
  2. 授权架构:RBAC、ABAC 与策略引擎
  3. 零信任架构:不信任网络边界的安全模型
  4. API 安全:从注入攻击到供应链威胁
  5. 数据加密架构:静态、传输与应用层加密
  6. 密钥管理与证书体系:PKI 的工程实践

Part X:可观测性与运维架构

你无法改善你无法观测的系统。

  1. 日志架构:从 printf 到结构化日志管道
  2. 指标与监控架构:维度数据模型与基数爆炸
  3. 分布式追踪:OpenTelemetry 与全链路可观测
  4. 告警策略:如何避免”狼来了”
  5. 部署架构:蓝绿、金丝雀与渐进式发布
  6. 特性开关架构:安全发布与实验的工程实践
  7. 故障排查方法论:从告警到根因的系统化路径

Part XI:云原生与基础设施架构

云原生不是”用了 Kubernetes 就行”。

  1. 容器架构:从 cgroup/namespace 到容器编排
  2. Kubernetes 架构深度剖析:控制平面与数据平面
  3. Serverless 架构:无服务器的真实成本与收益
  4. 基础设施即代码:从 Terraform 到 Crossplane
  5. 服务网格:Sidecar 模式的价值与代价
  6. 多云与混合云策略:技术之外的架构决策
  7. 平台工程:构建内部开发者平台

Part XII:架构演进与治理

好的架构不是一次设计出来的,是演进出来的。

  1. 单体到微服务:渐进式拆分的工程方法
  2. 技术债务管理:架构债的识别、量化与偿还
  3. 架构治理:让规范落地而不变成官僚
  4. 遗留系统现代化:务实的改造策略
  5. 架构师的工具箱:建模、评审与沟通
  6. 团队拓扑与架构:康威定律的工程应用

Part XIII:真实系统案例拆解

不画饼,不猜测。每一篇都基于公开的工程博客、论文或会议演讲。

  1. Twitter/X 架构演进:从 Ruby on Rails 到分布式帝国
  2. Netflix 架构:全球流媒体的技术底座
  3. Uber 架构:实时调度系统的设计哲学
  4. 微信架构:十亿用户的即时通讯系统
  5. 阿里巴巴双十一架构:极致弹性的电商系统
  6. Google 基础设施:Borg、Spanner 与 Zanzibar
  7. Slack 架构:实时协作平台的技术演进
  8. Shopify 架构:Rails 单体的极限突破
  9. Discord 架构:从 Go 到 Rust 的性能进化
  10. Cloudflare 架构:全球边缘网络的设计哲学

Part XIV:前沿架构范式

技术在变,但架构思维的核心不变。

  1. AI 原生架构:LLM 时代的系统设计
  2. 边缘计算架构:算力下沉的设计挑战
  3. WebAssembly 架构:浏览器之外的运行时革命
  4. 数据密集型应用架构:DDIA 之后的新思考
  5. 多租户架构:SaaS 系统的核心设计难题
  6. 架构的不变量:穿越技术周期的设计原则

Part XV:AI 时代的架构约束

AI 写代码已是默认方式。架构的角色随之改变。

  1. 防御性架构:用系统设计约束 AI 犯错
  2. AI 时代的工程基础设施:让 pipeline 替你兜底
  3. 架构即 AI 上下文:让 AI 读懂你的系统
  4. AI 原生开发流程:人机协同的架构实践

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-13 · architecture

【系统架构设计百科】架构质量属性:不只是"高可用高性能"

需求评审时写下的'高可用、高性能、高并发',到了架构设计阶段几乎无法落地——因为它们不是可执行的需求。本文从 SEI/CMU 的质量属性理论出发,用 stimulus-response 场景模型把模糊需求变成可量化、可验证的架构约束,并拆解属性之间的冲突与联动关系。

2026-04-13 · architecture

【系统架构设计百科】告警策略:如何避免"狼来了"

大多数团队的告警系统都在制造噪声而不是传递信号。阈值告警看似直观,实则产生大量误报和漏报,值班工程师在凌晨三点被叫醒,却发现只是一次无害的毛刺。本文从告警疲劳的工业数据出发,拆解基于 SLO 的多窗口燃烧率告警算法,深入 Alertmanager 的路由、抑制与分组机制,结合 PagerDuty 的告警疲劳研究和真实工程案例,给出一套可落地的告警策略设计方法。

2026-04-13 · architecture

【系统架构设计百科】复杂性管理:架构的核心战场

系统复杂性是架构腐化的根源——本文从 Brooks 的本质复杂性与偶然复杂性划分出发,结合认知负荷理论与 Parnas 的信息隐藏原则,系统阐述复杂性的来源、度量与控制手段,并给出可操作的架构策略


By .