8.2 KiB
8.2 KiB
Agent-2 (A2) 生产部署指南
🚀 部署前检查清单
1. 环境要求
- ✅ .NET 8.0 Runtime
- ✅ Windows Server 2019+ 或 Windows 10+
- ✅ SQL Server Express 2019+ (如使用持久化)
- ✅ 足够的内存和存储空间
2. 依赖验证
# 验证所有依赖项
dotnet list OrpaonVision.SiteApp package
# 检查安全漏洞
dotnet list OrpaonVision.SiteApp package --vulnerable --include-transitive
3. 配置文件检查
确保 appsettings.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 中确保正确注册所有服务:
// 添加运行时选项
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>();
健康检查配置
// 添加健康检查
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");
📊 监控配置
性能计数器
// 添加性能监控
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>();
日志配置
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"OrpaonVision.SiteApp.Runtime.Services": "Debug"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/orpaonvision-.log",
"rollingInterval": "Day",
"retainedFileCountLimit": 30
}
},
{
"Name": "Console"
}
]
}
}
🛡️ 安全配置
权限配置
// 添加授权策略
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"));
});
审计日志
{
"Audit": {
"Enabled": true,
"LogLevel": "Information",
"LogToFile": true,
"LogToDatabase": true,
"RetentionDays": 90
}
}
🧪 部署验证
1. 基础功能验证
# 启动服务
dotnet OrpaonVision.SiteApp.dll
# 验证健康检查
curl http://localhost:5000/health
# 验证服务状态
curl http://localhost:5000/api/runtime/status
2. 规则引擎验证
# 测试规则评估
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. 状态机验证
# 测试状态转换
curl -X POST http://localhost:5000/api/state/trigger `
-H "Content-Type: application/json" `
-d '{"trigger":"Initialize","reason":"系统初始化"}'
4. 人工干预验证
# 测试人工干预
curl -X POST http://localhost:5000/api/override/execute `
-H "Content-Type: application/json" `
-d '{"sessionId":"test-session","operatorId":"admin","overrideType":"Release","reason":"测试放行"}'
5. 报警系统验证
# 测试报警触发
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% | 正常负载下 |
压力测试
# 并发规则评估测试
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. 报警不触发
症状: 规则失败但不触发报警 解决: 检查报警服务配置,验证规则与报警的关联
日志分析
# 查看错误日志
Get-Content "logs/orpaonvision-*.log" | Select-String "ERROR"
# 查看性能日志
Get-Content "logs/orpaonvision-*.log" | Select-String "Performance"
# 查看审计日志
Get-Content "logs/orpaonvision-*.log" | Select-String "Audit"
📋 维护指南
日常维护
- 日志清理: 定期清理过期日志文件
- 性能监控: 监控关键性能指标
- 备份策略: 定期备份配置和数据
- 安全更新: 及时更新依赖包和系统补丁
升级流程
- 备份数据: 备份当前配置和数据
- 停止服务: 优雅停止所有服务
- 更新代码: 部署新版本代码
- 验证功能: 执行功能验证测试
- 监控观察: 观察系统运行状态
🚨 应急响应
服务不可用
- 检查服务状态: 验证服务是否正常运行
- 查看日志: 分析错误日志定位问题
- 重启服务: 必要时重启相关服务
- 回滚版本: 严重问题时回滚到稳定版本
性能问题
- 监控指标: 检查CPU、内存、网络使用情况
- 分析日志: 查找性能瓶颈相关日志
- 优化配置: 调整配置参数
- 扩容资源: 必要时增加系统资源
📞 支持联系
技术支持
- 开发团队: Agent-2开发组
- 文档参考: A2-DELIVERABLES.md, A2-VERIFICATION.md
- 问题反馈: 通过项目管理系统提交
紧急联系
- 24小时值班: [值班电话]
- 紧急响应: [紧急联系人]
- 故障升级: [升级流程]
文档版本: 1.0
最后更新: 2026年4月1日
维护团队: Agent-2 开发组