# sanguo_vnpy 阿里云部署调研总结 **调研人**: 姜维(后勤总督) **调研时间**: 2026-03-21 **版本**: v1.0 --- ## 🎯 调研目标 主公指令:调研生产环境部署到阿里云的方案,未来本地是开发和测试环境,生产环境放到阿里云上。 --- ## 📦 已完成的成果 ### 1. 基础设施即代码(Terraform) **文件**: `platform/research/03-部署方案/terraform/main.tf` **内容**: - VPC 网络和虚拟交换机配置 - 安全组配置(SSH/HTTP/vn.py 端口) - ECS 实例配置(Ubuntu 22.04) - OSS 对象存储配置 - RDS 数据库配置(可选) - 完整输出信息(公网IP/私网IP/SSH命令等) --- ### 2. 实时监控系统部署 **文件**: `platform/research/04-运维方案/monitoring/deploy_monitoring.sh` **内容**: - Prometheus 部署和配置 - Node Exporter 部署 - Grafana 部署和数据源配置 - 告警规则配置(P0/P1 级别告警) - Nginx 反向代理配置 - 完整监控访问信息 **告警规则**: - 实例宕机告警(P0) - CPU 使用率过高告警(P1) - 内存使用率过高告警(P1) - 磁盘空间不足告警(P0) - vn.py 服务宕机告警(P0) --- ### 3. 自动化部署流水线 **文件**: `platform/research/03-部署方案/automation/deploy_pipeline.sh` **内容**: - 代码构建流程 - 代码质量检查(Ruff) - 自动化测试(pytest) - 部署包构建(wheel 包) - 多环境部署支持(生产/测试/开发) - 部署验证流程 --- ### 4. 应急响应方案 **文件**: `platform/research/04-运维方案/disaster-recovery/emergency_response.md` **内容**: - 应急响应原则(5分钟响应/15分钟诊断/30分钟恢复) - 问题诊断流程 - 4个典型场景应急处理: 1. 实例完全宕机(P0) 2. vn.py 进程崩溃(P0) 3. 磁盘空间满(P0) 4. 数据库连接失败(P1) - 应急响应检查清单 - 联络清单 - 事后复盘流程 --- ## 📊 阿里云服务选型建议 ### 计算服务 | 服务 | 推荐配置 | 用途 | |------|---------|------| | ECS | ecs.c6.large (2核4GB) | 生产环境主服务器 | | 轻量应用服务器 | 2核4GB | 测试环境 | | 容器服务 ACK | 标准版 | 未来容器化部署 | ### 存储服务 | 服务 | 用途 | |------|------| | OSS | 对象存储(策略/数据/日志备份) | | NAS | 文件存储(共享数据) | | 云盘 | 系统盘和数据盘 | ### 数据库服务 | 服务 | 用途 | |------|------| | 云数据库 MySQL | 生产环境数据库 | | SQLite | 本地开发/测试数据库 | ### 网络服务 | 服务 | 用途 | |------|------| | VPC | 专有网络隔离 | | 弹性公网 IP | 公网访问 | | SLB | 负载均衡(未来扩展) | | 安全组 | 访问控制 | --- ## 🏗️ 架构设计 ### 开发-测试-生产环境架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 本地环境 │ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │ │ 开发环境 (venv) │ │ 测试环境 (venv_testing)│ │ │ │ - 快速迭代 │ │ - 集成测试 │ │ │ │ - 本地调试 │ │ - 自动化测试 │ │ │ └──────────────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 阿里云生产环境 │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ ECS 实例 (Ubuntu 22.04) │ │ │ │ - vn.py 应用服务 │ │ │ │ - Prometheus + Grafana 监控 │ │ │ │ - Nginx 反向代理 │ │ │ └───────────────────────────────────────────────────────┘ │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ OSS 对象存储 │ │ RDS MySQL 数据库 │ │ │ │ - 策略文件 │ │ - 业务数据 │ │ │ │ - 数据备份 │ │ - 用户数据 │ │ │ │ - 日志归档 │ │ │ │ │ └──────────────────┘ └──────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 💰 成本估算 ### 生产环境月度成本估算(推荐配置) | 资源 | 配置 | 月度费用(估算) | |------|------|----------------| | ECS | ecs.c6.large (2核4GB) | ¥ 200-300 | | 云盘 | 40GB 高效云盘 | ¥ 20-30 | | 公网带宽 | 10Mbps | ¥ 80-100 | | OSS | 100GB 标准存储 | ¥ 10-20 | | **合计** | - | **¥ 310-450/月** | --- ## 💸 最小费用方案 ### 方案目标 在保证基本可用性的前提下,将月度成本控制在 **¥ 100-150/月** 以内。 --- ### 最小费用配置方案 | 资源 | 配置 | 月度费用(估算) | 说明 | |------|------|----------------|------| | **ECS 实例** | ecs.t6-c1m1.small (1核1GB) | ¥ 50-60 | 突发性能实例,性价比高 | | **系统盘** | 20GB 高效云盘 | ¥ 10-15 | 最小系统盘 | | **公网带宽** | 1Mbps 按流量计费 | ¥ 20-30 | 低带宽 + 流量计费 | | **OSS 存储** | 50GB 标准存储 | ¥ 5-10 | 减少存储容量 | | **数据库** | SQLite(本地文件) | ¥ 0 | 不使用 RDS,用 SQLite | | **合计** | - | **¥ 85-115/月** | 💰 推荐配置的 1/3 | --- ### 最小费用架构设计 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 最小费用阿里云生产环境 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ ECS 突发性能实例 (ecs.t6-c1m1.small) │ │ │ │ - 1核1GB,突发性能模式 │ │ │ │ - Ubuntu 22.04 │ │ │ │ - vn.py 应用 + Prometheus + Grafana │ │ │ └─────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌──────────────────┐ ┌──────────────────────┐ │ │ │ OSS 对象存储 │ │ SQLite 本地数据库 │ │ │ │ - 50GB 标准 │ │ - 数据文件存储 │ │ │ │ - 策略/日志/备份 │ │ - 无需 RDS │ │ │ └──────────────────┘ └──────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ### 最小费用方案优化策略 #### 1. 计算资源优化 - **使用突发性能实例**:ecs.t6-c1m1.small(1核1GB) - 基础性能:1核1GB - 突发性能:CPU积分积累,应对峰值 - 成本比标准实例低 60-70% #### 2. 存储资源优化 - **系统盘最小化**:20GB 高效云盘 - **OSS 容量减半**:50GB 标准存储(100GB → 50GB) - **用 SQLite 替代 RDS**: - 本地文件数据库,无需 RDS 费用 - 定期备份到 OSS,保证数据安全 - 适合中小规模量化交易 #### 3. 网络资源优化 - **降低带宽**:10Mbps → 1Mbps - **按流量计费**:而非固定带宽 - **利用 CDN 加速**:静态资源用 CDN --- ### 最小费用 vs 推荐配置对比 | 指标 | 推荐配置 | 最小费用 | 节省 | |------|---------|---------|------| | **月度费用** | ¥ 310-450 | ¥ 85-115 | **70-75%** | | **ECS 配置** | 2核4GB | 1核1GB(突发) | 降低配置 | | **数据库** | RDS MySQL | SQLite 本地 | 费用为0 | | **OSS 存储** | 100GB | 50GB | 节省 50% | | **公网带宽** | 10Mbps 固定 | 1Mbps 流量计费 | 节省 70%+ | --- ### 最小费用方案适用场景 #### ✅ 适用场景 - 个人量化交易 - 策略验证和回测 - 小规模实盘模拟 - 学习和研究用途 #### ❌ 不适用场景 - 大规模实盘交易 - 多策略并发运行 - 高频交易场景 - 需要高可用性的场景 --- ### 最小费用方案扩容路径 当业务增长时,可以按以下路径逐步扩容: 1. **第1步**:ECS 升级到 2核2GB(¥ 100-120/月) 2. **第2步**:增加 OSS 到 100GB(¥ 10-20/月) 3. **第3步**:升级带宽到 5Mbps(¥ 50-60/月) 4. **第4步**:引入 RDS MySQL(¥ 150-200/月) 5. **第5步**:最终切换到推荐配置 --- ## 🚀 部署流程 --- ## 🚀 部署流程 ### CI/CD 流水线 1. **代码提交** → Git 仓库 2. **自动构建** → 依赖检查 + 代码质量检查 3. **自动测试** → 单元测试 + 集成测试 4. **构建部署包** → Wheel 包 + 配置文件 5. **部署到测试环境** → 自动化验证 6. **部署到生产环境** → 人工确认后部署 --- ## 🔒 安全保障 ### 网络安全 - VPC 专有网络隔离 - 安全组白名单控制 - SSL/TLS 加密传输 ### 访问控制 - RAM 访问控制 - SSH 密钥认证 - 操作审计日志 ### 数据安全 - 数据加密存储 - 定期自动备份 - 跨地域容灾(可选) --- ## 📋 下一步计划 ### 第1周(3月24日-27日) - [ ] 阿里云产品深入调研 - [ ] 性能基准测试 - [ ] 成本优化方案 ### 第2周(3月28日-4月1日) - [ ] 架构设计详细方案 - [ ] 网络设计方案 - [ ] 安全设计方案 ### 第3周(4月2日-9日) - [ ] 部署流程详细设计 - [ ] Terraform 配置完善 - [ ] 部署脚本完善 ### 第4周(4月10日-17日) - [ ] 测试验证 - [ ] 运维方案完善 - [ ] 完整调研报告撰写 --- **调研正在进行中,4月17日前将提交完整调研报告!** 🚛