itsjustrdm/majorops
GitHub: itsjustrdm/majorops
一个基于Cloudflare无服务架构的重大IT事件实时指挥平台,用结构化的八阶段事件模型替代混乱的传统事件响应方式。
Stars: 0 | Forks: 0
# MajorOps
MajorOps 是一个为重大事件经理及其协调的团队构建的实时事件指挥平台。它用结构化的、实时的操作环境取代了电话会议、Slack 讨论串和笨重的工单系统带来的混乱 —— 专门为重大事件所要求的速度和清晰度而构建。
## 问题所在
现代 IT 运营几乎没有借鉴那些在压力下掌握高风险协调的学科 —— 应急服务、航空和医学。重大事件经理的工作方式像 911 调度员,但使用的却是帮助台的工具。团队在没有上下文的情况下加入呼叫。更新在 Slack 中丢失。高管们得到的要么是沉默,要么是噪音 —— 很少是信号。
MajorOps 改变了这一点。
## 功能
**对于重大事件经理(火场前线)**
实时的指挥界面。阶段推进实时追踪。状态更新即时发布。指挥分配、恢复路径和验证追踪 —— 尽收眼底。无需表单。没有摩擦。从事件开启的那一刻起,时钟就开始跳动。
**对于内部利益相关者(10,000 英尺视角)**
一个完全透明的公共状态页面。活动事件、阶段历史、状态更新和结构化数据 —— 所有内部员工无需认证即可查看。
**对于高层领导(30,000 英尺视角)**
一目了然的清晰、实时事件状态。影响、阶段、严重程度和最新更新 —— 无需询问任何人。
一个数据源。多种视角。零重复工作。
## 核心概念
- **分层感知** —— 并非每个人都需要相同的信息。MajorOps 自动将适当的精度交付给合适的受众。
- **8 阶段事件模型** —— 警报 → 收集 → 评估 → 初步 → 隔离 → 缓解 → 验证 → 解决。每个事件都经历一个结构化的生命周期。
- **MIM 即调度员** —— 设想一下老式交换机:路由信号、设定节奏、保持控制范围。MajorOps 围绕这一角色构建。
- **服务请求** —— 任何团队、任何系统都可以用最小可用字段集开启一个 MajorOps 事件。
- **完全透明** —— 所有查看者均为内部人员。无数据隐藏。每个人都能看到有效协调所需的信息。
## 架构
完全构建在 Cloudflare 的边缘平台上:
| 组件 | 技术 | 用途 |
|---|---|---|
| API & Backend | Cloudflare Workers + Hono | REST API,业务逻辑,认证中间件 |
| Database | Cloudflare D1 (SQLite) | 事件,阶段日志,状态更新,指挥数据 |
| Frontend | React + TypeScript + Vite | 操作员仪表板,公共状态页面,管理门户 |
| Styling | Tailwind CSS | 消防红暗色模式设计系统 |
| Auth | Google OAuth (via Mocha Users Service) | 操作员认证 —— 查看者无需认证 |
| Hosting | Cloudflare Pages | 静态前端部署 |
无服务器。无 DevOps。第一天即全球分布。
## 项目结构
```
majorops/
├── apps/
│ ├── web/ # React + TypeScript + Vite — operator dashboard, status page, admin portal
│ ├── worker/ # Cloudflare Worker + Hono — REST API, business logic, auth middleware
│ └── cli/ # CLI (planned) — mim new / mim update
├── migrations/ # D1 schema, versioned
├── schema/ # Shared type definitions
├── docs/ # MkDocs Material documentation site (deploys to majorops.io)
│ ├── philosophy/
│ │ ├── PHILOSOPHY.md # Core principles — why MajorOps exists and how it thinks
│ │ ├── ICS-IT-STRUCTURE.md # IT Incident Command System — role definitions and command structure
│ │ └── EXPOSURE_NOTATION.md # METAR-style single-line incident status format
│ ├── governance/
│ │ ├── PIR.md # Post-Incident Review process
│ │ └── RESPONSE-REPUTATION.md # Future: gamified responder readiness scoring
│ ├── runcards/
│ │ ├── index.md # Run card browser and overview
│ │ ├── runcard-browser.html # Interactive three-tier dispatch browser
│ │ └── *.html # Tier 1/2/3 runcard examples
│ ├── api-reference/ # API docs (stub — auto-gen from OpenAPI planned)
│ ├── user-guide/ # MIM user guide (in progress)
│ ├── stylesheets/
│ │ └── extra.css # Brand CSS overrides for MkDocs Material
│ ├── GLOSSARY.md # Shared vocabulary
│ ├── ALARM-LEVELS.md # Box 0–3 escalation system
│ ├── RUNCARD-SYSTEM.md # Three-tier dispatch architecture
│ ├── CONTRIBUTING.md # Contribution guidelines
│ └── index.md # Site home
├── overrides/
│ └── main.html # MkDocs template override — draft banner
├── mkdocs.yml # MkDocs Material config
├── requirements.txt # mkdocs-material
├── ROADMAP.md
├── DATA_MODEL.md
├── BRAND.md
├── REVIEWED.md # Vault consolidation audit trail
└── wrangler.json
```
## 8 阶段事件模型
| 阶段 | 名称 | 目的 |
|---|---|---|
| 1 | Alert (警报) | 事件检测并开启 |
| 2 | Gather (收集) | 信息收集 —— 可重新进入 |
| 3 | Assess (评估) | 范围和影响评估 |
| 4 | Initial (初步) | 初步响应行动 |
| 5 | Isolation (隔离) | 故障隔离 |
| 6 | Mitigation (缓解) | 正在进行主动缓解 |
| 7 | Validation (验证) | 跨受影响系统的恢复验证 |
| 8 | Resolution (解决) | 事件关闭 |
## 数据模型
关键实体:`Incident`、`PhaseLog`、`StatusUpdate`、`PhaseData`、`IncidentCommand`、`CommandChangeLog`、`RecoveryPath`、`ValidationTracking`、`SeverityDefinition`、`PhaseDefinition`。
完整模型设计请参见 [`DATA_MODEL.md`](./DATA_MODEL.md)。实时 D1 schema 请参见 [`migrations/`](./migrations/)。
## 本地运行
```
# Platform app
npm install
npm run dev
```
需要包含 Cloudflare 和 Mocha 凭据的 `.dev.vars` 文件。绑定名称请参见 `wrangler.json`。
```
# Documentation site
pip install mkdocs-material
mkdocs serve
```
## 路线图
分阶段交付计划请参见 [`ROADMAP.md`](./ROADMAP.md)。
## 文档
`docs/` 文件夹是一个完整的 MkDocs Material 站点,涵盖了 MajorOps 背后的框架 —— 原则、指挥结构、执勤卡系统、警报级别、术语表和治理流程。它通过 Cloudflare Pages 部署到 `majorops.io`。
要在本地运行文档:
```
pip install mkdocs-material
mkdocs serve
```
**最新增补:** 利益相关者和执行用户指南,以及一个可复用的数据字典页面(源自 `DATA_MODEL.md`)。
在前言 中标记为 `draft: true` 的页面会显示 DRAFT(草稿)横幅,并在发布前等待审核。
- **人物角色与用户故事:** `docs/user-guide/personas.md` —— MIM、Ops、Comms、服务经理、高管、利益相关者和响应者的整合故事。
- **KPI 真理来源:** `docs/governance/kpis.md` —— 唯一、权威的 KPI 定义。由 D1 表 `kpi_definitions` 和 `kpi_observations`(见 `schema/migrations/0001_kpis.sql`)及 `apps/web/src/types/index.ts` 中的 UI 类型提供支持。
## 状态
## 设计系统
**消防红 — 信号黑**
- Primary Red: `#CC0000` —— 主要动作颜色,所有强调色
- Background: `#0A0A0A` —— 信号黑
- Surface: `#111111` / `#1A1A1A` / `#2A2A2A` —— 分层深度
- Text: `rgba(242, 242, 242, 0.87)` —— 主要文本
- Muted: `rgba(136, 136, 136, 0.54)` —— 次要文本
- Fonts: Orbitron (展示) · Saira Condensed (标题) · IBM Plex Sans (正文) · IBM Plex Mono (代码)
- Geometry: 全局零圆角
视觉语言汲取自应急服务和指挥中心。高对比度。高密度。为高压环境而构建。完整设计系统文档请参见 [`BRAND.md`](./BRAND.md)。
## 理念
MajorOps 是有主见的。它不是一个通用的事件工具。它围绕一个特定的信念构建:管理重大事件的人员应该得到专门构建的工具,这种工具要尊重该角色的认知负荷 —— 而且他们所服务的组织应该得到透明度和结构化沟通,这些目前只存在于运行最好的应急行动中心。
目标不是取代 ServiceNow。而是为了让“事件开启”和“事件关闭”之间的时间变得显著更有效 —— 并使这项工作变得可见、可学习且随时间推移可改进。
*MajorOps 独立开发和维护。构建于 Cloudflare 之上。*
标签:Incident Commander, Incident Management, ITIL, IT运维, Socks5代理, SRE, 事件管理系统, 事故响应, 企业通信, 偏差过滤, 协同工具, 危机管理, 实时协作平台, 工作流引擎, 应急管理, 指挥调度, 故障处理, 状态同步, 状态页, 程序员工具, 自动化攻击, 运维自动化