2023年Q3,某SaaS团队的监控大屏一片翠绿——部署频率从每周2次飙到日均47次,故障恢复时间压到4分钟以内,自动化覆盖率97.3%。

CTO在全员会上放了张PPT:「我们做到了行业前5%的工程成熟度。」

三个月后,客服工单里出现一种奇怪的投诉:「页面不卡,但就是觉得慢。」用户说不清哪里慢,流失率却涨了12%。

「慢」成了一种分布式体验

「慢」成了一种分布式体验

技术团队最初怀疑是前端渲染问题。抓包分析后,每个接口的P99响应都在200ms以内,完全健康。

直到一位工程师把全流程串起来测了一遍:用户点击按钮→触发API网关→鉴权服务→业务服务→缓存→数据库→返回。单看每个环节都很快,端到端却花了1.8秒。

问题藏在自动化本身。

CI/CD流水线每次部署会触发12个自动化检测任务:单元测试、集成测试、安全扫描、性能基线对比、依赖漏洞检查、配置漂移检测……每个任务平均耗时15-40秒。为了「不阻塞发布」,团队把这些任务全改成了异步。

异步意味着解耦,解耦意味着队列。

某个微服务上线时,它的健康检查请求要排队等3个前置任务完成。另一个服务调用它时,又触发一轮新的健康检查。检查本身很快,但检查的检查、检查的检查的检查,在分布式系统里堆成了递归。

「我们把延迟做成了俄罗斯套娃,每层都觉得自己很轻。」

监控仪表盘成了盲区

监控仪表盘成了盲区

更隐蔽的是可观测性本身的成本。

团队接入了7种监控工具:APM追踪每个请求的调用链,日志平台每秒采集50万条日志,指标数据库存储着847个自定义仪表盘。这些工具都按「自动化最佳实践」配置,采样率100%,保留期90天。

结果是:每产生1元的业务流量,要烧掉0.4元的监控存储和计算成本。更糟的是,追踪数据本身成了瓶颈——一个请求经过12个服务,会产生约2MB的追踪日志,这些日志的写入和索引延迟,被算进了「系统响应时间」里。

用户感知的慢,有一部分是系统在忙着记录自己有多快。

基础设施即代码(IaC)也贡献了意外延迟。Terraform配置里为了保证「幂等性」,每次部署会重新校验整个环境状态,哪怕只改了一行代码。云厂商的API调用有速率限制,Terraform乖乖排队,队列深度在高峰期达到400+。

一位工程师在内部文档里写:「我们自动化了所有能自动化的事,除了自动化本身的复杂度。」

回退比推进更难

回退比推进更难

发现问题后,团队试图砍掉部分检查。第一个被盯上的是「配置漂移检测」——每次部署后对比实际状态与代码状态的差异。

产品经理反对:「上个月刚靠这个发现一起人为改生产配置的故障。」

安全团队反对:「漏洞扫描如果异步改定时,合规审计过不了。」

运维团队反对:「自动扩缩容依赖实时指标,降采样会丢峰值数据。」

每个自动化环节都有存在的理由,合在一起却产生了没人负责的系统性摩擦。这就像厨房里有6个自动化的智能设备,每个都声称能提升效率,但做一道菜要唤醒12个APP,总耗时比明火灶还长。

最终采用的方案是「分层熔断」:核心路径保留同步检查,非关键检查降级为采样执行,监控数据保留期按业务等级分层。自动化覆盖率从97%降到71%,端到端延迟从1.8秒压到380ms。

CTO在复盘会上说:「我们以前追求『一切自动化』,现在追求『值得自动化的才自动化』。这两个目标的差距,大概是3个季度的学费。」

行业正在重复同样的路径

行业正在重复同样的路径

这份内部复盘被匿名发到技术社区后,收获了1700+条评论。高频出现的词不是「解决方案」,而是「我们也是」。

某电商平台的工程师留言:「我们的CI流水线有23个并行任务,为了『加速』全改成了异步,现在排查一次故障要翻5个队列的日志。」

一位云厂商架构师回复:「客户最常问的问题已经从『怎么自动化』变成『怎么给自动化踩刹车』。」

数据印证了这种转向。Gartner 2024年调研显示,73%的企业正在「重新评估自动化范围」,高于2022年的41%。其中28%明确将「减少自动化带来的隐性复杂度」列为年度目标。

工具厂商也在调整话术。某DevOps平台的新版文档里,「全链路自动化」被替换为「可观测的自动化」,并新增了一章「如何为自动化设置预算上限」。

这像是一个行业的集体清醒:自动化不是终点,而是需要被管理的对象本身。

那位写下「除了自动化本身的复杂度」的工程师,后来在团队内部发起了一个「手动日」实验——每月第一周,所有人必须用半自动方式完成部署,记录哪些步骤其实不需要机器代劳。

第一期的发现是:37%的自动化检查从未触发过告警,12%的监控仪表盘过去90天无人查看,而那个被Terraform反复校验的「完整环境状态」,实际变更频率是每6个月1次。

「手动日」的文档最后一行是个未解决的问题:如果我们把省下来的计算资源折算成工程师时间,这些时间该用来做什么?