Skip to main content

声控烤箱 于 2025/4/30 00:08:04 发布微博: 草 竟然是screen studio - 转发 @宝玉xp: 一行代码导致8000美元损失的事故分析最近,一款名为 Screen Studio 的屏幕录制软件,因为一个看似不起眼的代码错误,竟然产生了惊人的后果:短短一个月内,产生了超过 2PB(约200万GB) 的网络流量,导致开发团队承担了高达 8000美元 的云服务费用

  1. 声控烤箱 于 2025/4/30 00:08:04 发布微博:

    草 竟然是screen studio
    - 转发 @宝玉xp: 一行代码导致8000美元损失的事故分析
    最近,一款名为 Screen Studio 的屏幕录制软件,因为一个看似不起眼的代码错误,竟然产生了惊人的后果:短短一个月内,产生了超过 2PB(约200万GB) 的网络流量,导致开发团队承担了高达 8000美元 的云服务费用。
    事故到底是怎么发生的?
    Screen Studio 是一个为 macOS 用户设计的桌面屏幕录制工具,为了给用户带来更好的体验,应用设定了自动更新机制:每隔5分钟自动检查一次更新。
    然而,在最近一次的代码优化过程中,开发者 不慎遗漏了一行关键代码:当检测到新版本文件已经下载后,应用本应停止定时检查,却因为遗漏的这行代码,导致软件每隔5分钟就重复下载相同的更新文件(大小为250MB),形成了巨大的无效流量。
    更致命的是,许多用户习惯将软件长时间运行在后台,甚至数周都不关闭,进一步放大了流量问题。
    流量规模究竟有多大?
    根据推算:
    - 每位用户每天下载约72GB的数据(每5分钟250MB,一天288次)。
    - 至少有1000名用户在后台持续运行。
    - 持续长达一个月的重复下载行为,累计造成了超过 2PB(2000TB) 的数据流量。
    为什么没有及时发现?
    开发团队犯了几个关键的错误:
    - 未在 Google Cloud 上设置费用报警机制。
    - 没有定期监控云服务的使用情况。
    - 长期以来每月云费用仅为300美元,开发者因此放松了警惕。
    最终,是开发者本人的信用卡因扣费超出额度被拒绝,才意外发现问题已经严重到如此地步。
    用户也受到了严重的波及
    事故不仅给开发团队带来了财务上的损失,也给用户带来了不小的麻烦:
    其中一名用户因为短时间内产生的巨额网络流量,被当地网络供应商强制终止了网络服务合同。而这名用户所在地并没有其他可替代的网络服务商,造成了极大的生活不便。
    幸好在开发团队主动沟通和协调后,用户顺利解决了问题,没有进一步经济损失。
    这次事故给我们带来的教训:
    - 云服务一定要开启费用监控和报警机制。
    - 涉及自动更新的代码需要格外谨慎,避免无限循环。
    - 经常性审视并复查代码,尤其是重构和更新关键逻辑后。
    - 服务器端最好具备紧急干预机制,能够远程停止或强制更新客户端。
    一个小小的疏忽,往往可能引发巨大的连锁反应。
    原文:网页链接

    点击查看原文