VOPS + OSS + CDN 静态资源技术方案落地

31 阅读3分钟

VOPS 是统一的前端构建与发布平台,负责代码构建、版本管理、环境晋级、发布审批与回滚控制,本身不承载业务流量。

OSS(Object Storage Service)是静态资源的统一存储与源站服务,负责承载前端构建产物、媒体资源与备份数据,通过 CDN 对外提供高可用、高性能的访问能力。

CDN(Content Delivery Network)是前端静态资源的访问与加速层,负责将 OSS 中的静态资源高效、稳定地分发到用户就近节点,并提供缓存、回源、协议优化等能力。

背景与目标

1.1 背景

  • 现有前端静态资源依赖 MFS / NFS + rsync 同步
  • 发布链路长、耦合重,SSR 启动依赖资源同步
  • CDN、媒体处理、性能优化能力受限

1.2 建设目标

  • 构建与部署解耦,测试环境打包即发布
  • OSS 成为唯一静态资源源站
  • 支持多环境(beta / prod)
  • 提升性能、稳定性与可运维性

总体架构设计

2.1 架构总览

┌──────────┐
│   Git    │
└────┬─────┘
     │
┌────▼─────┐
│   VOPS   │  构建 / 发布 / 回滚
└────┬─────┘
     │ OSS Client
┌────▼─────────────────────┐
│        OSS Bucket         │  单 Bucket 多目录
│  /beta/web                │
│  /prod/web                │
└────┬──────────────┬───────┘
     │              │
┌────▼─────┐   ┌────▼─────┐
│  CDN A   │   │  CDN B   │  双 CDN
└────┬─────┘   └────┬─────┘
     │              │
     └──────┬───────┘
            │
        ┌───▼───┐
        │Browser│
        └───────┘

部署流程设计

3.1 环境发布策略总览

环境发布策略是否需要审批
测试环境(beta)构建完成后自动发布
生产环境(prod)构建完成后待审批,人工触发部署

该策略用于:

  • 提高测试环境交付效率
  • 降低生产环境发布风险

3.2 测试环境(beta)发布流程

Git 提交
   ↓
VOPS 构建(build)
   ↓
构建成功
   ↓
自动发布
   ↓
OSS /beta/web

特点:

  • 构建即发布
  • 无人工介入
  • 适合高频验证与联调

3.3 生产环境(prod)发布流程

Git 提交
   ↓
VOPS 构建(build)
   ↓
构建成功(待发布态)
   ↓
人工审批
   ↓
点击部署
   ↓
OSS /prod/web

审批通过后:

  • 由 VOPS 统一执行部署动作
  • 支持指定版本发布与回滚

3.4 OSS Client 替代 rsync

  • 发布阶段使用 OSS Client(sync / copy)
  • 替代传统 rsync + MFS/NFS
  • 构建产物直接进入 OSS

OSS 资源组织方案

4.1 Bucket 与目录结构

oss://web-bucket/
├── beta/
│   └── web/
│       ├── index.html
│       └── assets/
├── prod/
│   └── web/
│       ├── index.html
│       └── assets/
└── backup/

4.2 多环境隔离策略

  • 同 Bucket,不同目录
  • 环境晋级仅做资源复制

SSR 项目支持策略

5.1 架构原则

  • SSR 只渲染 HTML
  • 静态资源 hash 化,完全走 OSS + CDN
SSR Server ── HTML
OSS        ── JS / CSS / IMG

5.2 收益

  • pm2 启动不依赖资源同步
  • SSR 发布风险降低

环境晋级与同步机制

6.1 beta → prod 策略

  • 不重新 build
  • 通过 VOPS 执行资源复制

6.2 同步方式

  • rsync / oss copy / oss sync
  • 具体实现对业务透明

数据备份与灾备设计

7.1 双备份机制

VOPSOSS(主) → MSF(备份)

7.2 MSF 职责

  • 不参与在线访问
  • 灾备与审计

域名与回源策略

8.1 新域名

  • 直接回源 OSS

8.2 新旧域名共存

  • 保持一致 URL Path
  • 支持 CDN 快速切换回源至 MFS

Nginx 配置管理

  • 旧域名 Nginx 配置同步至 OSS
  • 用于备份与回源参考

安全与权限设计

10.1 OSS Key 分离

使用方权限
VOPS可读写
Node 网关只读

10.2 安全原则

  • 前端无写权限
  • Key 不复用

CDN 双活设计

11.1 双 CDN 架构

  • 阿里 CDN
  • GCP CDN

11.2 配置一致性要求

  • Cache-Control
  • QueryString 缓存
  • gzip / brotli
  • HTTP/2

项目收益评估

12.1 性能收益

  • WebP / 媒体云能力
  • CDN 强缓存

12.2 稳定性提升

  • OSS 高可用
  • 去除 NFS 单点

12.3 运维收益

  • 发布解耦
  • 支持快速回滚与切源

总结

通过 VOPS + OSS + CDN 的云原生静态资源架构,实现前端发布链路解耦、性能提升与高可用保障,为后续业务增长和多云部署奠定基础。