自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

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

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

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

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

最初,開發(fā)團隊將軟件代碼提交到版本控制系統(tǒng)(如git或svn)。接下來,代碼進入構(gòu)建階段,這是管道的第一個階段,開發(fā)人員將其代碼導入其中,進而在打上適當?shù)陌姹緲撕炛螅俜祷氐桨姹究刂葡到y(tǒng)。 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

Docker是一個虛擬環(huán)境,我們可以在其中創(chuàng)建服務器。實際上,創(chuàng)建一整臺服務器、并部署需要測試的工件也只需要幾秒鐘的時間。那么我們該如何使用Docker呢?

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

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

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

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

注意:如果系統(tǒng)顯示“特權(quán)錯誤(privileges error)”,請在上述命令之前先使用sudo。

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

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

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

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

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

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

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

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

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

步驟 11:逐條輸入shell命令。在此,它將進入集成階段,并生成相應的Docker容器。 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步驟 26:單擊“運行(Run)”按鈕,以啟動CI/CD進程。 

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

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

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

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

責任編輯:龐桂玉 來源: 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)

2021-03-31 09:00:00

管道集成工具

2021-01-21 06:06:30

Jenkins分支管道CI

2015-10-29 11:35:53

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

2020-06-05 07:20:41

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

2020-10-21 14:10:28

工具測試開發(fā)

2021-09-26 09:26:46

開發(fā)安全CICD管道

2021-07-28 13:23:32

CICD管道安全漏洞
點贊
收藏

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