程序员黑话之故障专辑(中英文对照版)

故障

故障有好几种叫法,比较正式的
  • 故障 - Outage

  • 事故 - Incident
不怎么严重的,时间很短的
  • 抖了一下 - Jitter(多用于网络)

  • Hiccup (中文翻译是打了个嗝,不过中文里貌似没有这个讲法)
通俗点的说法
  • 挂了/崩了- Down


500

当在请求某个网络资源时,服务器内部发生错误时,返回的错误编号。扩展为系统发生内部故障。


变更

虽然突然的流量暴涨,或者光缆被挖断,数据中心着火,被雷劈都有可能,但绝大多数时候,故障都是变更导致的。

变更分为三大类:
  1. 代码变更 - Code Change

  2. 配置变更 - Config Change

  3. 数据库变更 - Database Change


左移 (shift-left)

降低变更风险的一个方法,就是做变更前检查,问题越早发现越好。因为变更的流水线是从左往右画的,起点在左边。所以左移就是把检查尽量靠近起点。


金丝雀 (Canary)

以前矿工下井,会带一只金丝雀,如果井下空气出现状况,更敏感的金丝雀会先有异常。这个概念也带到了软件研发里。会循序渐进地做变更。另外一种叫法是灰度 (Grayscale)。


单元化/区域化 (Regionalization)

在互联网公司逐渐普及的架构,主要由 AWS 发扬光大,把服务进行隔离。


爆炸半径 (Blast Radius)

金丝雀和单元化都是为了降低爆炸半径,减少故障的影响面。


值班 (On-call)

也叫 Carry the pager。以前带着的传呼机叫做 Pager。现在传呼机被手机/软件取代了,但 Pager 这个名字沿用了下来。


复盘 (Postmortem)

原义是尸检报告。在软件研发领域,指详细的故障分析报告。


惊群 (Thundering Herd)

打雷后,动物一下子被惊醒了,到处乱窜,造成混乱。在故障恢复阶段要小心的问题,很容易刚拉起一个服务,立马又被积压的请求打挂。


结语

船停在港口是最安全的,但那不是造船的目的。软件需要持续的变更迭代,变更就有风险。但研发团队可以通过引入工具,来降低风险,针对一开始变更的三种类型,市面上也有成熟的开源方案:
  • 代码变更 - 老牌的有 Jenkins,新兴的有 Drone CI 和 Zadig
  • 配置变更 - Apollo
  • 数据库变更 - Bytebase
🍀好运!


往期推荐



指针没用好,一行代码让公司损失6000万美元周热点 | 2023.11.06-2023.11.13俄罗斯操作系统Aurora OS 5.0全新UI亮相



这里有最开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦

相关推荐

  • 从kkFileView项目出发,聊聊怎么做开源项目
  • 我们能从阿里云史诗级故障中学到什么
  • .NET 8正式GA,最新LTS版本
  • 关联图谱在转转风控的实践
  • 大厂微软开发的效率小工具,只有199KB,提升打工人生产力
  • 即将到来的 Vue 3 “Vapor Mode”
  • 15个必知Pandas代码片段,助你精通数据分析
  • TrOCR:基于Transformer的OCR介绍和使用
  • 大模型会毁了年轻程序员 —— 对话图灵奖得主 Joseph Sifakis | 新程序员
  • Java下跌,被C#逼近!Kotlin后生可畏
  • 不是LlaMa套壳!李开复麾下大模型陷套壳争议,团队二次回应来了!
  • 中东金主来募人民币基金了
  • 突发!奥特曼宣布暂停ChatGPT Plus新用户注册!
  • 突发!ChatGPT Plus流量爆炸暂停注册,恢复时间未定
  • 比Siri更懂iPhone!GPT-4V可“操作”手机完成任意指令,无需训练
  • DeepMind大模型登Science:1分钟预测10天天气数据,90%指标超越人类最强模型
  • 大模型架构创新已死?
  • 成本2元开发游戏,最快3分钟完成!全程都是AI智能体“打工”,大模型加持的那种
  • MYSQL JDBC 之ResultSetMetaData获取列名 别名 useOldAliasMetadataBehavior
  • select for update加锁,懵逼了!