Azure DevOps的使用入門

1、介紹
Azure DevOps
是由微軟開發的服務平臺,它提供了多種工具,可用於更好地進行團隊協作。它還具有用於自動構建過程,測試,版本控制和程式包管理的工具
Azure DevOps
提供了 5
個主要模組
Git
除此之外,在擴充套件市場還有超過 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 [email protected]: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 ~
- Gradle打包工具入門
- 服務網格和Istio初識-續
- 服務網格和Istio初識
- Golang與非對稱加密
- ack叢集Terway網路場景下的vSwitch擴容
- Golang與對稱加密
- 基於ack k8s叢集排程的方案設計
- 基於Dockerfile構建容器映象的最佳實踐
- Golang反射-下篇
- Golang反射-上篇
- Azure DevOps的使用入門
- Golang介面型別-下篇
- Golang介面型別-上篇
- 基於Python實現原生的登入驗證碼
- Golang開發命令列工具之flag包的使用
- Golang檔案操作-下篇
- k8s環境下處理容器時間問題的多種姿勢
- Golang基準測試
- 淺談Prometheus的資料儲存
- Golang單元測試