294 lines
8.2 KiB
Markdown
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 开发组
|