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

去年出过一期「程序员黑话集」,一直想着更新一季,正好最近业内接连发生了几起影响比较大的故障,那我们就专门做一期「故障专辑」吧。

故障

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

  • 故障 - Outage
  • 事故 - Incident

不怎么严重的,时间很短的

  • 抖了一下 - Jitter(多用于网络)
  • Hiccup (中文翻译是打了个嗝,不过中文里貌似没有这个讲法)

通俗点的说法

  • 挂了/崩了- Down

500

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

变更

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

变更分为三大类:

  • 代码变更 - Code Change
  • 配置变更 - Config Change
  • 数据库变更 - 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

🍀好运!


💡 更多资讯,请关注 Bytebase 公号:Bytebase

相关推荐
马克Markorg4 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_6 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy6 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道8 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707538 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha8 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_8 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance8 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋8 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.9 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库