跳到主要内容

阶段 C / D 路线图(历史记录,含 r-server + py-server)

2026-06-12 更新:阶段 A+B 已完成,但当前中心库是 ECS Docker PostgreSQL (biof3-pg),不是阿里云托管 RDS。近期不迁托管 RDS;控制面收敛以 docs/ops/ECS-PLATFORM-CONVERGENCE-PLAN.md 为准。 2026-06-13 更新:本文是历史路线图。当前定稿是 /api/platform/* 由 ECS platform 承担;Dell 保留 r/py API compatibility

  • workers + R/Python Docker,不把 py-server / R Docker 迁到 ECS。 继续工作请以 docs/ops/ECS-PLATFORM-CONVERGENCE-PLAN.md 为准。

ECS 上目录(当前 BioF3 vs 历史,勿混)

路径说明
/opt/biof3-tutorial/current-site当前静态站(deploy.sh --site
/opt/biof3-r-server阶段 C:r-server API(C1)
/opt/biof3/opt/halo历史项目,与当前 BioF3 无关 — 勿当部署/改配置目标

1. 现在三台「逻辑服务」都在 Dell

进程端口(典型)角色资源特点
biof3-r-server3001主 API:登录、单细胞云、Copilot、调 RNode 轻~中;Copilot 并发
biof3-py-server3002空间/ Python 任务 API、调 biof3-python 容器Node 轻;算力在 Python 容器(可达 96G)
R 容器DockerSeurat/ggplot 等内存大户
Python 容器Dockercell2location / Tangram 等内存大户

用户访问路径今天:

biof3.com (ECS nginx)
├─ /api/r/* ──frp──► Dell:3001 (r-server)
└─ /api/py/* ──frp──► Dell:3002 (py-server) # 若 nginx 已配

阶段 C/D 必须同时考虑 py-server:不能只迁 r-server,否则空间分析仍绑在 Dell 的 API 入口 上。


2. 目标架构(阶段 D 结束态)

flowchart TB
U[用户] --> ECS

subgraph ECS["阿里云 ECS · 控制面"]
WEB[静态站]
NGX[nginx]
RAPI[biof3-r-server 或合并网关]
PYGW[py 路由 / 或轻量 BFF]
end

subgraph Data["阿里云数据"]
PG[(ECS Docker PostgreSQL<br/>biof3-pg)]
OSS[(OSS)]
end

subgraph Dell["Dell · 算力面"]
RPOOL[R Docker]
PYPOOL[Python Docker]
WR[Worker: 执行队列任务<br/>可选与 r/py 进程合并]
end

U --> WEB
NGX --> RAPI
NGX --> PYGW
RAPI -->|本机 / Docker 网络| PG
RAPI --> OSS
RAPI -->|内网/专线| Dell
PYGW -->|内网/专线| Dell
Dell --> PG
Dell --> OSS
组件阶段 D 应在哪
页面、nginxECS
r-server(鉴权、项目、Copilot 网关、入队)ECS
py-server(历史草案)旧建议曾考虑上 ECS;当前定稿保留在 Dell:3002 作为算力入口
R / Python 实际执行Dell(或未来阿里云大内存 Worker)
PostgreSQL / OSSECS Docker PostgreSQL / OSS

3. 阶段 C 与 D 划分

阶段 C —「API 上云,算力留 Dell」

序号任务说明
C1ECS 与 PostgreSQL 同机当前 biof3-pg 已在 ECS;API 用 127.0.0.1:5432,Dell 通过 autossh 转发连接
C2ECS 部署 biof3-r-serverDATABASE_URLBIOF3_P2_PG=1跑 R 容器
C3nginx 灰度(历史)旧草案曾考虑 /api/r/ 上 ECS;当前定稿是 /api/r/ 反代到 Dell 算力入口
C4Dell r-server 降级(历史)当前 Dell biof3-r-server 保留 api 模式作为算力兼容入口,执行由 worker 承担
C5py-server 策略(历史)当前定稿是 /api/py/ 保留 Dell:3002 算力入口,不把 Python Docker 迁到 ECS
C6服务间鉴权Dell Worker 只接受 ECS 来的 BIOF3_API_TOKEN / 内网 IP
C7验收登录、单细胞任务、Copilot、空间/py 任务 全链路

阶段 D —「Dell 纯 Worker」(历史草案)

序号任务说明
D1任务队列统一分析任务:ECS platform 写 PG analyses + 推队列;Dell 消费并调 R/Python
D2去掉 Dell 对公网 API(历史)当前保留 /api/r/*/api/py/* 到 Dell 的算力入口
D3数据库连接收敛保护 ECS PostgreSQL;Dell 仅通过受控隧道/内部网络连接,不暴露数据库公网面
D4py-server 本地 DBpyserver.db 若仍用:迁 PG 或保留 Dell 仅作任务状态(需单独评估)
D5监控与扩容ECS API 水平扩展;Dell 按 R/Python 内存加机器或升配

4. py-server 阶段 C 要注意什么

建议
端口生产 PY_SERVER_PORT=3002
Dockerbiof3-python 容器 留在 Dell(96G 那台),ECS 上不跑 Python 重镜像
API 迁 ECS 后历史方案;当前不执行
nginx当前 /api/py/ → Dell:3002 算力入口
envpy-server/.env:OSS、BIOF3_API_TOKENDATABASE_URL(py 任务元数据进 PG)
与 r-server共用同一 JWT_SECRET / 用户体系(PG users

5. 推荐实施顺序(你说「接下来就搞定」)

周 1 — 准备
□ 确认 ECS 规格(2C8G 起,API 专用)
□ 确认 biof3-pg 数据卷 + pg_dump 备份 + 恢复演练
□ 文档化当前 nginx / frp 配置(备份)

周 2 — 阶段 C(r-server)
□ 历史方案:ECS 安装 Node、pm2、部署 r-server(同仓库 r-server/)
□ 历史方案:环境变量从 Dell /etc/biof3.env 复制
□ 健康检查 /api/health
□ nginx 10% 流量或仅 admin 域名试切

周 3 — 阶段 C(py-server)
□ 历史方案:ECS 部署 py-server(不启 Docker Python)
□ 当前不执行:nginx /api/py/ → ECS:3002
□ Dell 保留 Python 容器;py-server 在 ECS 调 Dell Worker URL
□ 跑一条空间分析回归

周 4 — 阶段 D
□ frp 关闭 API 映射
□ Dell 仅 Worker + 双容器
□ PostgreSQL 不暴露公网面;Dell 通过受控转发连接
□ 压测与回滚预案

6. 风险与回滚

风险缓解
ECS 与 Dell 内网不通先 VPN/专线或临时保留 frp 仅内网隧道
Copilot 延迟ECS platform 与 PostgreSQL 同机 / 同 Docker 网络;LLM 仍走公网 API
Python 任务失败阶段 C 保留 Dell:3002 并行,灰度切换
双写 API不要 长时间 ECS+Dell 同时对外写 PG

回滚:nginx 指回 frp → Dell;pm2 启 Dell r-server/py-server。


7. 相关命令(现有)

# r-server
./deploy.sh --push r-server/...
./deploy.sh --health

# py-server(仍在 Dell)
./deploy.sh --py-deploy
./deploy.sh --py-health
./deploy.sh --py-logs

阶段 C 完成后可新增:./deploy.sh --api-ecs-deploy(待实现)。


8. 相关文档

AI 组学实践

让 AI 带我实战这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步带你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。