惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Heimdal Security Blog
S
Security @ Cisco Blogs
N
News | PayPal Newsroom
J
Java Code Geeks
罗磊的独立博客
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
V
V2EX
WordPress大学
WordPress大学
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
AI
AI
小众软件
小众软件
The GitHub Blog
The GitHub Blog
MongoDB | Blog
MongoDB | Blog
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
美团技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
S
Schneier on Security
博客园 - 三生石上(FineUI控件)
F
Full Disclosure
B
Blog RSS Feed
Forbes - Security
Forbes - Security
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
Cisco Talos Blog
Cisco Talos Blog
U
Unit 42
Project Zero
Project Zero
H
Hacker News: Front Page
Y
Y Combinator Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
S
Secure Thoughts
The Hacker News
The Hacker News
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 晨港飞燕刘彦登

OpenJdk 17.0.19下载地址 老登谈农村发展2026 股票知识 图标设计 "中登"介绍 标识和LOGO概念区别 修仙等级 什么是内耗 FL Studio介绍 什么是Remix Idea识别Freemarker语法并高亮显示 AI Agent、scaling law、Transformer 什么是CATIA 轿车和SUV的区别? 混动车类型 命中有时终须有,命中无时莫强求。 上海摩托车驾驶证相关问题 wps excel下拉框为每个下拉选项设置不同背景颜色 vite介绍 JVM参数讲解 CPU(中央处理器)核心的数量 什么是虚荣心 适合晨读的24篇英语短文,涵盖高考语法、词汇、短语知识点 项目经理,你在程序员眼中是啥样子的?你造吗? 三条公式,让项目经理和PMO的工作汇报脱颖而出【附实例】 优秀的PMO&项目经理必备的12种模型 史上最全的项目风险清单及应对措施要点--再也不愁项目风险管理了
什么是runbook
晨港飞燕刘彦登 · 2026-06-11 · via 博客园 - 晨港飞燕刘彦登

什么是runbook

Runbook(直译为“运行手册”)是一套标准化的操作流程文档,用于指导工程师或系统在遇到特定事件(如系统故障、日常维护、紧急发布)时,按预定步骤快速、正确地完成任务。

你可以把它想象成飞机的紧急检查清单或消防员的灭火预案——在压力大、时间紧的情况下,无需思考“下一步做什么”,只需照着步骤执行。

Runbook 的核心内容

一份典型的 Runbook 包含:

  • 触发条件:什么时候使用这份手册(例如“CPU 持续 5 分钟超过 90%”)

  • 角色与权限:谁负责执行、需要哪些系统权限

  • 详细步骤:命令行、API 调用、界面操作等,甚至包括截图

  • 验证方法:如何确认每一步已成功

  • 回滚方案:如果失败,如何撤销操作

  • 联系人:升级路径(遇到问题找谁)

举例场景

问题:订单支付服务响应变慢。

Runbook 可能写

  1. 登录跳板机 ssh jump@prod

  2. 运行 kubectl get pods -n payment 查看异常 Pod

  3. 重启问题 Pod:kubectl delete pod <pod名>

  4. 验证:运行 curl localhost:8080/health,预期返回 200

  5. 若未恢复,按联系人列表通知 SRE 组长

为什么重要

  • 降低人为错误:高压下不会漏步骤

  • 加速恢复:无需现场查资料或调试

  • 知识传承:老员工的经验被固化下来

  • 合规:满足审计对操作可追溯的要求

与相关概念的区别

在现代 DevOps 中,Runbook 正逐渐从纯文档演变为半自动化或全自动化(例如使用 Rundeck、StackStorm 等工具),称为 “Automated Runbook”。不过,即使全自动,背后依然遵循同一套逻辑:输入条件 → 执行步骤 → 验证输出

如果你需要,我可以给出一份简单的 Runbook 模板,或说明如何编写第一个 Runbook。

Runbook 模板

下面是一份通用 Runbook 模板,你可以直接复制到文档(如 Confluence、Markdown 文件)中,根据实际场景填写。模板已按“故障排查”场景设计,稍加修改也适用于部署、回滚、备份等任务。


[Runbook 名称]

例如: 订单服务 CPU 飙升处理 Runbook

1. 基本信息

2. 前置准备

  • 已登录跳板机 / Kubernetes 控制节点

  • 拥有 kubectlcurl 权限,或已切换至 prod 命名空间

  • 已知服务所在集群:k8s-prod-cluster

  • 备好监控面板链接(如 Grafana 看板)

3. 诊断步骤(快速判断)

  1. 查看 Pod 资源使用

    kubectl top pods -n order-ns --sort-by=cpu
  2. 检查最近事件

    kubectl get events -n order-ns --sort-by='.lastTimestamp'
  3. 查看日志错误高峰

    kubectl logs -l app=order-api -n order-ns --tail=100 | grep ERROR

4. 修复步骤

方案A(首选):水平扩容

kubectl scale deployment order-api -n order-ns --replicas=4
  • 验证kubectl get pods -n order-ns | grep order-api(状态全为 Running)

方案B(备选):重启异常 Pod

kubectl delete pod -l app=order-api -n order-ns
  • 注意:会短暂中断请求(约10-30s),确保有重试机制。

方案C(最后手段):限流降级

修改配置中心(如 Apollo)开启限流:

curl -X POST config-service/update -d '{"order.rate.limit":100}'

5. 验证恢复

  • CPU 使用率 < 50%

    kubectl top pods -n order-ns | grep order-api
  • 接口测试正常

    curl -w "%{http_code}" https://order.example.com/health
  • 查看告警是否消除(监控面板不再触发)

6. 回滚步骤(如果修复导致问题)

  • 扩容回滚kubectl scale deployment order-api -n order-ns --replicas=2

  • 限流回滚curl -X POST config-service/update -d '{"order.rate.limit":0}'(0 表示不限流)

7. 升级路径

8. 事后记录(执行后填写)

  • 执行时间:____

  • 执行人:____

  • 实际效果:☐ 成功 ☐ 失败 ☐ 部分成功

  • 根本原因(如有):____

  • 改进建议:____


使用建议

  • 首次使用前:把所有 order-apiorder-ns 等示例占位符替换为真实资源名

  • 定期演练:每季度模拟一次,验证步骤是否依然有效

  • 自动化:将第4步的脚本放入 Rundeck/Ansible 中,变成“一键执行”

需要我帮你针对某个特定场景(如数据库备份、新版本回滚)定制一份模板吗?

本回答由 AI 生成,内容仅供参考,请仔细甄别。

新版本回滚

下面是一份专门针对新版本回滚场景的 Runbook 模板。适用于应用发布后出现严重 Bug、性能下降或数据异常时,快速恢复到上一个稳定版本。


[Runbook 名称]

例如: 订单服务 v2.3.0 回滚 Runbook

1. 基本信息

2. 前置准备

  • 确认当前故障确实由新版本引起(对比旧版本监控基线)

  • 确认上一个稳定版本的镜像/包仍然可用

  • 通知相关方(产品、客服、运营)即将回滚

  • 备份当前版本的配置与日志(用于事后分析)

  • 打开数据库备份(如需回滚 schema)

3. 回滚步骤(按顺序执行)

3.1 流量切换(首选方案:K8s 镜像回滚)

3.2 验证回滚状态

3.3 数据库回滚(如新版本改了 schema)

⚠️ 谨慎操作:此步不可逆,需确认兼容性

3.4 配置回滚(如使用配置中心)

4. 验证恢复

  • 接口返回正常

    curl -w "%{http_code}" https://order.example.com/api/v1/health
    
  • 错误率降至正常水平(< 0.1%)

  • 核心业务场景测试通过

  • 监控告警消除(观察 5 分钟)

5. 回滚失败应对(如果回滚后问题依旧)

6. 强制回滚(如果普通回滚失效)

7. 升级路径(无法自行解决时)

8. 事后记录(回滚完成后填写)

  • 回滚执行时间:____

  • 执行人:____

  • 回滚是否成功:☐ 是 ☐ 否

  • 根本原因(新版本问题):____

  • 影响时长:从故障发生到回滚完成共 ____ 分钟

  • 改进措施:

    • 增加金丝雀发布阶段

    • 完善自动化测试覆盖

    • 本次回滚流程优化点:____


针对不同部署方式的补充说明

最佳实践提醒

  1. 提前演练:每季度在生产预发环境真实回滚一次

  2. 保留历史版本:至少保留最近 5 个稳定镜像/包

  3. 回滚窗口:尽量在低峰期(如凌晨)执行,但故障时优先恢复

  4. 全自动回滚:结合监控系统(Prometheus + 告警)自动触发回滚

需要我针对你的具体部署环境(比如 ECS、K8s、Serverless)进一步调整模板吗?