Azure DevOps
是由微軟開發(fā)的服務平臺,它提供了多種工具,可用于更好地進行團隊協(xié)作。它還具有用于自動構建過程,測試,版本控制和程序包管理的工具
Azure DevOps
提供了5
個主要模塊
Azure Boards:敏捷工具
Azure Repos:無限的、云托管的私人和公共Git
庫
Azure Pipelines:構建流水線
Azure Test Plans:測試工具
Azure Artifacts:制品包存檔
除此之外,在擴展市場還有超過1,000
個應用和工具可供選擇,這點和自家產(chǎn)品VS Code
一樣,有著非常強大的插件生態(tài)
主要步驟如下
訪問dev.azure.com
點擊“免費開始使用”
使用Microsoft
帳戶或Github
帳戶登錄(從2018
年的某一天起,Github
也是微軟自家的了)
創(chuàng)建一個organization
(組織)
創(chuàng)建一個project
(項目)
依次點擊User settings
—> Security
—> SSH Public Keys
—> New key
,輸入本地的git ssh
公鑰
提交測試代碼,從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
創(chuàng)建第一個pipeline
管道
登錄到Azure DevOps
組織,并導航到項目
轉(zhuǎn)到pipeline
,然后選擇"新建Create Pipeline
選擇Azure Repos Git
作為源代碼位置,進一步選擇剛才創(chuàng)建的test-project
這個倉庫
配置項目流水線類型Configure your pipeline
,這里識別出了是java
庫,可選擇的類型有四種
Maven 類型
Maven 類型并部署到 azure cloud 上
自定義最小化 pipeline
選擇現(xiàn)有的 Azure Pipelines YAML 文件
由于倉庫中沒有pipeline
文件,這里選擇自動生成一個pipeline
文件
自動生成的pipeline
文件內(nèi)容如下
# 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[1]
此代理可以綁定微軟云代理,也可以綁定自托管的代理(Linux
、Windows
、macOS
)
申請后過幾個小時就可以了,再去修改代碼觸發(fā)運行或者手動運行pipeline
,成功運行
構建流程運行完成后,就涉及到服務的部署了
在azure devops
中,服務部署支持部署到VM
和kubernetes
環(huán)境
配置目標環(huán)境的方法,選擇Pipelines
—> Environments
—> Create environments
以k8s
資源為例,直接配置連接azure cloud
的k8s
,或者用service account
進行配置通用的k8s
集群
具體的部署模式可以選擇yaml
部署、helm
部署、以及azure devops
支持的Canary
灰度部署等等
azure devops
的模式和gitlab ci
一樣,自身集成了代碼庫管理和devops
流水線功能,其運行任務的節(jié)點類似gitlab runner
,是商業(yè)化devops
產(chǎn)品的一大選擇
最重要的是,azure devops Pipelines
一個月有1800
分鐘的免費額度,這個免費并不是付費才能“解鎖更多姿勢”的那種,足夠良心
從個人使用來看,界面足夠簡約好用
所以綜上,如果是想白嫖使用商業(yè)的devops
產(chǎn)品,azure devops
可以首選
azure pipeline
的語法和gitlab ci
語法也非常類似,后面再提及了
See you ~
[1]
申請免費的Agent: https://aka.ms/azpipelines-parallelism-request
[2]
https://docs.microsoft.com/zh-cn/azure/devops/?view=azure-devops