Azure DevOpe —— Azure Pipeline

Azure Pipeline

這是整個 Azure DevOps 的重頭戲,也是微軟願意獨立開放和打重金宣傳的模塊。雖然其他模塊(限本地版)可以自由的開啓和關閉,但微軟對該模塊有一個強有力的口號:*“Build in any program, release to any platform”,也就是說,它可以編譯任何程序,然後發佈到任意平臺。

當然,它也是做持續集成(CI)和持續部署(CD)的關鍵模塊,就好比現在市面上其他流行工具,如 Jenkins、TeamCity、Bamboo 等等工具,但 Azure Pipeline 比他們更有優勢

  • 界面更加人性化
    Jenkins 不說了,可以說就是給沒有美感的程序員使用的,和任何互聯網產品相比無疑是最醜的。

  • 操作更方便
    拖拖拽拽就能完成你想要的功能,基本上微軟的產品都是圍繞這個思路進行的。所以,Azure Pipeline 中集成了很多的任務供你選擇,不怎麼需要懂寫完整的代碼就能集成你想要的程序。

  • 更好地本地化語言支持
    Jenkins 據說有中文包,但某些好像也翻譯不完全,TeamCity 和 Bamboo 根本只有英文版;而Azure DevOps 整套本地版支持本地化語言。

當然最大的優勢就是和微軟的 Azure 以及 .NET 結合咯,不過 .NET 已經不是微軟的唯一選擇了,任何語言任何平臺都可以。

言歸正傳

首先看到左邊的導航,有一個火箭圖標的
在這裏插入圖片描述

生成(Build)

你可以把服務器想象成你本地計算機,

  • 首先你得獲取源代碼,比如從遠程的 github 或本地的 Azure Repos 倉庫;
  • 然後使用工具對源代碼進行編譯,只有編譯通過的代碼纔可以使用,當然取決於你使用的語言,如果是 Python 或者 Javascript 就不需要編譯了;
  • 當然你也可以加入其它的部分,比如跑單元測試、代碼安全掃描等等,但最終的結果是拿到一個可以被髮布的包。

這就是一個管道模式,你配置要做的任務,它會一步一步的往下走,直至結束。

如果你是新項目,旁邊會有這個提示
在這裏插入圖片描述

點擊這個“新管道”,就進入了配置頁面。

獲取源代碼

在這裏插入圖片描述
當然第一步就是獲取源代碼,沒有源代碼就無法編譯打包。

配置管道

在這裏插入圖片描述
右邊已經有爲特定語言配置好的任務,你只需要點擊 “應用” 就會跳轉到下一個頁面

在這裏插入圖片描述
我選擇了一個 ASP.NET 的末班,它會給我自動生成這些步驟。右邊就是爲選擇好的任務進行參數配置,這裏就不細說了。

代理

在 Azure Pipeline 中,代理分爲兩種,一種叫生成代理(Release Agent),另一種叫部署代理(Deploy Agent)

代理是幹什麼用的?

言簡意賅就是幫你跑管道任務的。

難道你會在某一個服務器安裝各種語言的 SDK 嗎?比如 Java 的JRE,.NET Framework 或 Python 等等,Java 和 Python 會安裝在 Linux 服務器上,而 .NET 或 C++ 的只能在 Windows 服務器上安裝,因此爲了讓服務器可以分佈式,就有了代理。

每一臺服務器安裝一個代理,Azure Pipeline 根據你的配置和選擇,去呼喚相應服務器的代理,然後幫你把源代碼進行編譯。

部署代理也是同理,可能A服務器要發佈到 Tomcat 上,B服務器要發佈到 IIS 上,C服務器需要部署在 Docker 上,服務器通過代理獲取生成好的包,然後進行不同服務器的部署。

發佈和部署沒有代理就無法工作
這一章就不會細說怎麼弄代理。

發佈

就是將指定生成好的部署包,進行發佈,當然這也是一個管道模式。
在這裏插入圖片描述

項目

就是你要選擇怎麼進行部署,使用哪一個生成包進行部署。
在這裏插入圖片描述
默認支持現在比較流行的幾種模式。

階段

就是你需要部署的環境

可以並行、或者串行,比如只有成功部署到了 DEV 環境,才能對 SIT 環境進行部署,或者一次性部署到多臺服務器環境,比如我有5臺DEV服務器。

大概看一個真實的例子吧
在這裏插入圖片描述

變量

這個東西在 DevOps 中無處不在,和你編程一樣,有時候你總不能到處都輸入一大串字符串吧?例如部署的路徑(D://wwwroot/xxxx/release/api/docker/…),所以使用變量可以讓這些輸入進行統一化。

就是你自定義的變量組

比如數據庫字符串,你可以定義一組變量來進行配置,就好比你做系統的表單頁面一樣。
在這裏插入圖片描述

任務組

就是自定義管道中的任務

你可以把你某個生成或部署的多個任務封裝成一個任務組,這樣的話就不需要每一次都提交一大串任務了,比如配置環境變量、獲取組件包(Maven/Nuget/PIP/npm)、Tomcat 的配置、Web 站點的 url 等等。

在這裏插入圖片描述

部署組

就是剛纔說的部署代理

在這裏插入圖片描述

總結

不管從界面上、易用性上我都推薦你使用 Azure Pipeline,當然收費模式你可以自己去官網看看,你不想用雲的話,就自己搭建一個吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章