6.5 KiB
6.5 KiB
部署檢查清單
🚀 部署前檢查清單
📋 代碼準備
代碼品質
- 所有測試通過 (
npm test) - 無 TypeScript 錯誤 (
npm run type-check) - 無 ESLint 警告 (
npm run lint) - 代碼覆蓋率達標 (>80%)
- 已移除所有
console.log和調試代碼
功能完整性
- 所有核心功能正常運作
- 響應式設計在所有裝置正常顯示
- 跨瀏覽器相容性測試完成
- 404 和錯誤頁面正常顯示
- Loading 和 Skeleton 狀態正確實現
🔐 安全檢查
環境變數
- 生產環境變數已設置
- 移除所有測試/開發用 API keys
NEXTAUTH_SECRET已更新為強密碼- 資料庫連線使用生產憑證
- 所有敏感資料已加密
安全配置
- HTTPS 已啟用
- CSP (Content Security Policy) 已配置
- CORS 設置正確
- Rate limiting 已實施
- SQL injection 防護已啟用
⚡ 性能優化
構建優化
- 生產構建成功 (
npm run build) - Bundle size 在預算內 (<200KB gzipped)
- 圖片已優化和壓縮
- 字體已優化載入
- 未使用的 CSS/JS 已移除
載入性能
- Lighthouse 分數 > 90
- First Contentful Paint < 1.8s
- Largest Contentful Paint < 2.5s
- 累積版面配置位移 < 0.1
- 關鍵資源已預載入
📦 依賴管理
# 更新依賴
npm update
npm audit fix
# 檢查過時套件
npm outdated
# 清理未使用依賴
npm prune
- 所有依賴已更新到穩定版本
- 無已知安全漏洞 (
npm audit) - package-lock.json 已提交
- 生產依賴正確分類
🗄️ 資料庫準備
Supabase 設置
- 生產資料庫已創建
- 資料庫 Migration 已執行
- 資料庫索引已優化
- Row Level Security (RLS) 已啟用
- 備份策略已配置
資料遷移
-- 執行 migration
supabase db push
-- 驗證 schema
supabase db diff
-- 設置備份
supabase db backup
🌐 Vercel 部署設置
環境變數配置
# 在 Vercel Dashboard 設置
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxx
SUPABASE_SERVICE_ROLE_KEY=xxx
GOOGLE_GEMINI_API_KEY=xxx
NEXTAUTH_URL=https://dramaling.vercel.app
NEXTAUTH_SECRET=xxx
構建設置
- Build Command:
npm run build - Output Directory:
.next - Install Command:
npm ci - Node.js Version: 18.x
域名配置
- 自定義域名已設置
- SSL 證書已配置
- DNS 記錄已更新
- www 重定向已設置
📊 監控設置
錯誤追蹤
- Sentry 已配置
- 錯誤報告已啟用
- Source maps 已上傳
- 警報規則已設置
性能監控
- Google Analytics 已設置
- Web Vitals 追蹤已啟用
- Custom metrics 已配置
- 性能預算警報已設置
日誌記錄
// utils/logger.ts
const logger = {
info: (message: string, data?: any) => {
if (process.env.NODE_ENV === 'production') {
// 發送到日誌服務
sendToLogService({ level: 'info', message, data })
}
},
error: (message: string, error?: any) => {
if (process.env.NODE_ENV === 'production') {
// 發送到錯誤追蹤服務
sendToErrorTracking({ message, error })
}
}
}
📝 文檔更新
- README.md 已更新
- API 文檔已完成
- 部署流程已記錄
- 環境變數說明已更新
- CHANGELOG.md 已更新
🧪 最終測試
Staging 環境測試
- 在 staging 環境完整測試
- 用戶註冊/登入流程正常
- 詞卡生成功能正常
- 學習功能正常
- 付費功能正常(如適用)
生產環境驗證
- 首頁載入正常
- 所有連結正常運作
- 表單提交正常
- API 端點響應正常
- 第三方整合正常
📋 部署步驟
1. 準備階段
# 切換到 main 分支
git checkout main
git pull origin main
# 執行測試
npm run test
npm run lint
npm run type-check
# 構建測試
npm run build
2. 部署到 Staging
# 部署到 staging 分支
git checkout staging
git merge main
git push origin staging
# Vercel 會自動部署 staging 分支
# 測試 staging URL: https://dramaling-staging.vercel.app
3. 生產部署
# 創建版本標籤
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
# 部署到生產
git checkout main
git push origin main
# Vercel 自動部署到生產環境
4. 部署後驗證
# 檢查部署狀態
vercel list
# 查看部署日誌
vercel logs
# 監控錯誤
vercel logs --error
🔄 回滾計劃
快速回滾步驟
# 方法 1: Vercel Dashboard
# 1. 進入 Vercel Dashboard
# 2. 選擇 Deployments
# 3. 找到上一個穩定版本
# 4. 點擊 "Promote to Production"
# 方法 2: Git 回滾
git revert HEAD
git push origin main
# 方法 3: 緊急回滾
vercel rollback
資料庫回滾
-- 備份當前資料
pg_dump -h db.xxx.supabase.co -U postgres -d postgres > backup.sql
-- 恢復到之前版本
psql -h db.xxx.supabase.co -U postgres -d postgres < previous_backup.sql
📱 生產環境監控
即時監控指標
- CPU 使用率 < 80%
- 記憶體使用率 < 85%
- 錯誤率 < 1%
- 平均響應時間 < 200ms
- 可用性 > 99.9%
警報設置
// 設置警報閾值
const alerts = {
errorRate: 0.01, // 1%
responseTime: 500, // ms
availability: 0.999, // 99.9%
diskUsage: 0.9, // 90%
}
✅ 部署完成確認
功能驗證
- 用戶可以正常註冊/登入
- 詞卡生成功能正常
- 學習功能正常運作
- 數據正確保存
- Email 通知正常發送
性能驗證
- 頁面載入時間符合預期
- API 響應時間正常
- 無記憶體洩漏
- 無異常錯誤
安全驗證
- HTTPS 正常運作
- 認證機制正常
- 敏感資料已加密
- 無安全警告
📞 緊急聯絡
| 角色 | 聯絡方式 |
|---|---|
| 開發負責人 | dev-lead@dramaling.com |
| 運維團隊 | ops@dramaling.com |
| 安全團隊 | security@dramaling.com |
| 客服團隊 | support@dramaling.com |
🎉 部署成功後
-
通知相關人員
- 發送部署完成郵件
- 更新團隊 Slack/Discord
- 更新專案看板
-
監控初期表現
- 觀察錯誤率 (前 24 小時)
- 檢查用戶反饋
- 監控性能指標
-
文檔更新
- 更新版本號
- 記錄部署日誌
- 更新 Release Notes