docs: add Phase 1 deployment guide and rollback procedure
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
# Phase 1 核心功能部署指南
|
||||
|
||||
> **部署时间:** Week 1
|
||||
> **部署内容:** 首页、关于我们、联系表单
|
||||
> **风险等级:** 低
|
||||
|
||||
## 部署前检查清单
|
||||
|
||||
### 代码质量
|
||||
- [x] 测试通过率 100%
|
||||
- [x] 性能指标达标
|
||||
- [x] CI/CD流程通过
|
||||
- [x] 代码已合并到main分支
|
||||
|
||||
### 监控告警
|
||||
- [x] Sentry错误监控配置
|
||||
- [x] UptimeRobot可用性监控配置
|
||||
- [x] Next.js Analytics性能监控配置
|
||||
- [x] 告警通知配置正确
|
||||
|
||||
### 安全检查
|
||||
- [x] 环境变量配置正确
|
||||
- [x] 敏感信息已移除
|
||||
- [x] CSRF保护启用
|
||||
- [x] 输入验证启用
|
||||
|
||||
### 备份准备
|
||||
- [ ] 数据库备份完成
|
||||
- [ ] 配置文件备份完成
|
||||
- [ ] 回滚脚本准备完成
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### Step 1: 创建部署分支
|
||||
|
||||
Run:
|
||||
```bash
|
||||
git checkout -b deploy/phase1
|
||||
git merge main
|
||||
```
|
||||
|
||||
### Step 2: 构建生产版本
|
||||
|
||||
Run:
|
||||
```bash
|
||||
npm ci
|
||||
npm run build
|
||||
```
|
||||
|
||||
Expected: 构建成功,无错误
|
||||
|
||||
### Step 3: 部署到生产环境
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 根据实际部署环境调整以下命令
|
||||
# 例如:使用Docker部署
|
||||
docker build -t novalon-website:phase1 .
|
||||
docker tag novalon-website:phase1 registry.example.com/novalon-website:phase1
|
||||
docker push registry.example.com/novalon-website:phase1
|
||||
|
||||
# 或使用传统部署
|
||||
# rsync -avz --delete .next/ user@server:/var/www/novalon-website/
|
||||
```
|
||||
|
||||
Expected: 部署成功
|
||||
|
||||
### Step 4: 验证部署
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 访问生产环境URL
|
||||
# https://www.novalon.cn
|
||||
|
||||
# 验证以下功能:
|
||||
# 1. 首页正常加载
|
||||
# 2. 关于我们页面正常
|
||||
# 3. 联系表单正常
|
||||
# 4. 监控指标正常
|
||||
```
|
||||
|
||||
Expected: 所有功能正常工作
|
||||
|
||||
### Step 5: 启用监控
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 访问Sentry Dashboard
|
||||
# https://sentry.io/
|
||||
|
||||
# 访问UptimeRobot Dashboard
|
||||
# https://uptimerobot.com/dashboard
|
||||
|
||||
# 访问Next.js Analytics
|
||||
# https://vercel.com/analytics
|
||||
```
|
||||
|
||||
Expected: 监控系统正常工作
|
||||
|
||||
## 部署后验证
|
||||
|
||||
### 功能验证
|
||||
- [ ] 首页可访问
|
||||
- [ ] 关于我们页面可访问
|
||||
- [ ] 联系表单可提交
|
||||
- [ ] 移动端适配正常
|
||||
|
||||
### 性能验证
|
||||
- [ ] 首页加载时间 < 2s
|
||||
- [ ] 关于页面加载时间 < 2s
|
||||
- [ ] 联系页面加载时间 < 2s
|
||||
- [ ] P95响应时间 < 500ms
|
||||
|
||||
### 监控验证
|
||||
- [ ] Sentry错误监控正常
|
||||
- [ ] UptimeRobot监控状态为"Up"
|
||||
- [ ] Next.js Analytics显示数据
|
||||
- [ ] 告警通知正常
|
||||
|
||||
## 回滚触发条件
|
||||
|
||||
如果出现以下情况,立即执行回滚:
|
||||
1. 关键功能不可用(首页、关于、联系)
|
||||
2. 错误率 > 5%
|
||||
3. P95响应时间 > 2s
|
||||
4. 安全漏洞发现
|
||||
5. 用户反馈严重问题 > 10个/小时
|
||||
|
||||
## 联系人
|
||||
|
||||
- 技术负责人: [待填写]
|
||||
- 运维负责人: [待填写]
|
||||
- 业务负责人: [待填写]
|
||||
@@ -0,0 +1,133 @@
|
||||
# 回滚流程指南
|
||||
|
||||
> **触发条件:** 部署后出现严重问题
|
||||
> **响应时间:** < 30分钟
|
||||
|
||||
## 回滚类型
|
||||
|
||||
### Type 1: 代码回滚(推荐)
|
||||
|
||||
适用于:代码缺陷、功能问题
|
||||
|
||||
**Step 1: 停止新版本**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# Docker环境
|
||||
docker stop novalon-website
|
||||
|
||||
# 传统环境
|
||||
pm2 stop novalon-website
|
||||
```
|
||||
|
||||
**Step 2: 切换到上一个稳定版本**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
git checkout v-test-phase-2-complete
|
||||
npm ci
|
||||
npm run build
|
||||
```
|
||||
|
||||
**Step 3: 重新部署**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# Docker环境
|
||||
docker build -t novalon-website:rollback .
|
||||
docker run -d -p 3000:3000 novalon-website:rollback
|
||||
|
||||
# 传统环境
|
||||
npm run start
|
||||
```
|
||||
|
||||
**Step 4: 验证回滚**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
curl https://www.novalon.cn/health
|
||||
```
|
||||
|
||||
Expected: 健康检查返回200
|
||||
|
||||
### Type 2: 数据库回滚
|
||||
|
||||
适用于:数据损坏、数据丢失
|
||||
|
||||
**Step 1: 停止应用**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
docker stop novalon-website
|
||||
```
|
||||
|
||||
**Step 2: 恢复数据库备份**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 恢复最近的成功备份
|
||||
docker exec postgres pg_restore -U postgres -d novalon /backup/backup-$(date +%Y%m%d-%H%M).sql
|
||||
```
|
||||
|
||||
**Step 3: 重启应用**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
docker start novalon-website
|
||||
```
|
||||
|
||||
**Step 4: 验证数据**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 检查关键数据是否存在
|
||||
curl https://www.novalon.cn/api/health
|
||||
```
|
||||
|
||||
Expected: 数据正常
|
||||
|
||||
### Type 3: DNS回滚(紧急)
|
||||
|
||||
适用于:严重故障,需要快速切换
|
||||
|
||||
**Step 1: 更新DNS记录**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
# 将www.novalon.cn指向备用服务器
|
||||
# 备用服务器IP: [待填写]
|
||||
```
|
||||
|
||||
**Step 2: 验证切换**
|
||||
|
||||
Run:
|
||||
```bash
|
||||
nslookup www.novalon.cn
|
||||
```
|
||||
|
||||
Expected: DNS指向备用服务器
|
||||
|
||||
## 回滚后验证
|
||||
|
||||
### 功能验证
|
||||
- [ ] 所有核心功能正常
|
||||
- [ ] 数据完整性验证
|
||||
- [ ] 监控指标正常
|
||||
|
||||
### 通知
|
||||
- [ ] 通知技术团队
|
||||
- [ ] 通知业务团队
|
||||
- [ ] 通知管理层
|
||||
- [ ] 记录回滚原因
|
||||
|
||||
## 回滚后分析
|
||||
|
||||
### 问题分析
|
||||
- 问题原因: [待填写]
|
||||
- 影响范围: [待填写]
|
||||
- 影响用户数: [待填写]
|
||||
|
||||
### 改进措施
|
||||
- 预防措施: [待填写]
|
||||
- 测试改进: [待填写]
|
||||
- 流程改进: [待填写]
|
||||
Reference in New Issue
Block a user