因為今年的文章將會是去年系列文章的接續,因此自然需要安排一下上集回顧來簡單說明上一個系列文章提到了些什麼。
如果你是剛開始要使用Azure DevOps的新手,我建議你可以從上一個系列的文章開始閱讀,如果已經有些使用Azure DevOps經驗的朋友,就讓我們來看看去年提到了哪些東西吧!
首先,一開始簡單的介紹了Azure DevOps,在「Azure DevOps介紹」中說明了有哪些大項目的工具可以使用,並且提到了它的計費方式,主要分為雲端版的訂閱使用方案,每個月根據使用者人數與一些額外的服務數量來計算費用,地端版(OnPremises)則是和傳統伺服器軟體相同,除了買授權之外,還要自己處理伺服器相關的問題。
使用Azure DevOps最基本的就是要分清楚「Organization(組織)與Projects(專案)」的差別,這樣子你才會知道哪些東西放在哪裡,或是有些設定的東西該去哪裡找,尤其是使用者與權限的部份。
說到DevOps一定少不了程式碼的版本控管,而版本控管除了現在流行的Git分散式管理機制之外,過去一段時間的版本控制系統是中央集中式的管理,微軟在這部份的產品則是Team Foundation Server中的Version Control,也就是TFVC的版本控管方式。這兩個分別在「版本控制系統Repos:初探Git Repo」、「版本控制系統Repos:建立第二個Repo,TFVC Repo」這兩篇文章中有介紹。
了解完前面基本的概念之後,我想DevOps的重頭戲就是在CI與CD的部份,對應到Azure DevOps上的Pipelines(以前叫Build)與Releasses,下面的幾篇文章內容都是在講這方面的事情:
- CI/CD從這裡:開始之前的準備(範例介紹)
- CI/CD從這裡:設定第一個Pipeline(範本與編輯介面介紹)
- CI/CD從這裡:設定第一個Pipeline(成功與失敗)
- CI/CD從這裡:編譯專案與上傳成品
- CI/CD從這裡:第2個Pipeline,建立共用的Build Pipeline
- CI/CD從這裡:Pipeline設定Schedule,每日晚上排程執行
- CI/CD從這裡:Pipeline設定Yaml以外的Trigger方式
- CI/CD從這裡:建立第一個Releases Pipeline
- 設定Build Pipeline與Release Pipeline的執行權限
- YAML格式以外的Pipeline傳統編輯器(Classic Editor)
- Build Pipeline的YAML結構描述:多個Agent Job
- 設定Pipeline的識別文字格式
- 再次建立Release pipeline:多個不同Artifacts來源
上面這13個連結佔了去年鐵人賽30篇文章接近一半,真的要很熟悉的使用Azure DevOps這些仍然遠遠不夠,但是它也足以應付簡單或基本的需求了。例如小型的團隊應用,或是單一的系統專案。如果需求沒有很複雜,又不太想面對YAML格式的設定,或是不想在程式碼的Git倉庫(Repository)裡面放Pipeline的YAML檔案,那麼「YAML格式以外的Pipeline傳統編輯器(Classic Editor)」這裡面提到的傳統編輯器(Classic Editor)也是一個作法。
DevOps的Pipeline要能夠執行,一定是有一台機器上有對應的程式在跑,它可以是在VM中執行,或是在Container中執行,這個程式就是Agent程式,協助我們將設計的流程步驟依序的執行,所以了解Agent的部份也是不可或缺的,下面的幾篇文章就介紹了Azure DevOps的Agent:
- CI/CD的關鍵:Azure DevOps Agent
- 建立自管的Azure DevOps Agent(Windows VM agent)
- 建立自管的Azure DevOps Agent(Windows Container agent)
- 建立自管的Azure DevOps Agent(Linux Container agent)
我個人覺得Azure DevOps好用的地方就是它入門上手不會太困難,要建立Pipeline的動作也不需要花費太多心思寫Script或是熟悉其它工具的CLI或API要怎麼使用,因為有很多微軟官方或是第三方設計的Tasks。除了內建的Tasks可以組合應用之外,找不到符合需求的項目就去Marketplace上找找看有沒有人根據類似的需求寫了Extension,所以知道哪裡可以找到Extensions以及如何安裝使用也是滿重要的一件事,這部份則是寫在「Extensions for Azure DevOps:Azure DevOps也能裝外掛?」。
如果貴公司使用的IM軟體同樣是微軟的Teams,那麼有個好用的功能絕對不能錯過,就是Azure DevOps與Teams整合的通知功能,這個在去年的文章「接收Azure DevOps的通知:Teams頻道中的Azure DevOps連結器」裡面也有介紹到,今年的文章中它將會再度出現一小段的篇幅。
上面已經大致上列出了去年所寫的文章,剩下的扣掉前言與結尾我一樣列在下面,如果同樣是使用微軟的.Net與Nuget可能會比較有幫助,不是的話就參考看看吧!