猫鱼周刊 vol. 052 OpenAI 也翻车,基础设施暴雷
编辑关于本刊
这是猫鱼周刊的第 53 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
文章
OpenAI 事故报告
12 月 11 日的时候,OpenAI 出现了长达四个多小时的全球范围不可用故障。事后,他们发布了对应的事故报告。可以看到,根因是新部署的监控系统,压垮了 Kubernetes 控制平面;理论上数据平面可以独立于控制平面运行,然而服务间的调用依赖控制平面中的 DNS,导致数据平面实际上也不可用。
非法加冯评论道这是一种「架构杂耍」:
比如 K8S 官方建议的最大集群规模是 5000 节点,而我还清晰记得 OpenAI 发表过一篇吹牛文章:《我们是如何通过移除一个组件来让 K8S 跑到 7500 节点的》 —— 不仅不留冗余,还要超载压榨 50%,最终,这次还真就在集群规模上翻了大车。
我对 SRE 了解不多,从开发的角度,我觉得其实体现出几个问题:
- 测试不足,或者说没有预估到测试环境与生产环境的差别。它这套监控,在测试环境中只有几个节点的时候肯定是好用的,但没有考虑在生产环境中的差别。我在开发中遇到过,测试环境的 Redis 是单机部署,线上环境是集群部署,有部分命令的行为在单机和集群环境不一致的情况。另外,没有考虑到测试和生产环境的流量差别,导致最后性能受影响的情况也经常发生。
- 灰度发布没有执行到位,被缓存背刺。缓存有个非常致命的副作用,会掩盖一定的故障,影响故障的发现和排查。因为缓存本身就被设计成「无感」的,而且有的还有特别长的 TTL,所以在缓存失效之前很多故障根本不会展现。所以在设计灰度计划的时候,可以考虑持续到最长的缓存失效时间。
- 缺乏事故处理手段,且事故处理经验不足。事故发生之后,因为控制平面被压垮,工程师没法进行回滚等操作。很多时候事故发生的时候,尤其是对于新入职的人,对如何连接对应的平台,往什么方向排查都是懵逼的;更多的可能是,事故发生在假期/下班时间,甚至在半夜,所有人的脑容量都是不足的。其实这点可以借鉴航空界的 checklist(检查单),软件工程界有个概念叫 Runbook,在 Grafana 中其实有集成,可以说是一份「当发生 xx 故障时,请执行以下步骤」这样的内容。这个 Runbook 可以提前由有经验的人撰写,在发生事故时不至于手忙脚乱不知道从何入手。在事故复盘的时候,可以适当把排查经验总结,落在 Runbook 中。
还有一点我觉得值得单拎出来说,就是对开源/权威软件有错误的假设。在本次事故中,很明显他们对 Kubernetes 有一个错误假设:控制平面不会崩,就算崩了也不会影响数据平面(业务)。在健壮设计中,其实这是大忌,任何一个组件都有可能故障,好的方案应该考虑更加全面的故障点,尽量降低或消除影响。
中国“擦边”简史
上个月的事情了,是前体操运动员吴柳芳在社交媒体发擦边视频,然后也是前体操运动员管晨辰留言「前辈姐姐,擦边就擦边,但不要给体操扣屎盆子。」,后续是吴柳芳的账号被设置禁止关注。
文章以不同时代为分界,总结了不同时代「擦边」的尺度、变化过程等。文章最后认为,擦边也是一种「自由」,哪怕这些自由不那么高尚,而自由也是创新的驱动力。
擦边,或者说「性」本身是符合人性的。2023 年,OnlyFans 的总收入为 66 亿美元,而同年 OpenAI 年收入才 16 亿美元。更加炸裂的是,实际上有不少奥运冠军都在 OnlyFans 「卖屁股」(来源)。当然在现代社会,人类对「符合人性」的事加上了一些限制条件,不能影响公序良俗等等,例如要求不能有未成年内容,日本要求给性器官打码等等。擦边的出现主要还是国内对色情作品一刀切地不允许,否则这一行业一定会蓬勃发展。
再说「运动员」的事。我本身算是退役的业余运动员,对体育行业算是有一些认识。在游泳这个运动,基本如果十五六岁没进省队,基本就是生涯结束被淘汰;进省队,如果没有在全国赛事、国际赛事获奖,一般出路就是去学校做体育老师。就算你是奥运冠军,你的参赛周期基本就是两三届,这里不同运动的生涯长度可能不一样,像体操可能只有一届左右。文章中这个描述非常真实:
冠军是一座巨大的金字塔。塔底是早早的就在筛选中被淘汰的运动员;往上是市队、省队、国家队默默无闻的人,再往上,才是小有名气的获得过荣誉的;再到塔尖,才是奥运冠军。
搞运动的代价非常大,要达到专业水平,其实是从小可能就没法上文化课的,有些运动还会对身体有很大的消耗和损伤。所以运动员退役之后,伤病不说,赚钱能力其实是很堪忧的。
项目
PDFMathTranslate
能保留排版的 PDF 全文翻译。亮点是用了 yolo 模型去对原文档的排版进行解析,能输出完整的数学公式和排版。上期说到,AI 不是银弹,现在很多产品其实都是搭配 AI 更上一层楼,这就是一个例子。
ha_xiaomi_home
小米官方做的米家 Home Assistant 集成。据说里面的字段、事件、文档等非常详细,可以说是推进了米家生态的集成。智能家居生态打通非常重要,估计是小米在打通苹果生态这方面尝到了不少甜头,所以在智能家居这方面也开始着手发力了。
moviepy
一个不错的封装 ffmpeg 的 Python 库。最近手搓了很多 ffmpeg 之后才发现这个库,真是懊悔!
工具/网站
DevTool Tips
总结了非常多浏览器开发者工具的使用技巧。
想法
靠做「程序员」赚不到钱
对「程序员」这个职业一点悲观的想法——靠这个职业赚不到钱。
倒不是说「编程」这个技能没有价值,是单纯这个技能的变现能力已经非常有限了。大多数人靠这个技能,主要就是赚一份工资;而在公司里面打工,程序员能创造的业务价值依附于业务,没有业务,什么代码系统都是一文不值。原本想说底层开发或者算法这些方向可能会跟普通业务开发有点不同,或者早入行可能工资会更高;但再想一下其实基本都是通用的,不过是某些人能赚更高的工资。但不管怎么说,单纯写代码,收益都是 1x。
最后
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
- 1
- 0
-
赞助
微信赞赏码 -
分享