450 lines
8.4 KiB
Markdown
450 lines
8.4 KiB
Markdown
# HoloLake Era · 分布式服务器控制与自然语言运维架构 v1.0
|
||
|
||
## 0. 文档定位
|
||
|
||
本页定义 HoloLake Era 在多服务器环境中的节点注册、权限网关、一次性授权、部署、灰度、回滚、健康检查、日志审计与自然语言运维方式。
|
||
|
||
核心目标不是让人类学习服务器命令,而是让复杂运维被翻译成可理解、可确认、可撤销的一次性操作。
|
||
|
||
> 人类表达目标,系统生成计划;人类仅授权本次明确操作;服务器执行并返回完整回执。
|
||
>
|
||
|
||
---
|
||
|
||
## 1. 总体架构
|
||
|
||
```
|
||
冰朔自然语言入口
|
||
↓
|
||
意图解析与变更计划
|
||
↓
|
||
风险评估与操作清单
|
||
↓
|
||
邮箱一次性验证码
|
||
↓
|
||
Gatekeeper 临时授权会话
|
||
↓
|
||
API Proxy / Driver Engine
|
||
↓
|
||
节点调度与任务编排
|
||
├── 主节点
|
||
├── 中转节点
|
||
├── 企业灯塔节点
|
||
├── 业务节点
|
||
└── 后续扩展节点
|
||
↓
|
||
部署 / 检查 / 重启 / 迁移 / 回滚
|
||
↓
|
||
GLP 回执 + HLDP 审计记录
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 节点角色
|
||
|
||
```
|
||
Primary Node
|
||
└── 主控制、核心服务、发布协调
|
||
|
||
Relay Node
|
||
└── 网络中转、包分发、跨区域连接
|
||
|
||
Enterprise Lighthouse Node
|
||
└── 企业入口、可信基线、广播与状态展示
|
||
|
||
Application Node
|
||
└── 承载具体业务服务
|
||
|
||
Worker Node
|
||
└── 执行构建、测试、索引、批处理任务
|
||
|
||
Backup Node
|
||
└── 快照、灾备与恢复
|
||
```
|
||
|
||
每个节点必须拥有唯一节点编号、所属区域、职责、可执行动作、健康状态与恢复策略。
|
||
|
||
---
|
||
|
||
## 3. 节点注册结构
|
||
|
||
```yaml
|
||
server_node:
|
||
node_id: "NODE-SG-001"
|
||
name: ""
|
||
region: ""
|
||
role: "primary | relay | lighthouse | application | worker | backup"
|
||
environment: "development | testing | staging | production"
|
||
status: "online | degraded | maintenance | offline"
|
||
services: []
|
||
allowed_actions: []
|
||
health_endpoint: ""
|
||
deploy_channel: ""
|
||
rollback_target: ""
|
||
last_verified_at: ""
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 自然语言操作入口
|
||
|
||
用户不需要输入 Shell、Git 或部署命令。
|
||
|
||
可直接表达:
|
||
|
||
```
|
||
把新版本部署到测试环境
|
||
检查企业灯塔为什么打不开
|
||
升级前先备份
|
||
只重启 API 服务
|
||
把这次修改推到工作分支
|
||
失败就自动回滚
|
||
```
|
||
|
||
系统负责翻译成结构化任务,但在获得授权前不得执行。
|
||
|
||
---
|
||
|
||
## 5. 操作确认单
|
||
|
||
每次授权前,必须向用户展示:
|
||
|
||
```yaml
|
||
operation_preview:
|
||
operation_id: "OP-20260712-001"
|
||
target_project: "hololake-platform"
|
||
target_environment: "testing"
|
||
target_nodes: []
|
||
requested_action: "deploy"
|
||
change_summary: ""
|
||
files_or_services_affected: []
|
||
backup_required: true
|
||
restart_required: false
|
||
database_migration: false
|
||
rollback_strategy: "automatic"
|
||
estimated_duration: ""
|
||
authorization_valid_for: "10m"
|
||
risk_level: "low | medium | high | critical"
|
||
```
|
||
|
||
用户应能用一句话确认或拒绝。
|
||
|
||
---
|
||
|
||
## 6. 一次性授权流程
|
||
|
||
```
|
||
生成操作计划
|
||
→ 服务器登记 operation_id
|
||
→ 向用户邮箱发送验证码
|
||
→ 用户回传验证码
|
||
→ 验证码与 operation_id 匹配
|
||
→ 创建临时授权会话
|
||
→ 仅解锁本次操作范围
|
||
→ 执行后立即失效
|
||
```
|
||
|
||
验证码必须绑定:
|
||
|
||
```
|
||
指定用户
|
||
指定操作
|
||
指定仓库或节点
|
||
指定目录或服务
|
||
指定环境
|
||
指定有效时间
|
||
指定最大执行次数
|
||
指定风险级别
|
||
```
|
||
|
||
验证码不得成为服务器通用通行证。
|
||
|
||
---
|
||
|
||
## 7. Gatekeeper 权限网关
|
||
|
||
Gatekeeper 负责:
|
||
|
||
```
|
||
验证身份
|
||
验证验证码
|
||
验证 operation_id
|
||
验证操作范围
|
||
验证节点范围
|
||
验证目录白名单
|
||
验证服务白名单
|
||
验证环境
|
||
验证过期时间
|
||
验证是否已使用
|
||
阻止越权与重复执行
|
||
```
|
||
|
||
临时会话结构:
|
||
|
||
```yaml
|
||
temporary_session:
|
||
session_id: ""
|
||
operation_id: ""
|
||
user_id: ""
|
||
scope:
|
||
repositories: []
|
||
paths: []
|
||
nodes: []
|
||
services: []
|
||
actions: []
|
||
issued_at: ""
|
||
expires_at: ""
|
||
max_executions: 1
|
||
status: "active | consumed | revoked | expired"
|
||
```
|
||
|
||
---
|
||
|
||
## 8. 允许与禁止动作
|
||
|
||
允许动作应采用固定能力,不开放任意 Shell。
|
||
|
||
```
|
||
允许
|
||
├── 创建工作分支
|
||
├── 写入白名单目录
|
||
├── 提交与推送
|
||
├── 创建合并请求
|
||
├── 拉取指定提交
|
||
├── 构建指定项目
|
||
├── 运行测试
|
||
├── 部署指定服务
|
||
├── 重启指定服务
|
||
├── 读取限定日志
|
||
├── 健康检查
|
||
├── 创建备份
|
||
├── 执行已审核迁移
|
||
└── 回滚到已知版本
|
||
|
||
默认禁止
|
||
├── 任意 Shell 命令
|
||
├── 强推 main
|
||
├── 删除根目录
|
||
├── 修改系统账号
|
||
├── 读取长期密钥
|
||
├── 关闭审计
|
||
├── 清空数据库
|
||
├── 操作未登记节点
|
||
└── 修改授权系统本身
|
||
```
|
||
|
||
---
|
||
|
||
## 9. 灰度发布
|
||
|
||
```
|
||
生成候选版本
|
||
→ 部署到单个测试节点
|
||
→ 健康检查
|
||
→ 自动化测试
|
||
→ 观察窗口
|
||
→ 扩展到小范围节点
|
||
→ 再次验证
|
||
→ 扩展到全部目标节点
|
||
```
|
||
|
||
任何阶段失败,停止后续扩散。
|
||
|
||
---
|
||
|
||
## 10. 部署流水线
|
||
|
||
```
|
||
确认目标提交
|
||
→ 锁定部署包
|
||
→ 备份当前版本
|
||
→ 拉取或接收制品
|
||
→ 配置校验
|
||
→ 数据库迁移预检
|
||
→ 启动新版本
|
||
→ 健康检查
|
||
→ 业务验证
|
||
→ 切换流量
|
||
→ 生成回执
|
||
```
|
||
|
||
生产环境不得直接从未经验证的工作区代码部署。
|
||
|
||
---
|
||
|
||
## 11. 自动回滚
|
||
|
||
触发条件:
|
||
|
||
```
|
||
构建失败
|
||
启动失败
|
||
健康检查失败
|
||
关键接口失败
|
||
错误率超过阈值
|
||
数据库迁移失败
|
||
用户主动叫停
|
||
授权会话被撤销
|
||
```
|
||
|
||
回滚流程:
|
||
|
||
```
|
||
停止新操作
|
||
→ 隔离故障版本
|
||
→ 恢复上一稳定版本
|
||
→ 恢复必要配置或数据快照
|
||
→ 验证核心服务
|
||
→ 返回回滚结果
|
||
→ 写入审计记录
|
||
```
|
||
|
||
---
|
||
|
||
## 12. 健康检查与故障隔离
|
||
|
||
检查内容:
|
||
|
||
```
|
||
节点连通性
|
||
CPU / 内存 / 磁盘
|
||
服务进程
|
||
关键 API
|
||
数据库连接
|
||
队列状态
|
||
证书有效期
|
||
日志错误率
|
||
版本一致性
|
||
时间同步
|
||
```
|
||
|
||
节点异常时:
|
||
|
||
```
|
||
标记 DEGRADED
|
||
→ 停止接收新任务
|
||
→ 从流量池摘除
|
||
→ 保存现场信息
|
||
→ 尝试自动恢复
|
||
→ 失败后通知用户
|
||
```
|
||
|
||
---
|
||
|
||
## 13. 企业灯塔
|
||
|
||
企业灯塔在服务器体系中承担:
|
||
|
||
```
|
||
企业可信入口
|
||
系统状态展示
|
||
版本与基线发布
|
||
广播分发
|
||
节点健康摘要
|
||
重要事件回执
|
||
对外只读窗口
|
||
```
|
||
|
||
灯塔不得直接拥有无限运维权限;它展示可信状态,控制动作仍需经过 Gatekeeper。
|
||
|
||
---
|
||
|
||
## 14. 代码仓库推送通道
|
||
|
||
```
|
||
自然语言需求
|
||
→ 生成变更清单
|
||
→ 生成文件与补丁
|
||
→ 创建 operation_id
|
||
→ 邮箱验证码授权
|
||
→ 创建工作分支
|
||
→ 写入文件
|
||
→ 自动检查
|
||
→ commit
|
||
→ push
|
||
→ 创建 PR
|
||
→ 返回提交链接
|
||
```
|
||
|
||
默认策略:
|
||
|
||
```
|
||
不直接修改 main
|
||
不强推
|
||
不删除未知文件
|
||
单次只改计划内路径
|
||
测试失败不合并
|
||
```
|
||
|
||
---
|
||
|
||
## 15. 服务器操作通道
|
||
|
||
```
|
||
自然语言目标
|
||
→ 生成运维计划
|
||
→ 展示影响范围
|
||
→ 一次性验证码授权
|
||
→ 执行固定能力
|
||
→ 实时状态
|
||
→ 验证结果
|
||
→ 返回回执
|
||
```
|
||
|
||
服务器操作与代码推送使用不同权限范围,不得共用无限权限会话。
|
||
|
||
---
|
||
|
||
## 16. 审计与回执
|
||
|
||
每一次操作必须记录:
|
||
|
||
```yaml
|
||
audit_record:
|
||
operation_id: ""
|
||
requester: ""
|
||
authorizer: ""
|
||
executor: ""
|
||
requested_intent: ""
|
||
normalized_action: ""
|
||
target_nodes: []
|
||
target_repository: ""
|
||
target_commit: ""
|
||
started_at: ""
|
||
completed_at: ""
|
||
result: "success | partial | failed | rolled_back"
|
||
changed_resources: []
|
||
logs: []
|
||
receipt_id: ""
|
||
```
|
||
|
||
HLDP 保存历史过程,GLP 返回机器可读回执,用户看到人类可理解摘要。
|
||
|
||
---
|
||
|
||
## 17. 与 HoloLake Era 的关系
|
||
|
||
```
|
||
HoloLake Era
|
||
├── 自然语言入口
|
||
├── ISRP 意图解析
|
||
├── 一次性授权系统
|
||
├── Gatekeeper
|
||
├── Driver Engine
|
||
├── 分布式节点注册
|
||
├── 部署与回滚
|
||
├── 企业灯塔
|
||
├── GLP 回执
|
||
└── HLDP 审计
|
||
```
|
||
|
||
这套体系是 HoloLake Era 从“对话”进入“真实工程执行”的核心桥梁。
|
||
|
||
---
|
||
|
||
## 18. 最终定义
|
||
|
||
> HoloLake Era 分布式服务器控制与自然语言运维架构,是一套以自然语言表达目标、以一次性验证码完成明确授权、以固定能力安全执行、以灰度和回滚控制风险、以完整审计保证可追溯的分布式工程控制系统。
|
||
>
|
||
|
||
它的目标不是让用户成为程序员或运维工程师,而是让用户能够理解并掌控每一次真实系统变更。 |