云部署架构——请求路径与韧性

云部署架构,在一张交互式画布上讲清楚:CDN 边缘、负载均衡器、弹性伸缩的应用层、数据层,以及让服务不倒的可观测性。

云部署把一台孤零零的服务器变成一个有韧性的系统:流量从边缘进来,负载均衡器把它分发出去,一个弹性伸缩的层负责处理,数据层负责存储,监控则让整个技术栈始终诚实。

云部署架构——请求路径与韧性

The interactive FlowJam canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

How to read this visual

  • 先把左边一列从上往下读:用户、CDN、负载均衡器、实例、缓存、数据库——这就是请求路径。
  • 再把右边一列当作韧性的故事来读:弹性伸缩、只读副本、备份和监控,它们让请求路径一直活着。
  • 可观测性那条带子是传感层——它排在最后,因为它盯着它上面的一切。

请求路径

“用户通过边缘访问服务”是旅程的起点,“CDN 在靠近用户的地方缓存静态内容”是第一道防线——静态资源由离访客最近的边缘节点提供。“负载均衡器分发流量”是计算层的入口,把每个请求转发给一个健康的实例。“应用实例处理请求”和“内存缓存加速重复读取”是干活的心脏,缓存把热数据挡在数据库之外。

数据层

“主数据库保存唯一可信来源”是唯一一个无法从零重建的组件,“只读副本与备份保护数据”则是它的恢复方案——只读副本分摊负载,时间点备份和跨区域副本应对灾难。这张图把它单独放进一条泳道,是因为数据层出故障的方式与它上面那些无状态的层不同,需要另一套控制手段。

韧性与可观测性

“应用实例的弹性伸缩组”按流量横向扩容,“监控与告警盯住整个技术栈”是传感层——覆盖每一层的指标、日志与告警,也是自愈和回滚的触发器。“这套部署既能伸缩,也能自愈”是终态:它不是一套固定的架构,而是一套会自我调整的架构。这种自我调整,就是云部署与一台孤零零的服务器之间的全部差别。

Key relationships and takeaways

  • 韧性是分层的:CDN、负载均衡器、弹性伸缩、缓存、只读副本、监控——每一层都护着它后面那一层。
  • 数据层出故障的方式不同,需要自己的一套控制手段:只读副本分摊负载,备份负责恢复。
  • 负载均衡器是入口;有多少扇门,则由弹性伸缩决定。
  • 缓存是可丢弃的——丢了会让系统变慢,但不会让它崩掉。
  • 监控才是把回路闭上的那一环:一条告警触发伸缩、回滚和恢复的决策。

When to use this visual

  • 在团队设计第一套生产环境之前,讲清楚一套云部署的解剖结构。
  • 从韧性角度审查一套架构——某一层没有冗余就是一个单点故障,这张画布会把它暴露出来。
  • 为一场关于云成本的讨论打底:每一层都是一个关于要为冗余付多少钱的决定。

运作方式

  1. 把各层改成你自己的技术栈

    用你实际使用的服务替换掉这些通用层——你的 CDN 服务商、你的负载均衡器、你的实例规格、你的数据库引擎——每层一个方框。

  2. 画出流量走向

    在请求路径上标注真实的协议和端口,并写明 TLS 在哪里终结、路由决策在哪里发生。

  3. 补上你的伸缩规则

    在弹性伸缩方框上注明你环境里真正触发伸缩的指标和阈值,让这张图和你的策略对得上。

  4. 写下你的恢复方案

    从数据库拉一条分支到备份方框,标出你的 RPO 与 RTO,以及真实的恢复或故障切换步骤,并以一个明确的恢复状态收尾。

常见问题

什么是云部署架构?

它是一个服务如何在云上运行的设计:流量从边缘(CDN)进来,负载均衡器把它分发出去,一个弹性伸缩的实例组负责处理,数据层负责存储,监控盯着一切。这套架构的决定性特征是韧性——没有哪一个组件出故障会让服务整体挂掉,因为每一层都有冗余,而且会自我调整。

数据层为什么要和其他部分区别对待?

因为无状态的那些层——实例、缓存——可以瞬间重建或替换,而数据库保存的是无法再造的唯一可信来源。它需要自己的控制手段:分摊读负载的只读副本、用于恢复的时间点备份和跨区域副本,以及一套定义清楚的故障切换步骤。这张图给数据层单独一条泳道,就是因为它的故障方式和控制手段都和上面那些层不一样。

“弹性伸缩”是什么意思,为什么它重要?

弹性伸缩会根据实测的需求自动增减应用实例——通常看 CPU、内存或队列长度。它重要,是因为它把容量从一次猜测变成了一个控制回路:系统忙的时候多买容量,不忙的时候释放掉,而且无需人工介入就能替换掉一个坏掉的实例。这种自我调整,是云部署之所以有韧性的很大一部分原因。

缓存和监控在这套架构里处在什么位置?

缓存夹在应用和数据库之间:热数据从内存里提供,数据库只会看到真正需要它的那些请求。监控是横跨每一层的传感层——指标、日志与告警——也正是它触发了其他的韧性机制:错误骤升会启动回滚,负载上升会触发伸缩,坏掉的实例会被替换。没有监控,架构的其余部分就是在盲飞。

在 QueryChart(FlowJam)中编辑这张图解

把上面这张云部署画布原样打开成你自己的图表,把各层改成你自己的技术栈,再把你的韧性措施画上去。

在 QueryChart(FlowJam)中编辑这张图解

可视化图解中的更多内容