互联网|一个SDK引发的“血案”


人不能两次踏进同一条河流 。 Facebook:但我们能时隔两月栽在同一个坑里 。
Facebook iOS SDK 再引故障
5 月 7 日 , Facebook iOS SDK 故障引发北美主流 App 大规模崩溃 , 从海外风头强劲的 TikTok 到 Google、Netflix、Spotify 等知名 App 再到游戏 GTA5、使命召唤无一幸免 。
互联网|一个SDK引发的“血案”
本文插图

图源见水印
Facebook iOS SDK 的 GitHub issue 显示 , SDK 6.5.0、SDK 5.6.0、SDK CoreKit 6.0.0 等等都会导致应用崩溃 。
https://github.com/facebook/facebook-ios-sdk/issues/1374
互联网|一个SDK引发的“血案”
本文插图

仅仅两个月时间 , 上周五 Facebook iOS SDK 再次导致大量应用崩溃 , Spotify , TikTok , Tinder 和 Waze 等应用无法使用持续数小时 。 此次崩溃的罪魁祸首是 Facebook SDK 5.0.2 等版本 。 Facebook 在一份声明中说:“……代码变更触发了某些 iOS 应用程序的崩溃 。 我们迅速发现并解决了该问题 。 对于由此带来的不便 , 我们深表歉意 。 ”
一家独大的隐忧
Facebook 的 SDK , 就像开发者托管在云上的服务一样 , 一旦出现故障 , 引发的很可能是多米诺骨牌级的连锁崩溃反应 。

这两起由 Facebook SDK 故障引发的大规模应用程序崩溃事件凸显了一个隐忧:当 Facebook 拥有一个“核弹”级别的开关 , 只要摁下去就造成大规模的杀伤 , 开发者如何保护自己不受无差别攻击?
答案很可能是:无法保护 。
因为此次事件明确地给了外界一个信号:不管有意还是无意 , Facebook 都有这个能力 , 他们确实可以控制包含其代码的其他应用程序 。
Facebook 以工程师文化闻名于世 , 其工程团队认为 , 他们的开发工作永远没有到头的那一天 , 代码库的增长永不停止 , 2013 年时就有超过 1000 万行代码(850 万 PHP 代码) , 而到 2019 年时 , 其代码库已经突破一亿行 。
不断开发新的功能 , 迅速上线 , 满足用户需求 , 这是 Facebook 的持续部署的开发模式 。 Move fast , break things 是他们的一贯信条 , 更为激进的是 , 长久以来 Facebook 甚至没有专门的测试工程师:所有的测试工作都交由自动测试工具和开发团队自己 。
两次栽在同一个坑里 , 开发者笑言 Facebook 的信条是 Move fast and break the whole mobile iOS App ecosystem 。 还有人在 issue 区留言道:Facebook , 等等你的人民吧(Please move slower and break fewer things) 。
当然 , 没有一家企业是完美的 , 在持续更新的软件开发领域 , 要做到不出错、少出错更是难上加难 , 每一个开发团队、开源项目维护者乃至个人开发者 , 都应该敬畏每一行代码 , 每一份托付 。
回到 Facebook SDK 这个故障本身来看 , 官方团队给出的原因是“代码变更” , 不知道这变更的代码是 black/white list 吗?
【互联网|一个SDK引发的“血案”】


    推荐阅读