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

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

故障

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

  • 故障 - 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

相关推荐
zone_z13 分钟前
Oracle 表空间检查与监控配置详解
数据库·oracle
冉冰学姐1 小时前
SSM装修服务网站5ff59(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·装修服务网站
库库8391 小时前
Redis分布式锁、Redisson及Redis红锁知识点总结
数据库·redis·分布式
沧澜sincerely1 小时前
Redis 缓存模式与注解缓存
数据库·redis·缓存
Elastic 中国社区官方博客2 小时前
Elasticsearch 推理 API 增加了开放的可定制服务
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
nzxzn3 小时前
MYSQL第二次作业
数据库·mysql
核桃杏仁粉3 小时前
excel拼接数据库
数据库·oracle·excel
TiAmo zhang3 小时前
SQL Server 2019实验 │ 设计数据库的完整性
数据库·sqlserver
冻咸鱼4 小时前
MySQL的CRUD
数据库·mysql·oracle
Funny Valentine-js4 小时前
团队作业——概要设计和数据库设计
数据库