ccoop12/reliability-lab
GitHub: ccoop12/reliability-lab
一个交互式的事件响应模拟器,通过确定性故障场景让运维和 SRE 工程师在无风险的环境中练习弹性系统的故障定位与缓解决策。
Stars: 0 | Forks: 0
# Reliability 实验室
Reliability Lab 是一个交互式的事件响应模拟器,用于练习弹性系统背后的决策。它提供确定性的故障场景、服务依赖关系、模拟遥测数据、缓解措施选择,以及可导出的复盘报告。
## 你可以练习的内容
- 通过 API、缓存和数据库压力追踪缓存雪崩。
- 通过有界重试和熔断机制来控制级联超时。
- 通过可逆的回滚从版本回归中恢复。
- 将看似合理的操作与能解决根本原因的操作进行对比。
- 导出包含影响、原因、缓解措施、结果和经验教训的简明模拟复盘报告。
## 为什么会有这个项目
运维知识通常以概念定义的方式教授。Reliability Lab 将其转化为一个决策循环:
1. 观察依赖关系图和事件顺序。
2. 识别限制条件或故障策略。
3. 选择有界的缓解措施。
4. 观察建模后的服务目标的变化。
5. 将经验教训保存在复盘报告中。
## 工程亮点
- 通过 Vinext 渲染的兼容 Next 的 App Router
- 基于 React 19 的交互式模拟
- 兼容 Cloudflare Worker 的输出
- 纯确定性场景引擎
- 用于模拟和渲染 HTML 检查的 Node 测试运行器
- GitHub Actions 质量门禁
- 响应式且支持键盘访问的控制界面
- 感知主机环境的 Open Graph 和 X 社交元数据
- 无需数据库、账户、API 密钥或生产数据
## 本地运行
环境要求:
- Node.js 22.13 或更高版本
- npm
```
npm install
npm run dev
```
打开 `http://localhost:3000`。
## 验证
```
npm run lint
npm test
```
`npm test` 会创建生产构建,测试渲染后的 Worker 响应,并执行事件决策模型。
## 项目结构
```
app/
ReliabilityLab.tsx interactive product experience
globals.css responsive visual system
layout.tsx metadata and social preview wiring
page.tsx route entry
lib/
simulation.js deterministic scenarios and outcomes
tests/
rendered-html.test.mjs
simulation.test.mjs
worker/
index.ts Cloudflare Worker entry point
```
## 场景模型
每个场景定义了:
- 事件背景和根本原因;
- 五个服务的初始健康状态;
- 可用性、尾部延迟、错误率和错误预算状态;
- 带有时间戳的事件流;
- 三个操作员操作;
- 确定性的结果和操作员经验教训。
该模拟器是用于教育目的的,并非生产容量模型。
## 安全
Reliability Lab 没有身份验证、数据库、用户输入持久化或运行时密钥。请通过 [SECURITY.md](./SECURITY.md) 中的流程报告安全问题。
## 许可证
[MIT](./LICENSE)
标签:MITM代理, React, Syscalls, 事故响应, 混沌工程, 程序员工具, 稳定性, 自动化攻击, 运维