Azure DevOps的使用入門

語言: CN / TW / HK

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 http://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:
# http://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

此代理可以繫結微軟雲代理,也可以繫結自託管的代理( LinuxWindowsmacOS

申請後過幾個小時就可以了,再去修改程式碼觸發執行或者手動執行 pipeline ,成功執行

4、服務的部署

構建流程執行完成後,就涉及到服務的部署了

azure devops 中,服務部署支援部署到 VMkubernetes 環境

配置目標環境的方法,選擇 Pipelines —> Environments —> Create environments

k8s 資源為例,直接配置連線 azure cloudk8s ,或者用 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 ~