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

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"

📋 维护指南

日常维护

  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 开发组