
1、介紹
Azure DevOps是由微軟開發的服務平台,它提供了多種工具,可用於更好地進行團隊協作。它還具有用於自動構建過程,測試,版本控制和程序包管理的工具
Azure DevOps提供了5個主要模塊
- Azure Boards:敏捷工具
- Azure Repos:無限的、雲托管的私人和公共
Git庫 - Azure Pipelines:構建流水線
- Azure Test Plans:測試工具
- Azure Artifacts: 制品包存檔
除此之外,在擴展市場還有超過1,000個應用和工具可供選擇,這點和自家產品VS Code一樣,有着非常強大的插件生態
2、服務開通
主要步驟如下
- 訪問
dev.azure.com - 點擊“免費開始使用”
- 使用
Microsoft帳戶或Github帳戶登錄(從2018年的某一天起,Github也是微軟自家的了) - 創建一個
organization(組織) - 創建一個
project(項目)

3、添加ssh key
依次點擊User settings —> Security —> SSH Public Keys —> New key,輸入本地的git ssh公鑰

4、測試項目
4.1 提交代碼
提交測試代碼,從github克隆並手動推送到到azure devops repo上
當然,也可以直接導入github項目到azure devops界面,這里記錄的是提交代碼過程
➜ git clone https://github.com/MicrosoftDocs/pipelines-java && cd pipelines-java
Cloning into 'pipelines-java'...
remote: Enumerating objects: 107, done.
remote: Total 107 (delta 0), reused 0 (delta 0), pack-reused 107
Receiving objects: 100% (107/107), 73.86 KiB | 134.00 KiB/s, done.
Resolving deltas: 100% (38/38), done.
➜ git:(master) git remote add azure git@ssh.dev.azure.com:v3/ssgeek/test-project/test-project
➜ git:(master) git push -u azure --all

4.2 創建pipeline
創建第一個pipeline管道
-
登錄到
Azure DevOps組織,並導航到項目 -
轉到
pipeline,然后選擇"新建Create Pipeline -
選擇
Azure Repos Git作為源代碼位置,進一步選擇剛才創建的test-project這個倉庫
配置項目流水線類型Configure your pipeline,這里識別出了是java庫,可選擇的類型有四種
- Maven類型
- Maven類型並部署到azure cloud上
- 自定義最小化pipeline
- 選擇現有的 Azure Pipelines YAML 文件
由於倉庫中沒有pipeline文件,這里選擇自動生成一個pipeline文件
自動生成的pipeline文件內容如下
# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java
trigger:
- master
pool:
vmImage: ubuntu-latest
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'package'
點擊Save and run

查看構建日志

此時是構建失敗的,也可以到控制台中查看構建錯誤提示

從提示可以看出構建失敗,在於使用Azure Pipelines生成代碼或部署,需要至少一個代理agent,真正運行構建任務的是代理agent,這里並沒有購買或授予任何托管用於運行pipeline任務的agent,可以按照提示的鏈接申請免費的Agent
此代理可以綁定微軟雲代理,也可以綁定自托管的代理(Linux、Windows、macOS)
申請后過幾個小時就可以了,再去修改代碼觸發運行或者手動運行pipeline,成功運行

4、服務的部署
構建流程運行完成后,就涉及到服務的部署了
在azure devops中,服務部署支持部署到VM和kubernetes環境
配置目標環境的方法,選擇Pipelines —> Environments —> Create environments

以k8s資源為例,直接配置連接azure cloud的k8s,或者用service account進行配置通用的k8s集群
具體的部署模式可以選擇yaml部署、helm部署、以及azure devops支持的Canary灰度部署等等
5、小結
azure devops的模式和gitlab ci一樣,自身集成了代碼庫管理和devops流水線功能,其運行任務的節點類似gitlab runner,是商業化devops產品的一大選擇
最重要的是,azure devops Pipelines一個月有1800分鍾的免費額度,這個免費並不是付費才能“解鎖更多姿勢”的那種,足夠良心
從個人使用來看,界面足夠簡約好用
所以綜上,如果是想白嫖使用商業的devops產品,azure devops可以首選
azure pipeline的語法和gitlab ci語法也非常類似,后面再提及了
See you ~
關注公眾號加群,更多原創干貨與你分享 ~
