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