Azure DevOps 教學:從零開始建立 CI/CD Pipeline 完整指南
Azure DevOps 教學:從零開始建立 CI/CD Pipeline 完整指南
前言:為什麼你需要 Azure DevOps?
「每次部署都要手動操作 2 小時,而且常常出錯。」
這是我們最常從開發團隊聽到的痛點。
Azure DevOps 就是解決這個問題的工具。它能把你的程式碼提交、測試、部署全部自動化。原本 2 小時的手動流程,可以縮短到 10 分鐘,而且零人為錯誤。
根據 DORA 研究報告,高效能的 DevOps 團隊部署頻率是低效能團隊的 208 倍,故障恢復時間快 2604 倍。
這篇教學會帶你從零開始,建立第一個 CI/CD Pipeline。
Azure DevOps 是 Azure 開發工具的核心,更多 Azure 服務請見 Azure 完整指南。

一、Azure DevOps 是什麼?
Azure DevOps 是微軟提供的一站式開發協作平台。
它不只是一個工具,而是五個緊密整合的服務。
1.1 Azure DevOps 五大服務
Azure Repos
Git 版本控制服務。可以存放程式碼、管理分支、進行 Code Review。
類似 GitHub,但與 Azure 生態系整合更緊密。
Azure Boards
敏捷專案管理工具。支援 Scrum、Kanban 看板、Sprint 規劃。
可以追蹤 User Story、Bug、Task,還能連結到程式碼提交。
Azure Pipelines
這是 Azure DevOps 的核心。用來建立 CI/CD 自動化流程。
支援幾乎所有程式語言和平台:.NET、Java、Node.js、Python、Go、容器、Kubernetes 等。
Azure Test Plans
測試管理服務。可以建立測試案例、執行手動測試、追蹤測試結果。
適合需要嚴謹測試流程的企業專案。
Azure Artifacts
套件管理服務。可以存放 npm、NuGet、Maven、Python 套件。
當你有內部共用的程式庫時,Artifacts 很有用。
1.2 Azure DevOps Server vs Cloud
Azure DevOps 有兩種版本:
| 項目 | Azure DevOps Services(雲端) | Azure DevOps Server(地端) |
|---|---|---|
| 部署方式 | SaaS,微軟託管 | 自行安裝在內部伺服器 |
| 維護 | 微軟負責 | 自行維護 |
| 更新 | 自動更新 | 手動升級 |
| 資料位置 | 微軟資料中心 | 自己的機房 |
| 適合對象 | 大多數團隊 | 有嚴格合規要求的企業 |
90% 以上的團隊都適合用雲端版。只有在法規要求資料必須留在內部時,才需要考慮 Server 版。
1.3 Azure DevOps 免費方案
好消息:Azure DevOps 對小團隊是免費的。
免費額度包括:
- 5 位使用者的完整功能
- 無限制的私有 Git 儲存庫
- Azure Pipelines:每月 1,800 分鐘的 CI/CD 時間
- Azure Artifacts:2 GB 儲存空間
對於新創團隊或小專案,這個免費額度通常綽綽有餘。
二、Azure Repos vs GitHub
這是很多團隊會問的問題:「我們該用 Azure Repos 還是 GitHub?」
2.1 功能比較
| 功能 | Azure Repos | GitHub |
|---|---|---|
| Git 儲存庫 | ✓ | ✓ |
| Pull Request | ✓ | ✓ |
| 分支策略 | ✓(更細緻) | ✓ |
| Code Review | ✓ | ✓ |
| Wiki | 透過 Azure Wiki | ✓ |
| Issue 追蹤 | 透過 Azure Boards | ✓(GitHub Issues) |
| CI/CD | Azure Pipelines | GitHub Actions |
| 套件管理 | Azure Artifacts | GitHub Packages |
| 社群功能 | ✗ | ✓(Stars、Forks) |
2.2 如何選擇?
選 Azure Repos 的情境:
- 已經大量使用 Azure DevOps 其他服務
- 需要與 Azure Boards 緊密整合
- 企業內部專案,不需要開源社群功能
選 GitHub 的情境:
- 開源專案
- 團隊已經熟悉 GitHub
- 想利用 GitHub 的社群生態
混合使用也可以:
很多團隊會用 GitHub 管理程式碼,但用 Azure Pipelines 做 CI/CD。這兩者整合得很好。
Azure DevOps vs AWS CodePipeline 的比較,請見 Azure vs AWS 比較。
三、Azure Boards 專案管理教學
在開始寫程式碼之前,先來設定專案管理。
3.1 建立第一個專案
- 前往 dev.azure.com
- 登入你的 Microsoft 帳號
- 建立新組織(或選擇現有組織)
- 點擊「New Project」
- 設定專案名稱、可見性(Private/Public)
- 選擇工作流程範本(Agile、Scrum、CMMI)
3.2 工作項目類型
Azure Boards 的工作項目有層級關係:
Epic(史詩) 最大的工作單位,通常代表一個大功能或專案目標。
Feature(功能) Epic 底下的子項目,代表可交付的功能。
User Story / Product Backlog Item Feature 底下的細項,代表使用者需求。
Task(任務) 最小的工作單位,是開發者實際要執行的事項。
Bug 缺陷追蹤,可以連結到造成 Bug 的程式碼提交。
3.3 看板(Kanban)使用
Azure Boards 的看板功能很強大:
- 自訂欄位:可以新增「Code Review」、「QA」等自訂狀態
- WIP 限制:限制每個欄位最多幾張卡片,避免工作堆積
- 泳道:用來區分不同類型的工作(例如:功能開發 vs 維護)
- 標籤:快速篩選和分類卡片
3.4 連結程式碼與工作項目
這是 Azure DevOps 最強大的功能之一。
當你提交程式碼時,可以在 commit message 加上工作項目 ID:
git commit -m "Fix login button styling #123"
這樣做的好處:
- 工作項目會自動連結到這個 commit
- 可以從工作項目追蹤到相關的程式碼變更
- PR 合併時可以自動更新工作項目狀態
四、Azure Pipelines CI/CD 設定
這是 Azure DevOps 的核心功能。讓我們來建立第一個 Pipeline。
4.1 Pipeline 基礎概念
在開始之前,先了解幾個關鍵概念:
Pipeline 整個自動化流程的定義,包含 CI 和 CD。
Stage Pipeline 中的一個階段,例如 Build、Test、Deploy。
Job Stage 中的一組任務,會在同一個 Agent 上執行。
Step / Task 最小的執行單位,例如執行一個腳本或一個指令。
Agent 執行 Pipeline 的機器。可以用微軟託管的 Agent,或自己架設。
Trigger 觸發 Pipeline 的條件,例如程式碼提交或 PR 建立。
4.2 建立第一個 CI Pipeline
我們用一個 Node.js 專案來示範。
步驟 1:進入 Pipelines
在 Azure DevOps 專案中,點擊左側的「Pipelines」→「Create Pipeline」。
步驟 2:選擇程式碼來源
選擇你的程式碼在哪裡:Azure Repos、GitHub、Bitbucket 等。
步驟 3:選擇範本
Azure DevOps 會偵測你的專案類型,提供建議範本。你也可以選「Starter pipeline」從頭開始。
步驟 4:編輯 YAML
這是一個基本的 Node.js CI Pipeline:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: Build
displayName: 'Build and Test'
jobs:
- job: BuildJob
displayName: 'Build'
steps:
- task: NodeTool@0
inputs:
versionSpec: '18.x'
displayName: 'Install Node.js'
- script: |
npm ci
npm run build
displayName: 'Install and Build'
- script: npm test
displayName: 'Run Tests'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: 'dist'
artifactName: 'app'
displayName: 'Publish Artifact'
步驟 5:儲存並執行
點擊「Save and run」,Pipeline 就會開始執行。

DevOps 轉型需要專業規劃 CI/CD Pipeline 只是起點,完整的 DevOps 轉型涉及流程、文化、工具的整合。 預約架構諮詢,讓我們幫你設計最佳 DevOps 架構。
五、Azure Artifacts 套件管理
當團隊有內部共用的程式庫時,Azure Artifacts 很有用。
5.1 支援的套件類型
- npm(Node.js)
- NuGet(.NET)
- Maven / Gradle(Java)
- pip(Python)
- Universal Packages(任意二進位檔案)
5.2 建立 Feed
- 在 Azure DevOps 專案中,點擊「Artifacts」
- 點擊「Create Feed」
- 設定名稱和可見性
- 選擇上游來源(可以 Proxy npmjs.org 等公共來源)
5.3 發布套件
以 npm 為例:
# 設定 npm registry
npm config set registry https://pkgs.dev.azure.com/your-org/_packaging/your-feed/npm/registry/
# 認證
npx vsts-npm-auth -config .npmrc
# 發布
npm publish
在 Pipeline 中自動發布:
- task: Npm@1
inputs:
command: 'publish'
publishRegistry: 'useFeed'
publishFeed: 'your-project/your-feed'
六、Azure Test Plans 測試管理
對於需要嚴謹測試流程的專案,Azure Test Plans 提供完整的測試管理功能。
6.1 測試案例管理
- 建立結構化的測試案例
- 定義測試步驟和預期結果
- 組織成測試套件
6.2 手動測試執行
- 使用 Test Runner 執行測試
- 記錄測試結果和螢幕截圖
- 自動建立 Bug 並連結到失敗的測試
6.3 自動化測試整合
在 Pipeline 中整合自動化測試:
- task: VSTest@2
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: '**\*test*.dll'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
測試結果會自動顯示在 Pipeline 結果中。
七、Azure DevOps 最佳實踐
經過多年協助客戶導入 DevOps,我們整理了這些最佳實踐。
7.1 分支策略
推薦使用 GitHub Flow 或 Git Flow:
GitHub Flow(簡單版)
main分支永遠是可部署的- 新功能從
main建立 feature branch - 完成後發 PR 回
main - Code Review 通過後合併
Git Flow(較複雜)
main:生產環境程式碼develop:開發整合分支feature/*:功能開發release/*:發布準備hotfix/*:緊急修復
對大多數團隊,GitHub Flow 就夠用了。
7.2 程式碼審查流程
在 Azure Repos 設定分支策略:
- 進入 Repos → Branches
- 點擊
main分支的「...」→「Branch policies」 - 啟用以下設定:
- Require a minimum number of reviewers(至少 1 人審核)
- Check for linked work items(必須連結工作項目)
- Check for comment resolution(必須解決所有討論)
- Build validation(必須通過 CI)
7.3 DevSecOps 整合
安全不應該是事後才考慮的事。把安全檢查整合到 Pipeline:
靜態程式碼分析(SAST)
- task: SonarQubePrepare@5
inputs:
SonarQube: 'SonarQube-Connection'
scannerMode: 'CLI'
configMode: 'manual'
相依套件弱點掃描
- script: npm audit --audit-level=moderate
displayName: 'Security Audit'
容器映像掃描
- task: ContainerScan@0
inputs:
imageName: 'myimage:latest'
更多 DevSecOps 資安整合,請見 Azure 資安完整指南。
用 Azure DevOps 部署 AI 應用,請見 Azure OpenAI 完整教學。

八、常見問題 FAQ
Q1:Azure DevOps 和 GitHub 該選哪個?
如果團隊已經用 GitHub 很順手,可以繼續用 GitHub + GitHub Actions。如果需要更完整的專案管理(Azure Boards)和測試管理(Test Plans),Azure DevOps 是更好的選擇。兩者也可以混合使用:GitHub 管程式碼 + Azure Pipelines 做 CI/CD。
Q2:Azure Pipelines 免費額度夠用嗎?
對小團隊通常夠用。每月 1,800 分鐘的 Microsoft-hosted agent 時間,大約可以執行 300-500 次 Pipeline(假設每次 3-6 分鐘)。如果不夠,可以自架 Self-hosted agent,完全免費。
Q3:YAML Pipeline 和 Classic Pipeline 差在哪?
YAML Pipeline 是用程式碼定義的,可以版本控制、Code Review、重複使用。Classic Pipeline 是用 GUI 設定的,比較直覺但難以版控。微軟現在推薦用 YAML Pipeline,Classic 會逐漸淘汰。
Q4:如何遷移現有的 Jenkins Pipeline 到 Azure Pipelines?
Azure DevOps 有 Jenkins 整合插件,可以觸發 Azure Pipelines。完整遷移的話,需要把 Jenkinsfile 改寫成 azure-pipelines.yml。語法不同,但概念類似。
Q5:Azure DevOps 支援哪些雲端部署目標?
支援所有主流雲端:Azure、AWS、GCP,以及任何可以透過 SSH 或 API 存取的環境。內建的 Task 以 Azure 為主,但透過 Marketplace 可以找到 AWS、GCP 的擴充。
Q6:如何監控 Pipeline 的執行狀況?
Azure DevOps 內建執行歷史和分析。可以設定 Pipeline 失敗時發送 Email 或 Teams 通知。進階監控可以整合 Azure Monitor 或第三方工具。如果你想了解 Azure 各服務的費用,包括 DevOps 相關資源的計價,請見 Azure 費用計算完整指南。
九、結論與下一步
Azure DevOps 是一個功能完整的 DevOps 平台。
從程式碼管理、專案追蹤、CI/CD 自動化、到測試管理,全部在同一個平台完成。
如果你剛開始接觸 Azure DevOps,建議的學習路徑是:
- 建立免費帳號:在 dev.azure.com 註冊
- 匯入一個專案:把現有的 Git 專案匯入 Azure Repos
- 設定第一個 CI Pipeline:從範本開始,逐步客製化
- 新增測試階段:確保每次提交都有自動化測試
- 設定 CD Pipeline:自動部署到測試環境
- 加入安全掃描:整合 DevSecOps 實踐
DevOps 轉型需要協助?
如果你正在:
- 規劃從傳統開發流程轉型到 DevOps
- 建立 CI/CD Pipeline 但遇到瓶頸
- 想整合 DevSecOps 但不知從何開始
預約架構設計諮詢,我們提供 DevOps 轉型的完整規劃。 從工具選型到流程設計,全程提供專業建議。
參考資料
- Azure DevOps 官方文件:https://learn.microsoft.com/azure/devops
- Azure Pipelines YAML 語法參考:https://learn.microsoft.com/azure/devops/pipelines/yaml-schema
- DORA State of DevOps Report:https://dora.dev
- Azure DevOps Marketplace:https://marketplace.visualstudio.com/azuredevops
- Microsoft Learn DevOps 學習路徑:https://learn.microsoft.com/training/paths/evolve-your-devops-practices
相關文章
Azure DevOps 教學:從入門到實戰的完整指南【2025】
Azure DevOps 完整教學!從建立組織、設定 Repository 到建置 CI/CD Pipeline,圖文步驟詳解。涵蓋 Azure Repos、Pipelines、Boards 五大服務介紹,以及與 GitHub Actions 的比較分析。
DevOpsDevOps 是什麼?2025 完整指南:概念、工具、流程與職涯發展
DevOps 是什麼?完整解析 DevOps 的定義、核心理念與實作方法。涵蓋 CI/CD 流程、熱門工具(Azure DevOps、GitLab、Kubernetes)、工程師職涯發展與學習路線圖,幫助你快速掌握 DevOps 並在團隊中成功導入。
DevOpsCI/CD 是什麼?持續整合與持續部署入門教學【2025】
CI/CD 是什麼?完整解析持續整合(CI)與持續部署(CD)的概念與實作方法。涵蓋 Pipeline 設計、工具比較、最佳實踐與實作範例,幫助你的團隊建立高效的自動化交付流程。