返回 项目经验 / System Design

阅读路径

24 篇文章

System Design

系统设计

从用户旅程、系统边界、可靠性、可观测性、成本和演进约束出发,系统化理解现代互联网系统设计。

开始阅读

目录

按顺序读下去,会从模型原理一路走到 Agent 与 Harness 的工程视角。

  1. 01 系统设计专栏导读 导读 这个专栏从现代互联网系统的真实约束出发,系统梳理边界、链路、可靠性、可观测性、成本和演进方法。
  2. 02 现代互联网系统设计导论:从约束、边界到生产级设计 系统设计不是技术堆叠,而是在业务、可靠性、成本、安全、组织和演进约束之间管理取舍,并让系统能被验证、观测、恢复和持续改进。
  3. 03 需求、约束与架构决策:系统设计从问题定义开始 从业务目标、功能需求、非功能约束、SLO、RTO/RPO、ADR 和成本边界出发,说明生产级系统设计应该如何定义问题和记录决策。
  4. 04 从用户旅程看系统边界:先画链路,再画组件 从用户角色、核心动作、请求链路、数据链路、后台链路、观测链路和故障链路出发,说明系统边界应该如何被推导出来。
  5. 05 从单体到模块化单体:边界清晰比服务拆分更重要 解释为什么单体不是原罪,如何用模块化单体保留交付速度,同时让代码边界、数据边界和未来服务拆分变得可控。
  6. 06 SOA、微服务与服务边界:什么时候该拆,什么时候不该拆 从业务能力、数据所有权、通信方式和团队责任出发,判断服务边界如何形成,以及伪微服务为什么比单体更危险。
  7. 07 云原生、Serverless 与后微服务时代:托管能力也是架构选择 从微服务运行复杂度出发,梳理云原生、Serverless、托管服务和平台工程如何降低变化成本,以及它们带来的成本、锁定和治理边界。
  8. 08 边缘、全球化与多区域架构:延迟、一致性与合规的长期权衡 从 CDN、边缘计算、Multi-AZ、Multi-Region、Active-Passive 和 Active-Active 出发,解释全球化系统为什么必须重新设计流量、数据、合规和故障边界。
  9. 09 客户端、前端与用户体验系统:客户端也是系统设计的一部分 把客户端纳入系统设计视角,分析多端一致性、BFF、弱网重试、Feature Flag、RUM、Token 管理和用户体验链路。
  10. 10 入口层:DNS、CDN、WAF、API Gateway 如何成为第一道系统边界 解释请求进入系统前会穿过哪些入口组件,以及入口层如何承担路由、安全、限流、缓存、灰度和故障隔离职责。
  11. 11 API 设计:REST、GraphQL、gRPC 与契约治理 从长期契约而不是接口格式出发,比较 REST、GraphQL、gRPC,梳理版本管理、幂等、错误码和 CI/CD 契约治理。
  12. 12 同步通信与可靠调用:超时、重试、熔断和降级如何一起工作 解释同步服务调用如何避免把局部故障放大成系统雪崩,并给出超时、重试、熔断、限流、隔离和观测的设计方法。
  13. 13 异步通信、消息队列与事件驱动:把失败变成可治理的最终一致性 梳理消息、事件、命令、Outbox、Inbox、死信、回放、积压监控和事件版本治理,说明异步不是银弹。
  14. 14 数据建模与存储系统:数据模型是系统的长期骨架 从核心对象、访问模式、一致性、生命周期、租户边界和多存储组合出发,解释数据系统设计为什么不只是数据库选型。
  15. 15 缓存、索引与读路径优化:性能优化首先是读路径设计 围绕缓存层级、索引设计、热点 Key、缓存击穿、雪崩、更新策略和读一致性,说明读路径如何被系统化治理。
  16. 16 事务、一致性与分布式数据:把业务损失模型放在技术选择之前 解释本地事务、分布式事务、Saga、TCC、Outbox、对账和一致性模型如何服务不同业务损失边界。
  17. 17 分库分表、复制与扩展:分片键是长期架构决策 从分片键、读写分离、复制延迟、在线迁移、全局 ID、热点治理和分布式数据库边界出发,梳理数据扩展设计。
  18. 18 搜索、推荐、Feed 与实时数据:派生读模型如何支撑业务反馈 解释搜索索引、推荐特征、Feed、CDC、流处理、实时数仓和数据质量治理如何从事实源派生出高价值读路径。
  19. 19 分布式协调、共识与时间:锁、租约和顺序不能只靠直觉 梳理 ZooKeeper、etcd、Consul、Kubernetes 控制面、分布式锁、lease、fencing token、共识和物理时间的边界。
  20. 20 容器、Kubernetes 与运行时抽象:平台到底替应用解决了什么 从镜像、Pod、Deployment、Service、Probe、requests/limits 和 Stateful Workload 出发,解释 Kubernetes 抽象了哪些运行时问题,又没有替应用解决什么。
  21. 21 发布系统、灰度与实验平台:变化如何安全进入生产 从构建、部署、灰度、回滚、Feature Flag、A/B 实验和数据库变更出发,梳理发布系统如何控制线上变化风险。
  22. 22 平台工程与内部开发者平台:把工程复杂度做成 Golden Path 解释 DevOps、SRE 与平台工程的关系,并从服务目录、自服务门户、模板、权限、成本和治理出发设计内部开发者平台。
  23. 23 可观测性:从日志到因果诊断 从日志、指标、Trace、事件、Profiling、eBPF、RUM、Synthetic Monitoring 和 SLO 告警出发,解释可观测性如何帮助系统定位因果。
  24. 24 韧性工程、混沌工程与事故管理:让失败可控、可恢复、可学习 从超时、重试、熔断、降级、隔离、背压、GameDay、Runbook、事故响应和无责复盘出发,梳理系统韧性如何落地。