部署与上线
2.9K字·8分钟·
CloudBase/EdgeOne集成、一键部署、生产环境
引言
代码写完了,怎么让用户用上?
传统部署流程:构建 → 上传 → 配置 → 重启 → 验证。每一步都可能出错,每一步都需要手动操作。
CodeBuddy 把这个流程简化为一个命令:/deploy。
一、三种部署平台对比
1.1 平台概览
| 平台 | 适用场景 | 特点 | 费用 |
|---|---|---|---|
| CloudBase | 全栈应用 | 云开发一体化,含数据库 | 按量计费 |
| EdgeOne Pages | 静态/前端 | CDN 加速,全球节点 | 免费额度 |
| CloudBase | Serverless | 云开发,无需服务器 | 按量计费 |
| Tencent Lighthouse | 服务端应用 | 完整运行环境,适合生产 | 按配置计费 |
| CloudStudio | 预览/测试 | 沙盒环境,分享链接 | 免费 |
1.2 选择建议
个人博客/静态站 → EdgeOne Pages(免费、快)
API 服务/后端 → Tencent Lighthouse(完整环境)
Serverless 应用 → CloudBase(无需管理服务器)
全栈应用(有后端)→ CloudBase(含数据库)
快速预览/Demo → CloudStudio(即时分享)
企业级生产环境 → 自建服务器 + Docker
二、部署流程详解
2.1 自动部署
# 在 CodeBuddy IDE 中
/deploy
# 或自然语言
帮我把项目部署到 EdgeOne
AI 自动执行:
✅ Step 1/5: 代码检查
- 运行 lint 检查
- 确认无严重错误
✅ Step 2/5: 构建
- npm run build
- 构建产物:234KB (gzip: 78KB)
✅ Step 3/5: 上传
- 上传到 EdgeOne Pages
- 12 个文件,耗时 3.2s
✅ Step 4/5: 配置
- 设置自定义域名
- 配置 HTTPS 证书
✅ Step 5/5: 验证
- HTTP 200 ✅
- 首屏加载 1.2s ✅
🎉 部署成功!
访问地址:https://my-app.edgeone.app
2.2 手动部署(自建服务器)
# 构建
npm run build
# 上传到服务器
rsync -avz ./dist/ ubuntu@server:/opt/my-app/
# SSH 重启服务
ssh ubuntu@server "cd /opt/my-app && pm2 restart my-app"
# 验证
curl -sk https://my-domain.com/health
三、环境变量管理
3.1 设置环境变量
# 在 CodeBuddy IDE 中
/deploy env set DATABASE_URL="postgresql://..."
/deploy env set JWT_SECRET="your-secret-key"
/deploy env set NODE_ENV="production"
3.2 环境变量分类
| 类型 | 示例 | 安全级别 |
|---|---|---|
| 公开变量 | NEXT_PUBLIC_API_URL | 低(前端可见) |
| 服务端变量 | DATABASE_URL | 高(仅服务端) |
| 密钥 | JWT_SECRET | 极高(加密存储) |
3.3 安全注意事项
❌ 在代码中硬编码密钥
❌ 将 .env 文件提交到 Git
❌ 在前端代码中使用服务端密钥
✅ 使用环境变量管理密钥
✅ .env 加入 .gitignore
✅ 使用 .env.example 记录变量名(不含值)
四、部署验证
4.1 健康检查
# 基础检查
curl -sk https://my-app.com/ | head -5
# API 检查
curl -sk https://my-app.com/api/health
# 期望:{"status":"ok","version":"1.0.0"}
# 性能检查
curl -sk -o /dev/null -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://my-app.com/
4.2 功能验证清单
- [ ] 首页加载正常
- [ ] 核心功能可用
- [ ] API 接口响应正确
- [ ] 静态资源加载正常(CSS/JS/图片)
- [ ] HTTPS 证书有效
- [ ] 移动端适配正常
五、回滚方案
5.1 快速回滚
# 回滚到上一版本
/deploy rollback
# 或手动
ssh ubuntu@server "cd /opt/my-app && git checkout HEAD~1 && npm run build && pm2 restart my-app"
5.2 回滚决策树
部署后发现问题
├── 严重(服务不可用)→ 立即回滚
├── 中等(功能异常)→ 评估影响后决定
└── 轻微(UI 问题)→ 下次修复
六、常见陷阱
陷阱 1:本地测试通过但部署失败
原因:本地环境和生产环境不同
解决:使用相同版本的 Node.js 和依赖
陷阱 2:环境变量遗漏
原因:本地 .env 有变量,生产环境没有
解决:部署前检查环境变量清单
陷阱 3:静态资源 404
原因:构建路径配置错误
解决:检查 vite.config.ts 的 base 配置
七、总结
| 问题 | 答案 |
|---|---|
| 最简部署方式? | /deploy 一键部署 |
| 静态站用什么? | EdgeOne Pages |
| 全栈应用用什么? | CloudBase |
| 如何回滚? | /deploy rollback |
| 最重要的检查? | 环境变量 + 健康检查 |