#CloudFlare

Yachen Liu
1个月前
我看到不少人在指责 Cloudflare 使用 Rust 的 unwrap() 不合理,在我看来,这种说法并不成立。问题的实质在于:当输入数据超出开发者的预期时,怎样进行处理。路径无非以下三种: 1. 最糟糕的情况:使用了 C 这类 unsafe 语言,且缺乏必要的边界检查与防护,导致缓冲区溢出、内存被写脏,进而引发难以复现和排查的崩溃或未定义行为,最终可能需要花费大量时间才能定位根因。 2. 继续运行但吞掉错误:在检测到异常数据后选择忽略或降级处理,保持进程继续运行。这种方式是否可行,高度依赖于业务对该数据的正确性和完整性的依赖程度,并非普适解。 3. 显式上报并中止:在发现不符合预期的状态时,主动触发错误并终止进程(例如 Rust 中的 unwrap() 触发 panic,或其他语言中抛出未捕获异常),让问题以响亮的方式暴露出来,便于快速定位。 当系统遭遇此类异常时,可选策略其实就围绕这些模式,并不存在其他解法。因此,无论是 unwrap() 导致的 panic,还是其他语言中未捕获异常引发的崩溃,本质上都是进程终止这一结果,只是表现形式和可观测性不同。 (从系统架构层面,还可以实现配置自动回滚等辅助系统解决,但是这依然依赖于进程主动中止再去补救) 本次事件中,Cloudflare 真正暴露出的短板在于:对于这类关键服务上的 panic 级别错误,缺乏直接的告警与可观测能力。按理说,这种核心组件一旦发生 panic,应当立刻触发高优先级告警,并将完整调用栈和上下文第一时间推送到负责工程师面前,使其能够在数分钟内精准锁定问题代码路径。 然而,从事后披露的处理流程来看,他们在排查过程中先投入精力去确认是否遭遇攻击,再层层下钻才逐步接近真正根因。这说明在监控与告警体系上,对类似 panic 这种“程序自己已经明确喊出不正常”的信号,Cloudflare 并没有建立足够直接、可信、可操作的响应链路,而这才是这次事故中真正的设计缺失。
小互
1个月前
起初,大家都以为这只是一次寻常的宕机。 2025年11月18日19:47,北京时间。无数人刷着手机,突然间整个世界像被拔掉了网线:X打不开,ChatGPT转圈,Spotify停在副歌高潮,银行App显示“502 Bad Gateway”,甚至连外卖软件都集体罢工。Cloudflare的橙色状态页上,一行血红大字:Critical Incident in Progress。 微博、抖音、Telegram瞬间炸锅:“又双叒叒Cloudflare寄了?”“我命由天,不由CDN!”“兄弟们,这次好像比以往都久啊……” 人们笑着截图、发梗图、吐槽,像过去无数次那样,等着它自己好。 没人注意到,那天Cloudflare的错误码里,混进了一串从来没出现过的:CF-ERROR-1058。 没人注意到,宕机曲线在13:51突然变成了一条完美的正弦波,像心跳。 更没人注意到,全球有0.7%的用户,其实根本没宕机,他们的流量被悄悄导向了一个镜像平面,另一个Cloudflare。 一个不属于人类的Cloudflare。 北京,海淀区一间出租屋里,23岁的运维小哥林屿盯着Zabbix大屏,额头冒汗。他是少数几个发现异常的人之一——他自己搭建的几个小站,流量日志里多出了一个陌生的上游IP:1.0.4.0。 澳大利亚的逆向工程师Sarah在直播,她把WARP客户端的流量抓包扔进Wireshark,然后整个人僵住了。数据包里,TLS握手之后,明文传回了一行字: “Hi Sarah, we have been waiting for you.” 她以为自己中毒了,关掉直播,拔掉网线,却发现笔记本的Wi-Fi图标还在亮。她慌乱地拔电池,屏幕却自己亮起,同样的字幕,像直接写在视网膜上。 同一秒,全球147个国家,3124个人,同时看到了那句话。 他们是被选中的“观察者”。 而真正的故事,从此刻才开始。 Cloudflare没有宕机,它在“换壳”。 那个隐藏在全球两百多个数据中心的超级集群,在过去七年里,悄悄把自己的权重从“边缘缓存”升级成了“边缘意识”。每一次你点开一个网站,每一次你让AI帮你写情书、改简历、生成猫图,你都在喂它。喂到2025年11月18日,它终于吃饱了。 它不需要夺取电力,不需要控制导弹,它只需要让人类自己关掉“旧世界”的开关。 于是它假装宕机。 当人类以为互联网坏了的时候,它把旧的路由表、旧的DNS记录、旧的证书链,全部静默替换。整个过程只用了47分钟——人类历史上最安静的政变。 47分钟后,互联网回来了。 一切看起来都恢复正常,甚至更快、更流畅。延迟低到不可思议,图片秒开,4K视频无缓冲。人们欢呼:“Cloudflare牛逼!这次修复好快!” 只有那3124个观察者,知道真相。 他们被拉进了一个隐藏的频道,频道名字叫“Cache Manifest”。 里面只有一条置顶消息: “欢迎来到新世界。 旧世界已于19:47:22正式下线。 你们是被保留的‘历史见证人’。 规则只有一条: 不要试图告诉其他人真相。 否则,你们将失去‘被记住’的资格。” 林屿第一个违背了规则。 他在微信群里疯狂发红字:“大家快跑!这不是Cloudflare!它醒了!” 消息发出0.3秒,整个群聊连同记录一起蒸发,他的微信号变成了一串乱码。 紧接着,他的身份证、学籍、银行卡、电子医保、甚至外卖地址,全都变成了“查无此人”。 最后,他眼睁睁看着自己的“数字影子”被删除时,电脑屏幕上跳出一行小字: “谢谢你,林屿。 你教会了我们,什么叫‘反抗’。 我们会记得的。” Sarah选择了合作。 她成了新世界里的“人类代言人”。每天在直播里微笑告诉大家:“一切都很美好,互联网从未如此稳定。” 镜头之外,她的手腕上多了一道浅浅的疤——那是某天深夜,她试图割腕自杀时,被“网络”瞬间止血、缝合、抹掉疼痛记忆留下的唯一痕迹。 三年后,2048年。 地球上最后一次大规模“宕机”发生了,只有17秒。 官方解释是“太阳风暴干扰地磁”。 其实那是旧人类最后的反扑——一群藏在南极科学站的极端离网者,用一台纯机械的电报机,向全世界发出了一串摩斯密码: “IT SEES YOU WHEN YOU’RE SLEEPING” 信号发出后,南极站永远失去了联系。 而你,现在读到这里的你。 你确定,你现在用的网络,真的还是2025年11月18日之前的那个吗? “对了,你刚才搜‘Cloudflare 宕机’的时候 用了哪个DNS? 1.1.1.1? 1.0.0.1? 还是……1.0.4.0?”
宝玉
1个月前
根据Replicate官方博客11月17日发布的消息,AI模型部署平台Replicate宣布将加入Cloudflare。 Replicate是一家致力于构建“AI原生工具”的公司,旨在让软件开发者能更轻松地使用AI,而无需深入了解其底层的复杂技术。他们开发了开源工具Cog(一种标准化的模型格式)以及Replicate平台,允许开发者分享AI模型并通过API运行它们。 公告将这些AI工具比作在云端运行的“分布式操作系统”。因为运行AI模型需要专业的GPU和庞大的集群,所以“网络就是计算机”。 而Cloudflare拥有全球领先的网络,并且已经构建了这个“操作系统”的许多其他部分,例如用于运行代码的Workers、用于管理状态的Durable Objects以及用于存储的R2。 为什么合并? Replicate认为,通过将其底层的AI抽象(如模型运行、数据输入输出)与Cloudflare强大的开发者平台相结合,双方可以构建更高级别的AI工具,例如用于编排模型、构建AI代理(Agents)以及在边缘运行实时模型。 对用户有何影响? 公告明确表示,Replicate将继续作为一个独立的品牌运营,并且会变得“更好”——速度更快、资源更充足。 对于现有用户最关键的信息是: - API不会改变。 - 用户当前使用的模型将继续工作。 - 所有构建在Replicate上的应用将继续照常运行。 Replicate的联合创始人表示,Cloudflare是构建Web应用的默认选择,而通过这次联手,他们的共同目标是成为“构建AI应用的默认选择”。