偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

零基礎(chǔ)學(xué)習(xí)如何構(gòu)建CI/CD管道

譯文
運(yùn)維 系統(tǒng)運(yùn)維
作為DevOps落地的起點(diǎn),理解CI/CD、并學(xué)會(huì)如何從零開始構(gòu)建管道是非常重要的。DevOps是一種軟件開發(fā)的方法,它涉及到持續(xù)開發(fā)、持續(xù)測試、持續(xù)集成、持續(xù)部署、以及在整個(gè)開發(fā)的生命周期中對(duì)于軟件的持續(xù)監(jiān)控。

【51CTO.com快譯】對(duì)于CI/CD(持續(xù)集成/連續(xù)部署)管道的實(shí)現(xiàn)是如今構(gòu)建DevOps模式的基礎(chǔ)。通過自動(dòng)化應(yīng)用程序的生成、測試與部署,它能夠彌合開發(fā)和運(yùn)營團(tuán)隊(duì)之間的差距。通過本文,您將了解到何為CI/CD管道、以及它的工作原理。

在討論CI/CD管道之前,讓我們先來理解一下DevOps。 

零基礎(chǔ)學(xué)習(xí)如何構(gòu)建CI/CD管道

DevOps是一種軟件開發(fā)的方法,它涉及到持續(xù)開發(fā)、持續(xù)測試、持續(xù)集成、持續(xù)部署、以及在整個(gè)開發(fā)的生命周期中對(duì)于軟件的持續(xù)監(jiān)控。所有頂尖公司都通過采用該流程,實(shí)現(xiàn)了高質(zhì)量軟件的開發(fā)、研發(fā)周期的縮短,以及客戶滿意度的提高,因此它非常適合于大多數(shù)公司的采納與跟進(jìn)。

想學(xué)習(xí)DevOps,就需要先理解它的生命周期。我們下面來看看DevOps的生命周期,并探討一下它與各個(gè)軟件開發(fā)階段之間的關(guān)系。 

零基礎(chǔ)學(xué)習(xí)如何構(gòu)建CI/CD管道

CI代表了持續(xù)集成,而CD則代表著持續(xù)交付或持續(xù)部署。如上圖所示,您可以將其視為類似于軟件開發(fā)生命周期的一個(gè)過程。 

讓我們具體來看看它是如何工作的。上述管道從邏輯的角度演示、說明了軟件是如何沿著其生命周期的每個(gè)階段向前移動(dòng),直至最終被交付給客戶或部署到生產(chǎn)環(huán)境中。

讓我們假設(shè)一個(gè)CI/CD的管道場景。例如:您要構(gòu)建一個(gè)Web應(yīng)用程序,并將它部署到在線的Web服務(wù)器上。那么您手頭應(yīng)該有一組負(fù)責(zé)代碼編寫的開發(fā)團(tuán)隊(duì),他們將進(jìn)一步去著手構(gòu)建Web應(yīng)用程序。

最初,開發(fā)團(tuán)隊(duì)將軟件代碼提交到版本控制系統(tǒng)(如git或svn)。接下來,代碼進(jìn)入構(gòu)建階段,這是管道的第一個(gè)階段,開發(fā)人員將其代碼導(dǎo)入其中,進(jìn)而在打上適當(dāng)?shù)陌姹緲?biāo)簽之后,再返回到版本控制系統(tǒng)。 

假設(shè)我們手頭已有一些Java程序代碼,并且需要在執(zhí)行之前進(jìn)行構(gòu)建。那么在經(jīng)過了剛才的版本控制階段,代碼再次來到構(gòu)建階段,并在此完成編譯。所謂構(gòu)建階段,實(shí)際上就是您從不同的存儲(chǔ)庫分支處獲取該代碼的所有特征,通過合并,最后使用編譯器來對(duì)它進(jìn)行編譯的整個(gè)過程。 

一旦完成了構(gòu)建,我們就進(jìn)入到了測試階段。在此階段中,我們將采取各種測試,其中包括:功能塊測試、單元測試、以及可用性測試。

 

在測試完成之后,我們將移步至部署階段,即:將代碼部署到暫存服務(wù)器或測試服務(wù)器中。在此階段,您可以通過模擬器來查看具體的代碼,及其整個(gè)應(yīng)用程序的運(yùn)行狀況。 

一旦成功部署了代碼,您就可以開展另一輪可用性測試了。如果一切正常,那么該代碼就可以被部署到生產(chǎn)環(huán)境了。 

同時(shí),如果在任何一個(gè)步驟中出現(xiàn)了錯(cuò)誤,您完全可以通過電子郵件發(fā)回給開發(fā)團(tuán)隊(duì),以便他們及時(shí)予以修復(fù)。然后,他們會(huì)將新的代碼推送到版本控制系統(tǒng)中,讓其重回管道。 

此流程周而復(fù)始,直到我們完成所有的測試與驗(yàn)證,最終將代碼部署并導(dǎo)入生產(chǎn)環(huán)境的服務(wù)器上。

至此,我們已經(jīng)了解了CI/CD管道及其工作原理。下面,我們將繼續(xù)討論何為Jenkins、如何通過Jenkins來部署演示性代碼、以及自動(dòng)化整個(gè)過程。

CI工具及其他在CI/CD管道中的重要性

我們的任務(wù)是:從開發(fā)團(tuán)隊(duì)提交代碼,到我們將其投入生產(chǎn)環(huán)境的全過程,實(shí)現(xiàn)自動(dòng)化。因此,為了在整個(gè)軟件開發(fā)生命周期中實(shí)現(xiàn)DevOps管道的自動(dòng)化模式,我們需要用到一些相應(yīng)的自動(dòng)化工具。 

Jenkins為我們提供了各種接口和工具,來自動(dòng)化整個(gè)軟件交付的過程。

首選,我們需要有一個(gè)Git的存儲(chǔ)庫,以供開發(fā)團(tuán)隊(duì)提交他們的代碼。然后,Jenkins就從此處開始“接手”。它是一款前端工具,您可以自定義整個(gè)工作流或任務(wù)。在此,我們的工作就是要確保對(duì)特定工具、或特定應(yīng)用程序,實(shí)現(xiàn)持續(xù)集成與交付的過程。

從Git的角度而言,Jenkins采取的是“拉代碼”的模式,然后Jenkins轉(zhuǎn)向交付階段,實(shí)現(xiàn)從各個(gè)分支提交代碼。構(gòu)建階段主要進(jìn)行的是代碼編譯。如果是Java代碼,我們可以使用Jenkins中諸如maven之類的工具,來編譯代碼,并且通過運(yùn)行一系列測試來實(shí)現(xiàn)部署。同樣,這些測試案例也都是由Jenkins來進(jìn)行“監(jiān)管”的。

之后,代碼被轉(zhuǎn)移到緩存服務(wù)器上,以便使用Docker來進(jìn)行部署。最后,在經(jīng)過一系列單元測試和可用性測試之后,代碼“流入”生產(chǎn)環(huán)境。 

Docker是一個(gè)虛擬環(huán)境,我們可以在其中創(chuàng)建服務(wù)器。實(shí)際上,創(chuàng)建一整臺(tái)服務(wù)器、并部署需要測試的工件也只需要幾秒鐘的時(shí)間。那么我們?cè)撊绾问褂肈ocker呢?

如前所述,通過存儲(chǔ)庫,我們不但可以永久性地存儲(chǔ)各種鏡像,還能幾秒鐘之內(nèi)構(gòu)建出自己的鏡像系統(tǒng),并且運(yùn)行整個(gè)群集。另外,您還可以在任何環(huán)境中隨時(shí)對(duì)它們進(jìn)行按需復(fù)制。

動(dòng)手實(shí)踐:使用Docker和Jenkins來構(gòu)建CI/CD管道

步驟 1:在VM中打開終端,使用以下命令啟動(dòng)Jenkins和Docker: 

  1. systemctl start jenkins   
  2. systemctl enable jenkins  
  3. systemctl start docker  

注意:如果系統(tǒng)顯示“特權(quán)錯(cuò)誤(privileges error)”,請(qǐng)?jiān)谏鲜雒钪跋仁褂胹udo。

步驟 2:在指定端口上打開Jenkins。單擊“新建項(xiàng)目”以創(chuàng)建新的作業(yè)。 

步驟 3:選擇一個(gè)自由類型(freestyle)項(xiàng)目,并輸入項(xiàng)目的名稱(此處我使用的是Job1),然后單擊確定。 

步驟 4:選擇源代碼管理(Source Code Management)并點(diǎn)選Git存儲(chǔ)庫。單擊應(yīng)用并保存(Apply and Save)按鈕。 

步驟 5:然后依次點(diǎn)擊構(gòu)建(Build) -> 選擇執(zhí)行(Execute)Shell。  

步驟 6:逐條輸入shell命令。在此,它將通過建立存檔文件,來產(chǎn)生一個(gè)war文件。之后,它通過“拉”的方式獲得相關(guān)代碼,并且使用maven來安裝軟件包。注意,它只需安裝各個(gè)依賴項(xiàng),并對(duì)應(yīng)用程序進(jìn)行編譯。 

步驟 7:單擊“新建項(xiàng)目”,以創(chuàng)建新的作業(yè)。 

步驟 8:選擇自由類型(freestyle)項(xiàng)目,并輸入項(xiàng)目的名稱(此處我使用的是Job2),然后單擊確定。 

步驟 9:選擇源代碼管理(Source Code Management)并點(diǎn)選Git存儲(chǔ)庫。單擊應(yīng)用并保存(Apply and Save)按鈕。 

步驟 10:然后依次點(diǎn)擊構(gòu)建(Build) -> 選擇執(zhí)行(Execute)Shell。  

步驟 11:逐條輸入shell命令。在此,它將進(jìn)入集成階段,并生成相應(yīng)的Docker容器。 

步驟 12:單擊“新建項(xiàng)目”,以創(chuàng)建新的作業(yè)。 

步驟 13:選擇自由類型(freestyle)項(xiàng)目,并輸入項(xiàng)目的名稱(此處我使用的是Job3),然后單擊確定。 

步驟 14:選擇源代碼管理(Source Code Management)并點(diǎn)選Git存儲(chǔ)庫。單擊應(yīng)用并保存(Apply and Save)按鈕。 

步驟 15:然后依次點(diǎn)擊構(gòu)建(Build) -> 選擇執(zhí)行(Execute)Shell。 

步驟 16:逐條輸入shell命令。在此,它將檢查Docker的容器文件,然后將其部署到8180號(hào)端口上。請(qǐng)單擊“保存”按鈕。 

步驟 17:現(xiàn)在依次點(diǎn)擊Job1 -> 配置(Configure)。 

步驟 18:單擊構(gòu)建后操作(Post-build Actions) -> 構(gòu)建其他項(xiàng)目(Build other projects)。 

步驟 19:輸入在Job1之后構(gòu)建的項(xiàng)目名稱(此處為Job2),然后單擊“保存”。 

步驟 20:現(xiàn)在點(diǎn)擊Job2 -> 配置(Configure)。 

步驟 21:單擊構(gòu)建后操作(Post-build Actions) -> 構(gòu)建其他項(xiàng)目(Build other projects)。 

步驟 22:輸入在Job2之后構(gòu)建的項(xiàng)目名稱(此處為Job3),然后單擊“保存”。 

步驟 23:現(xiàn)在,我們將創(chuàng)建一個(gè)管道的視圖。請(qǐng)點(diǎn)擊“+”號(hào)。 

步驟 24:選擇“構(gòu)建管道視圖(Build Pipeline View)”,并輸入視圖的名稱(此處我命名為CI CD Pipeline)。 

步驟 25:選擇初始化作業(yè)(initialJob,這里我輸入了Job1),并單擊確定。 

步驟 26:單擊“運(yùn)行(Run)”按鈕,以啟動(dòng)CI/CD進(jìn)程。 

步驟 27:在成功構(gòu)建之后,請(qǐng)輸入localhost:8180/sample.text。它將能夠運(yùn)行該應(yīng)用程序。 

至此,我們已經(jīng)了解了如何使用Docker和Jenkins來創(chuàng)建一個(gè)CI/CD管道。記?。篋evOps的宗旨就是為了能夠更快速、更可靠地創(chuàng)建出更高質(zhì)量的軟件,同時(shí)也能促進(jìn)團(tuán)隊(duì)之間更密切的溝通和協(xié)作。

原文標(biāo)題:Learn How to Set Up a CI/CD Pipeline From Scratch,作者:Samarpit Tuli 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2022-02-22 09:00:00

軟件開發(fā)CI/CD 管道工具

2023-02-19 15:28:39

CI/CD 管道集成開發(fā)

2021-08-31 09:00:00

開發(fā)Azure DevOp集成

2023-01-30 15:55:08

2022-05-19 09:00:00

安全CI/CD工具

2021-07-02 16:30:01

CICDDevOps

2023-05-04 16:03:50

KubernetesCI/CD集成

2020-12-15 16:13:21

DevSecOpsCICD

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發(fā)

2023-04-18 08:17:11

GitLab持續(xù)集成

2021-03-23 17:21:48

Java編程開發(fā)

2024-11-06 14:40:18

2019-07-25 10:31:55

AWSDevOps架構(gòu)

2015-10-29 11:35:53

零基礎(chǔ)前端設(shè)計(jì)

2021-01-21 06:06:30

Jenkins分支管道CI

2021-03-31 09:00:00

管道集成工具

2020-06-05 07:20:41

測試自動(dòng)化環(huán)境

2020-10-21 14:10:28

工具測試開發(fā)

2019-11-11 14:09:17

Swift數(shù)據(jù)科學(xué)語言

2021-09-26 09:26:46

開發(fā)安全CICD管道
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)