Azure DevOps介紹
Azure DevOps是一個(gè)包含所有內(nèi)容的軟件包,提供涵蓋整個(gè)SDLC或App開發(fā)生命周期的廣泛服務(wù)。
技術(shù)吸收有時(shí)會(huì)發(fā)生。發(fā)現(xiàn)一種新的工作方式或方法的主要原因是減少了人力。作為人類,我們的努力始終追求卓越,以提高生產(chǎn)率并簡化流程。我們?cè)谌粘I钪惺褂酶鞣N工具,軟件和應(yīng)用程序來管理我們的事物。但是即使是軟件應(yīng)用程序開發(fā)部署需要一些工具鏈,可將您的源代碼保存在云上的私有存儲(chǔ)庫中,跟蹤任務(wù)列表,生成報(bào)告,可以進(jìn)行敏捷計(jì)劃,提供集成的測(cè)試解決方案,這將有助于部署過程,而Azure DevOps – Microsoft的軟件即服務(wù)(SaaS)平臺(tái)應(yīng)運(yùn)而生。Azure DevOps的發(fā)布時(shí)間約為2018年,因此它并不是技術(shù)界的新手。可以使用2006年啟動(dòng)的Visual Studio Team系統(tǒng)跟蹤其起源。
什么是Azure DevOps?
Azure DevOps是一個(gè)包含所有內(nèi)容的軟件包,提供涵蓋整個(gè)SDLC或App開發(fā)生命周期的廣泛服務(wù)。讓我們看一下Azure DevOps的一些重要功能:
-
Azure板:允許工作項(xiàng)跟蹤,敏捷計(jì)劃,Power BI可視化以及類似的其他報(bào)告工具。
-
Azure管道:定義CI / CD-持續(xù)集成和持續(xù)部署過程,并支持容器和Kubernetes。
-
Azure存儲(chǔ)庫:為云托管的專用存儲(chǔ)庫提供全面支持。
-
Azure工件:程序包管理支持來自私有或公共來源的Maven,npm,NuGet和Python程序包提要。
-
Azure測(cè)試計(jì)劃:提供測(cè)試計(jì)劃的集成計(jì)劃和調(diào)查。
-
Azure DevOps是Microsoft提供的功能豐富的成熟模型,可讓企業(yè)同時(shí)管理多個(gè)任務(wù)。
什么是Azure Pipeline?
Azure Pipeline是一組自動(dòng)化的過程,可幫助開發(fā)人員在其他計(jì)算平臺(tái)上編譯,生成和部署代碼。它是一種持續(xù)交付工具,類似于開源Jenkins或CodeShip。該管道的唯一目標(biāo)是無需人工干預(yù),所有更改都將自動(dòng)執(zhí)行。每當(dāng)有人處理該過程時(shí),在執(zhí)行相同的重復(fù)無聊任務(wù)時(shí)都可能會(huì)出現(xiàn)人為錯(cuò)誤,但是有了自動(dòng)化,它在配置后便可以無縫運(yùn)行。
管道通常分為以下幾類:
-
源代碼控制
-
構(gòu)建工具
-
包創(chuàng)建
-
配置管理
-
監(jiān)控方式
Azure Pipelines可以與許多應(yīng)用程序類型一起使用,例如Java,Go,Python,JavaScript,Node.js,.Net,C ++和XCode。若要使用Azure Pipelines,您將需要附帶一個(gè)源控件,并且Azure Pipelines支持各種源控件,例如GitHub,Azure Repos,Bitbucket,Subversion等。
Azure管道基于持續(xù)測(cè)試,構(gòu)建和部署CI / CD管道的強(qiáng)大基礎(chǔ)。他們還通過測(cè)試代碼并將代碼部署到所需的目標(biāo)來自動(dòng)執(zhí)行連續(xù)交付。
持續(xù)集成(CI)
持續(xù)集成有助于在開發(fā)周期的早期階段發(fā)現(xiàn)錯(cuò)誤和問題,而更輕松,更快速地修復(fù)錯(cuò)誤。開發(fā)人員可以在版本控制的存儲(chǔ)庫中檢查其代碼,檢入其代碼以測(cè)試并定位錯(cuò)誤。主要好處是:
-
較小的更改更易于與大代碼合并。
-
大團(tuán)隊(duì)更容易了解每個(gè)團(tuán)隊(duì)的工作。
-
查找錯(cuò)誤,更易于修復(fù)。
-
持續(xù)的代碼編譯和測(cè)試。
-
使集成過程平穩(wěn)可提高生產(chǎn)率。
連續(xù)交付(CD)
持續(xù)交付可幫助開發(fā)人員可靠,快速地交付新功能,修復(fù)錯(cuò)誤并配置更改。連續(xù)交付管道按配置提供例行交付,也可以按需提供。主要好處是:
-
降低發(fā)布中的風(fēng)險(xiǎn)。
-
更快地提供錯(cuò)誤修復(fù)和問題。
-
交付在任何規(guī)模上都是可行的。
-
Azure管道提供YAML語法和經(jīng)典界面來設(shè)置CI-CD管道。
使用YAML語法定義管道
管道取決于代碼的版本,相似的代碼將具有相似的分支結(jié)構(gòu)。您可以設(shè)置觸發(fā)器以在接受任何拉取請(qǐng)求時(shí)啟動(dòng)該過程。您可以觸發(fā)構(gòu)建過程并確定與現(xiàn)有代碼庫集成的問題。
azure-pipelines.yml可用于在應(yīng)用程序的YAML文件中添加管道。
這些是高級(jí)步驟:
-
配置Azure管道以使用您的存儲(chǔ)庫。
-
編輯YAML文件以指定您的構(gòu)建。
-
將代碼推送到特定分支以觸發(fā)該過程。
-
使用經(jīng)典接口定義管道
用戶可以使用經(jīng)典的用戶界面編輯器在Azure DevOps門戶中定義管道。他們還可以為諸如構(gòu)建和測(cè)試代碼的活動(dòng)定義“構(gòu)建管道”,然后發(fā)布工件。此外,他們還可以定義“發(fā)布管道”以使用這些工件并將它們部署在目標(biāo)中。
這些是高級(jí)步驟:
-
配置Azure管道以使用您的存儲(chǔ)庫。
-
使用Azure DevOps Web門戶定義構(gòu)建和發(fā)布管道。
-
將您的代碼推送到特定分支以觸發(fā)該過程。
在這里,我們看到了以兩種方式定義管道的高級(jí)步驟。在跳轉(zhuǎn)到創(chuàng)建新管道之前,讓我們看看在Azure管道中要使用的一些術(shù)語。
Azure DevOps管道的關(guān)鍵組件
-
觸發(fā)器啟動(dòng)要運(yùn)行的管道。
-
管道可以具有多個(gè)階段。管道可以部署到單個(gè)或多個(gè)環(huán)境。
-
可以指定一個(gè)階段來管理管道中的作業(yè),并且每個(gè)階段都有各種作業(yè)。
-
每個(gè)作業(yè)都在一個(gè)代理上運(yùn)行。作業(yè)也可能沒有代理人。
-
每個(gè)代理運(yùn)行一個(gè)可能包含多個(gè)步驟的作業(yè)。
-
步驟可以是腳本或任務(wù)之類的任何東西,它是管道的緊湊部分。
-
任務(wù)是預(yù)先打包的腳本,其作用類似于發(fā)布構(gòu)建工件或調(diào)用REST API。
-
運(yùn)行會(huì)發(fā)布一堆稱為工件的文件或捆綁包。
Agents
代理程序是一種具有已安裝的代理程序軟件的計(jì)算體系結(jié)構(gòu),當(dāng)代理程序附帶的作業(yè)運(yùn)行時(shí),該軟件將運(yùn)行一組步驟。有關(guān)此組件的詳細(xì)信息,請(qǐng)檢查構(gòu)建和發(fā)布代理。
Approvals
它指定了可以執(zhí)行部署之前所需的一組驗(yàn)證。它用于管理對(duì)生產(chǎn)環(huán)境的部署。配置檢查后,管道將暫停并停止,然后再開始部署過程。只有選中并成功完成所有取消選中選項(xiàng),他們才會(huì)重新啟動(dòng)該過程。有關(guān)任何信息,請(qǐng)?jiān)L問定義批準(zhǔn)和檢查。
Artifacts
它是由構(gòu)建管道發(fā)布的軟件包或文件的捆綁包。了解有關(guān)Azure Pipelines中的工件的更多信息。
Deployment group
它是安裝了代理的一系列目標(biāo)計(jì)算機(jī)。使用部署組可以輕松地為機(jī)器中的管道設(shè)置部署目標(biāo)。查看有關(guān)部署組的更多信息。
Environment
當(dāng)一大堆不同的資源聚集在一起并部署應(yīng)用程序時(shí),則稱為環(huán)境。它可以是虛擬機(jī),容器,Web應(yīng)用程序或任何服務(wù)的集合。
Job
該階段包含許多作業(yè),每個(gè)作業(yè)都在一個(gè)代理上運(yùn)行。作業(yè)定義了要執(zhí)行的一組步驟的執(zhí)行邊界。
Pipeline
管道是CI / CD流程的一部分,其中有很多階段。您可以將其想象為一種順序形式的工作流,在其中測(cè)試,構(gòu)建和部署應(yīng)用程序。
Run
運(yùn)行命令用于在管道中實(shí)現(xiàn)任何功能。它收集與當(dāng)前正在運(yùn)行的步驟鏈接的日志,并且當(dāng)前已實(shí)現(xiàn)測(cè)試結(jié)果。在運(yùn)行過程中,Azure Pipelines將首先評(píng)估管道,然后將運(yùn)行轉(zhuǎn)移到各種代理。作業(yè)將由每個(gè)代理執(zhí)行。詳細(xì)了解 管道運(yùn)行順序。
Script
腳本可以是在管道中運(yùn)行代碼的Bash,命令行或PowerShell。
Stage
在管道中,存在一個(gè)用于監(jiān)視性能的邏輯邊界,稱為“階段”。
Task
任務(wù)是捆綁了一對(duì)輸入的捆綁腳本或方法。
摘要
在Azure DevOps Pipelines的整個(gè)討論中,我們了解了它們能夠提供的各種服務(wù),以簡化總體操作并優(yōu)化每個(gè)流程。此過程將使用健壯且可擴(kuò)展的Azure平臺(tái)將所有工作流均等地劃分為可管理的格式,以使用持續(xù)集成和連續(xù)部署方法在管道中部署解決方案。
