Files
OrpaonVision/A2-PRODUCTION-README.md
2026-04-12 22:34:46 +08:00

294 lines
8.2 KiB
Markdown

# Agent-2 (A2) 生产部署指南
## 🚀 部署前检查清单
### 1. 环境要求
- ✅ .NET 8.0 Runtime
- ✅ Windows Server 2019+ 或 Windows 10+
- ✅ SQL Server Express 2019+ (如使用持久化)
- ✅ 足够的内存和存储空间
### 2. 依赖验证
```bash
# 验证所有依赖项
dotnet list OrpaonVision.SiteApp package
# 检查安全漏洞
dotnet list OrpaonVision.SiteApp package --vulnerable --include-transitive
```
### 3. 配置文件检查
确保 `appsettings.json` 包含必要的配置:
```json
{
"Runtime": {
"TotalLayers": 10,
"MaxRetries": 3,
"TimeoutSeconds": 30,
"EnableAutoRecovery": true,
"AutoClearIntervalSeconds": 30
},
"Logging": {
"LogLevel": {
"OrpaonVision.SiteApp.Runtime.Services": "Information",
"OrpaonVision.SiteApp.Runtime.Services.AdvancedRuleEngineService": "Debug",
"OrpaonVision.SiteApp.Runtime.Services.AdvancedRuntimeStateMachineService": "Debug",
"OrpaonVision.SiteApp.Runtime.Services.ManualOverrideService": "Information",
"OrpaonVision.SiteApp.Runtime.Services.AlarmSystemService": "Warning"
}
},
"AllowedHosts": "*"
}
```
## 🔧 服务配置
### 依赖注入注册
`Program.cs` 中确保正确注册所有服务:
```csharp
// 添加运行时选项
builder.Services.Configure<OrpaonVision.SiteApp.Runtime.Options.RuntimeOptions>(
builder.Configuration.GetSection("Runtime"));
// 注册Agent-2负责的服务
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Services.IRuleEngineService,
OrpaonVision.SiteApp.Runtime.Services.AdvancedRuleEngineService>();
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Services.IRuntimeStateMachineService,
OrpaonVision.SiteApp.Runtime.Services.AdvancedRuntimeStateMachineService>();
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Services.IManualOverrideService,
OrpaonVision.SiteApp.Runtime.Services.ManualOverrideService>();
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Services.IAlarmSystemService,
OrpaonVision.SiteApp.Runtime.Services.AlarmSystemService>();
```
### 健康检查配置
```csharp
// 添加健康检查
builder.Services.AddHealthChecks()
.AddCheck<OrpaonVision.SiteApp.Runtime.Services.RuleEngineHealthCheck>("rule-engine")
.AddCheck<OrpaonVision.SiteApp.Runtime.Services.StateMachineHealthCheck>("state-machine")
.AddCheck<OrpaonVision.SiteApp.Runtime.Services.AlarmSystemHealthCheck>("alarm-system");
```
## 📊 监控配置
### 性能计数器
```csharp
// 添加性能监控
builder.Services.AddMetrics();
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Metrics.IRuleEngineMetrics,
OrpaonVision.SiteApp.Runtime.Metrics.RuleEngineMetrics>();
builder.Services.AddSingleton<OrpaonVision.SiteApp.Runtime.Metrics.IStateMachineMetrics,
OrpaonVision.SiteApp.Runtime.Metrics.StateMachineMetrics>();
```
### 日志配置
```json
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"OrpaonVision.SiteApp.Runtime.Services": "Debug"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/orpaonvision-.log",
"rollingInterval": "Day",
"retainedFileCountLimit": 30
}
},
{
"Name": "Console"
}
]
}
}
```
## 🛡️ 安全配置
### 权限配置
```csharp
// 添加授权策略
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("Operator", policy =>
policy.RequireRole("Operator", "Supervisor", "Administrator"));
options.AddPolicy("Supervisor", policy =>
policy.RequireRole("Supervisor", "Administrator"));
options.AddPolicy("Administrator", policy =>
policy.RequireRole("Administrator"));
});
```
### 审计日志
```json
{
"Audit": {
"Enabled": true,
"LogLevel": "Information",
"LogToFile": true,
"LogToDatabase": true,
"RetentionDays": 90
}
}
```
## 🧪 部署验证
### 1. 基础功能验证
```powershell
# 启动服务
dotnet OrpaonVision.SiteApp.dll
# 验证健康检查
curl http://localhost:5000/health
# 验证服务状态
curl http://localhost:5000/api/runtime/status
```
### 2. 规则引擎验证
```powershell
# 测试规则评估
curl -X POST http://localhost:5000/api/rules/evaluate `
-H "Content-Type: application/json" `
-d '{"sessionId":"test-session","inference":{"detections":[{"className":"product","confidence":0.9}]}}'
```
### 3. 状态机验证
```powershell
# 测试状态转换
curl -X POST http://localhost:5000/api/state/trigger `
-H "Content-Type: application/json" `
-d '{"trigger":"Initialize","reason":"系统初始化"}'
```
### 4. 人工干预验证
```powershell
# 测试人工干预
curl -X POST http://localhost:5000/api/override/execute `
-H "Content-Type: application/json" `
-d '{"sessionId":"test-session","operatorId":"admin","overrideType":"Release","reason":"测试放行"}'
```
### 5. 报警系统验证
```powershell
# 测试报警触发
curl -X POST http://localhost:5000/api/alarms/trigger `
-H "Content-Type: application/json" `
-d '{"alarmType":"RuleViolation","alarmLevel":"High","title":"测试报警","sessionId":"test-session"}'
```
## 📈 性能基准
### 预期性能指标
| 指标 | 目标值 | 说明 |
|------|--------|------|
| 规则评估延迟 | < 100ms | 单次规则评估 |
| 状态转换延迟 | < 50ms | 状态机转换 |
| 人工干预延迟 | < 200ms | 包含权限检查 |
| 报警触发延迟 | < 150ms | 报警生命周期 |
| 内存使用 | < 512MB | 稳定运行状态 |
| CPU使用率 | < 30% | 正常负载下 |
### 压力测试
```powershell
# 并发规则评估测试
for ($i=1; $i -le 100; $i++) {
Start-Job -ScriptBlock {
curl -X POST http://localhost:5000/api/rules/evaluate `
-H "Content-Type: application/json" `
-d '{"sessionId":"test-session-' + $i + '","inference":{"detections":[{"className":"product","confidence":0.9}]}}'
}
}
# 等待所有任务完成
Get-Job | Wait-Job | Receive-Job
```
## 🔧 故障排除
### 常见问题
#### 1. 服务启动失败
**症状**: 服务无法启动,报依赖注入错误
**解决**: 检查所有服务是否正确注册,验证配置文件格式
#### 2. 状态转换失败
**症状**: 状态转换返回错误
**解决**: 检查守卫条件,验证当前状态是否允许转换
#### 3. 权限检查失败
**症状**: 人工干预权限不足
**解决**: 检查用户角色配置,验证权限策略设置
#### 4. 报警不触发
**症状**: 规则失败但不触发报警
**解决**: 检查报警服务配置,验证规则与报警的关联
### 日志分析
```powershell
# 查看错误日志
Get-Content "logs/orpaonvision-*.log" | Select-String "ERROR"
# 查看性能日志
Get-Content "logs/orpaonvision-*.log" | Select-String "Performance"
# 查看审计日志
Get-Content "logs/orpaonvision-*.log" | Select-String "Audit"
```
## 📋 维护指南
### 日常维护
1. **日志清理**: 定期清理过期日志文件
2. **性能监控**: 监控关键性能指标
3. **备份策略**: 定期备份配置和数据
4. **安全更新**: 及时更新依赖包和系统补丁
### 升级流程
1. **备份数据**: 备份当前配置和数据
2. **停止服务**: 优雅停止所有服务
3. **更新代码**: 部署新版本代码
4. **验证功能**: 执行功能验证测试
5. **监控观察**: 观察系统运行状态
## 🚨 应急响应
### 服务不可用
1. **检查服务状态**: 验证服务是否正常运行
2. **查看日志**: 分析错误日志定位问题
3. **重启服务**: 必要时重启相关服务
4. **回滚版本**: 严重问题时回滚到稳定版本
### 性能问题
1. **监控指标**: 检查CPU、内存、网络使用情况
2. **分析日志**: 查找性能瓶颈相关日志
3. **优化配置**: 调整配置参数
4. **扩容资源**: 必要时增加系统资源
## 📞 支持联系
### 技术支持
- **开发团队**: Agent-2开发组
- **文档参考**: A2-DELIVERABLES.md, A2-VERIFICATION.md
- **问题反馈**: 通过项目管理系统提交
### 紧急联系
- **24小时值班**: [值班电话]
- **紧急响应**: [紧急联系人]
- **故障升级**: [升级流程]
---
**文档版本**: 1.0
**最后更新**: 2026年4月1日
**维护团队**: Agent-2 开发组