全球应用的三项职责(第2部分)

发布: (2026年3月17日 GMT+8 13:00)
5 分钟阅读
原文: Dev.to

Source: Dev.to

在第 1 部分,我解释了在全球规模下,信任是架构的一部分——不是一种感觉,而是系统必须强制执行并加以证明的东西。
在本文中,我将描述使全球系统能够有机增长的三项不同职责。


职责 1 – 执行(业务逻辑)

它的作用

  • 运行业务逻辑
  • 处理请求
  • 处理事件
  • 推进工作流

常用 AWS 服务

  • AWS Lambda
  • Step Functions
  • EventBridge
  • DynamoDB
  • SQS
  • SNS

回答的核心问题

系统为业务做了什么?

优化目标

  • 正确性
  • 可扩展性
  • 弹性
  • 隔离性

成为问题的情形

  • 将合规逻辑直接嵌入业务代码中
  • 在各处随意添加“以防万一”的日志且没有结构
  • 将运维关注点泄漏到领域逻辑中

执行代码应专注于完成工作,而不是解释或为其辩护。


职责 2 – 审计 / 证明

存在的原因

团队外部的人员会提出诸如:

  • 谁拥有访问权限?
  • 谁修改了生产环境?
  • 哪些数据流向了哪里?
  • 当时是否启用了日志记录?

这些问题关乎 证明,而不是调试。

表达此职责的 AWS 服务

  • AWS CloudTrail
  • IAM 配置和访问记录
  • 配置历史与保留策略
  • AWS Audit Manager

常见陷阱

  • 重复使用执行或可观测性数据作为证据(日志格式会变,指标被聚合,仪表盘会被删除,开发者的记忆各不相同)。

证据必须具备

  • 完整性
  • 一致性
  • 防篡改性

由于这些要求,审计必须与执行分离。


职责 3 – 运维 / 健康监控

回答的核心问题

系统当前是否健康?

(不是 “租户 X 发生了什么?” 或 “谁改动了这个?”)

常见关注点

  • 错误是否在增加?
  • 延迟是否在恶化?
  • 问题是区域性的还是全局性的?

答案来源

  • 指标
  • 警报
  • SLO
  • 仪表盘

使用的 AWS 服务

  • Amazon CloudWatch 指标与仪表盘
  • Amazon Managed Prometheus
  • 服务遥测与警报

这些服务在健康信号超过阈值时触发调查和行动。


将职责分离的好处

  • 更清晰的对话

    • 与其问 “我们应该集中日志吗?” 不如问 “我们在满足哪项职责?”
    • 与其问 “为什么我不能直接在指标中添加 tenantId?” 不如问 “这是运营信号还是会计问题?”
    • 与其问 “治理为什么拖慢了我们?” 不如问 “我们在满足哪项职责?”
  • 明确的权衡 – 决策时考虑相关职责,减少隐藏的复杂性。

  • 在大规模下降低混乱 – 带租户 ID 的指标、审计仪表盘以及通过 CloudTrail 调试各自单独有意义,但混合使用会导致信号模糊。

从治理的角度来看,全球系统之所以失败,并不是因为它们是分布式的,而是因为我们让单一系统一次性承担所有职责。将执行、审计和运营健康分离,就把复杂性放在了应该放的位置。

0 浏览
Back to Blog

相关文章

阅读更多 »

第2天:为什么仅仅更努力不足

当我还是个孩子的时候,我卖 Scout‑O‑Rama 票。数学很简单:敲更多的门,获得更多的销售,赢得更大的奖品。卖软件并不那么不同……