部署指南範本(Deployment Guide)

參照標準:ITIL 4 Release Management / ISO/IEC 20000-1:2018 第 8.5.2 節「Release management」
文件用途:提供系統部署的標準化步驟指引,確保可重複、可追蹤、可回滾的部署流程
適用階段:部署與上線階段(Release & Deployment)


📋 章節目錄

  1. 文件資訊
  2. 部署概述
  3. 先決條件
  4. 部署架構
  5. 部署步驟
  6. 驗證程序
  7. 回滾程序
  8. 監控確認
  9. 聯絡窗口
  10. 附錄

1. 文件資訊

📝 範本

項目內容
文件編號DG-{專案代碼}-{序號}
文件名稱{系統名稱} v{版本} 部署指南
版本v{主版本}.{次版本}
狀態草稿 / 審核中 / 核定
建立日期{YYYY-MM-DD}
計畫部署日期{YYYY-MM-DD HH:mm}
撰寫者{姓名/角色}
審核者{姓名/角色}
核准者{姓名/角色}

版本歷程

版本日期修改人修改內容
v1.0{日期}{姓名}初版

📖 使用說明

  • 依據 ITIL 4 Release Management 實務,每次部署需有正式的部署指南
  • 文件需在部署前完成審核,未經核准不得執行部署
  • 適用於所有環境(SIT / UAT / Staging / Production)部署

💡 範例

項目內容
文件編號DG-HRM-003
文件名稱HRMS v1.0.0 正式環境部署指南
計畫部署日期2026-10-15 22:00(維護窗口)
核准者IT 副總 — 黃資訊

2. 部署概述

📝 範本

2.1 部署資訊摘要

項目內容
部署類型新系統上線 / 版本升級 / Hotfix / 組態變更
部署版本{Application Version}
目標環境{環境名稱}
部署方式全量部署 / 滾動更新 / 藍綠部署 / 金絲雀部署
預估停機時間{分鐘/小時} / 零停機
影響範圍{受影響的服務/使用者}
維護窗口{起始時間} ~ {結束時間}

2.2 變更內容摘要

變更編號類型描述
{CR/JIRA 編號}功能/修復/組態{簡述}

2.3 部署風險評估

風險等級說明
高/中/低{為何此等級}

📖 使用說明

  • 部署類型決定所需的審核層級與流程嚴格度
  • Hotfix 可簡化流程但仍需記錄
  • 預估停機時間需告知業務方,以便安排使用者通知

💡 範例

2.1 部署資訊摘要

項目內容
部署類型新系統上線
部署版本HRMS v1.0.0 (Build #2026.10.12.1)
目標環境Production (Azure AKS - hrms-prod)
部署方式藍綠部署(Blue-Green Deployment)
預估停機時間零停機(流量切換時間 < 30 秒)
影響範圍全公司員工(約 2,000 人)
維護窗口2026-10-15 22:00 ~ 2026-10-16 02:00

3. 先決條件

📝 範本

3.1 核准與簽核

項目狀態確認人日期
變更審核委員會(CAB)核准{姓名}{日期}
測試報告簽核{姓名}{日期}
業務方確認上線同意{姓名}{日期}
回滾計畫審核{姓名}{日期}

3.2 技術先決條件

項目驗證方式狀態
{基礎設施就緒}{驗證命令/方式}
{相依服務可用}{驗證命令/方式}
{資料庫備份完成}{驗證命令/方式}
{SSL 憑證有效}{驗證命令/方式}
{DNS 設定確認}{驗證命令/方式}

3.3 部署所需權限

系統/資源所需權限帳號
{系統}{權限}{帳號}

📖 使用說明

  • 所有先決條件需在部署開始前全部確認(Checklist 全部打勾)
  • 任何一項未完成則不得啟動部署
  • 資料庫備份是最關鍵的先決條件,未備份禁止部署

💡 範例

3.2 技術先決條件

項目驗證方式狀態
AKS 叢集節點 ≥ 4kubectl get nodes 確認 Ready
PostgreSQL 資料庫完整備份確認 Azure Backup 最新備份 < 1 小時
Redis Cache 可連線redis-cli ping 回應 PONG
AD 連線正常測試 LDAP bind
Container Registry 映像已推送az acr repository show-tags 確認 v1.0.0 存在
SSL 憑證效期 > 30 天openssl s_client 確認到期日

4. 部署架構

📝 範本

4.1 目標環境架構圖

{架構圖或 Mermaid 圖}

4.2 環境資訊

元件主機/端點規格備註
Application Server{Host/IP}{CPU/RAM}{說明}
Database{Host/IP:Port}{版本/規格}{說明}
Cache{Host/IP:Port}{版本/規格}{說明}
Load Balancer{Host/IP}{類型}{說明}
Storage{Host/Path}{容量}{說明}

4.3 網路與防火牆規則

來源目的PortProtocol用途
{來源}{目的}{Port}TCP/UDP{用途}

📖 使用說明

  • 架構圖幫助部署人員理解全貌,建議使用 Mermaid 或繪製圖示
  • 網路規則需在部署前確認已開通,避免部署後才發現連線失敗
  • 機敏資訊(密碼、連線字串)不寫入文件,使用 Secret Manager 或變數引用

💡 範例

4.1 目標環境架構圖

Internet → Azure Front Door → AKS Ingress → Service
                                              ├── hrms-api (3 replicas)
                                              ├── hrms-worker (2 replicas)
                                              └── hrms-web (3 replicas)
                                                    ↓
                                    PostgreSQL (Azure DB for PostgreSQL)
                                    Redis (Azure Cache for Redis)
                                    Azure Blob Storage

5. 部署步驟

📝 範本

5.0 部署前通知

時間對象通知方式內容
部署前 {N} 小時{對象}{方式}{內容}

5.1 資料庫變更

步驟指令/操作預期結果確認者
1{SQL / Migration 指令}{預期輸出}{姓名}
2{SQL / Migration 指令}{預期輸出}{姓名}

5.2 應用程式部署

步驟指令/操作預期結果確認者
1{部署指令}{預期輸出}{姓名}
2{部署指令}{預期輸出}{姓名}

5.3 組態更新

步驟指令/操作預期結果確認者
1{組態變更指令}{預期結果}{姓名}

5.4 流量切換

步驟指令/操作預期結果確認者
1{切換指令}{預期結果}{姓名}

📖 使用說明

  • 步驟需按執行順序排列,不可跳步
  • 每步驟需有具體指令(可複製貼上執行)與預期結果
  • 「確認者」在部署時簽名確認該步驟已完成
  • 資料庫變更必須先於應用程式部署(確保 schema 相容)
  • 機敏值(密碼)用環境變數或 Secret 引用,不寫死

💡 範例

5.2 應用程式部署

步驟指令/操作預期結果確認者
1kubectl set image deployment/hrms-api hrms-api=hrmacr.azurecr.io/hrms-api:v1.0.0 -n hrms-proddeployment.apps/hrms-api image updatedDevOps
2kubectl rollout status deployment/hrms-api -n hrms-prod --timeout=300sdeployment successfully rolled outDevOps
3kubectl set image deployment/hrms-web hrms-web=hrmacr.azurecr.io/hrms-web:v1.0.0 -n hrms-proddeployment.apps/hrms-web image updatedDevOps
4kubectl rollout status deployment/hrms-web -n hrms-prod --timeout=300sdeployment successfully rolled outDevOps
5確認所有 Pod 狀態正常:kubectl get pods -n hrms-prod所有 Pod 狀態為 Running,READY 1/1DevOps

6. 驗證程序

📝 範本

6.1 Smoke Test(冒煙測試)

測試項目驗證方式預期結果實際結果Pass/Fail
{基本功能 1}{驗證方式}{預期}{實際}
{基本功能 2}{驗證方式}{預期}{實際}

6.2 健康檢查

端點/服務驗證指令預期回應實際回應Pass/Fail
{端點}{指令}{預期}{實際}

6.3 整合驗證

驗證項目驗證方式預期結果實際結果Pass/Fail
{外部系統連接}{指令/操作}{預期}{實際}

6.4 部署成功判定標準

標準說明
所有 Smoke Test 通過
健康檢查端點回應 200持續 5 分鐘
無 Critical/High Alert部署後 15 分鐘內
日誌無異常 Error抽查近 100 條 Log

📖 使用說明

  • 驗證程序在部署完成後立即執行,決定是否接受本次部署
  • Smoke Test 覆蓋核心業務路徑(如登入、主要功能),不需全面測試
  • 若任何 P1 驗證失敗,立即啟動回滾程序

💡 範例

6.1 Smoke Test

測試項目驗證方式預期結果實際結果Pass/Fail
首頁可存取curl -s -o /dev/null -w "%{http_code}" https://hrms.company.com200200Pass
員工登入使用測試帳號登入成功進入首頁成功Pass
請假申請建立一筆特休假申請申請成功,狀態=待審核成功Pass
薪資查詢查詢本月薪資明細顯示薪資資料成功Pass

6.2 健康檢查

端點/服務驗證指令預期回應實際回應Pass/Fail
API Healthcurl https://hrms-api.company.com/health{"status":"healthy"}同預期Pass
DB 連線curl https://hrms-api.company.com/health/db{"status":"connected"}同預期Pass
Redis 連線curl https://hrms-api.company.com/health/cache{"status":"connected"}同預期Pass

7. 回滾程序

📝 範本

7.1 回滾觸發條件

條件決策者
{觸發條件 1}{角色}
{觸發條件 2}{角色}

7.2 回滾步驟

步驟指令/操作預期結果確認者
1{回滾指令}{預期}{姓名}
2{回滾指令}{預期}{姓名}

7.3 資料庫回滾

步驟指令/操作預期結果確認者
1{DB 回滾指令}{預期}{姓名}

7.4 回滾後驗證

驗證項目方式預期結果
{驗證項}{方式}{預期}

7.5 回滾時間預估

項目預估時間
應用程式回滾{分鐘}
資料庫回滾{分鐘}
驗證完成{分鐘}
總計{分鐘}

📖 使用說明

  • 每次部署必須有回滾計畫,這是 ITIL 4 Release Management 的核心要求
  • 回滾步驟需預先演練驗證,不可「部署當天第一次嘗試回滾」
  • 資料庫回滾是最複雜的部分(若有 schema 變更),需特別規劃
  • 藍綠部署的回滾最簡單:切回舊版流量即可

💡 範例

7.1 回滾觸發條件

條件決策者
Smoke Test 失敗 2 項以上DevOps Lead
部署後 15 分鐘內出現 Critical AlertDevOps Lead
業務方回報核心功能異常IT 副總
部署超過維護窗口仍未完成DevOps Lead + PM

7.2 回滾步驟(藍綠部署)

步驟指令/操作預期結果確認者
1通知團隊啟動回滾Teams 群組通知已發送DevOps Lead
2kubectl rollout undo deployment/hrms-api -n hrms-prodrollback to previous revisionDevOps
3kubectl rollout undo deployment/hrms-web -n hrms-prodrollback to previous revisionDevOps
4kubectl rollout status deployment/hrms-api -n hrms-prodsuccessfully rolled outDevOps
5執行 Smoke Test 驗證回滾成功所有項目 PassQA
6通知業務方服務已恢復Email/Teams 通知已發送PM

8. 監控確認

📝 範本

8.1 部署後監控期間

項目內容
加強監控期間部署後 {N} 小時
監控人員{姓名/值班表}
告警通知管道{方式}

8.2 關鍵監控指標

指標正常範圍告警門檻監控工具
API 回應時間 (P95)< {ms}> {ms}{工具}
Error Rate< {%}> {%}{工具}
CPU 使用率< {%}> {%}{工具}
Memory 使用率< {%}> {%}{工具}
活躍連線數< {N}> {N}{工具}

8.3 日誌檢查項目

日誌類型檢查重點工具/指令
Application Log{重點}{工具}
Access Log{重點}{工具}
Error Log{重點}{工具}

📖 使用說明

  • 部署後加強監控是確保部署穩定的最後一道防線
  • 監控期間內若指標異常,仍可啟動回滾
  • 建議部署後 24 小時為加強監控期,48 小時後轉為一般監控

💡 範例

8.2 關鍵監控指標

指標正常範圍告警門檻監控工具
API P95 回應時間< 200ms> 500msGrafana + Prometheus
Error Rate (5xx)< 0.1%> 1%Azure Monitor
CPU 使用率< 60%> 85%Azure Monitor
Memory 使用率< 70%> 90%Azure Monitor
Pod Restart Count0> 2Kubernetes Dashboard
DB Connection Pool< 80%> 95%Application Insights

9. 聯絡窗口

📝 範本

角色姓名電話備用聯絡職責
部署指揮{姓名}{電話}{備用}部署決策、Go/No-Go 判定
DevOps 工程師{姓名}{電話}{備用}執行部署操作
DBA{姓名}{電話}{備用}資料庫變更
開發 Lead{姓名}{電話}{備用}技術問題排除
QA{姓名}{電話}{備用}部署驗證
業務窗口{姓名}{電話}{備用}業務確認

📖 使用說明

  • 部署當天所有窗口需保持電話暢通
  • 部署指揮負責 Go/No-Go 決策與回滾決定
  • 建議建立即時通訊群組(如 Teams/Slack War Room)方便即時溝通

💡 範例

角色姓名電話備用聯絡職責
部署指揮黃資訊(IT 副總)0912-xxx-xxxTeamsGo/No-Go 決策
DevOps周維運0933-xxx-xxxTeams執行部署
DBA趙資料0922-xxx-xxxTeamsDB Migration
開發 Lead吳開發0955-xxx-xxxTeams問題排查
QA林品質0966-xxx-xxxTeamsSmoke Test

10. 附錄

📝 範本

10.1 部署 Checklist 總表

階段檢查項確認時間確認者
部署前CAB 核准
部署前資料庫備份完成
部署前通知使用者
部署中DB Migration 完成
部署中應用程式部署完成
部署後Smoke Test 通過
部署後健康檢查正常
部署後監控指標正常
部署後通知使用者服務恢復

10.2 相關文件

文件說明
{文件名}{用途}

10.3 術語定義

術語定義
CABChange Advisory Board,變更諮詢委員會
Blue-Green藍綠部署,同時維護兩套環境,透過流量切換完成零停機部署
Smoke Test冒煙測試,部署後快速驗證核心功能
Rollback回滾,將系統恢復至部署前的版本
Maintenance Window維護窗口,預先規劃的系統維護時段

📖 使用說明

  • Checklist 在部署當天使用,逐項確認並記錄時間
  • 此 Checklist 同時作為部署紀錄保存,不可事後補填

💡 範例

10.1 部署 Checklist(已執行)

階段檢查項確認時間確認者
部署前CAB 核准10/13 15:00黃資訊
部署前PostgreSQL Full Backup10/15 21:30趙資料
部署前Email 通知全公司維護10/15 18:00PM
部署中DB Migration (3 scripts)10/15 22:05趙資料
部署中K8s Deployment 更新10/15 22:15周維運
部署後Smoke Test (5/5 Pass)10/15 22:30林品質
部署後監控 15 分鐘無告警10/15 22:45周維運
部署後通知服務恢復10/15 22:50PM

📌 範本使用注意事項

  1. 本範本依據 ITIL 4 Release Management 與 ISO/IEC 20000-1:2018 編製
  2. 正式環境部署需經 CAB 審核後方可執行
  3. 回滾計畫為必填章節,未填寫不得核准部署
  4. 部署完成後本文件作為部署紀錄歸檔保存
  5. 搭配「運維手冊(Runbook)」使用,完成日常維運