成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

零基礎學習如何構建CI/CD管道

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

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

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

零基礎學習如何構建CI/CD管道

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

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

零基礎學習如何構建CI/CD管道

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

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

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

最初,開發團隊將軟件代碼提交到版本控制系統(如git或svn)。接下來,代碼進入構建階段,這是管道的第一個階段,開發人員將其代碼導入其中,進而在打上適當的版本標簽之后,再返回到版本控制系統。 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

動手實踐:使用Docker和Jenkins來構建CI/CD管道

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

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

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

步驟 2:在指定端口上打開Jenkins。單擊“新建項目”以創建新的作業。 

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

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

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

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

步驟 7:單擊“新建項目”,以創建新的作業。 

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

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

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

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

步驟 12:單擊“新建項目”,以創建新的作業。 

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

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

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

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

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

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

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

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

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

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

步驟 23:現在,我們將創建一個管道的視圖。請點擊“+”號。 

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

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

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

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

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

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

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

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2022-02-22 09:00:00

軟件開發CI/CD 管道工具

2023-02-19 15:28:39

CI/CD 管道集成開發

2021-08-31 09:00:00

開發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 管道軟件開發

2023-04-18 08:17:11

GitLab持續集成

2021-03-23 17:21:48

Java編程開發

2024-11-06 14:40:18

2019-07-25 10:31:55

AWSDevOps架構

2015-10-29 11:35:53

零基礎前端設計

2021-03-31 09:00:00

管道集成工具

2021-01-21 06:06:30

Jenkins分支管道CI

2020-06-05 07:20:41

測試自動化環境

2020-10-21 14:10:28

工具測試開發

2019-11-11 14:09:17

Swift數據科學語言

2021-03-15 22:56:55

大數據技術高薪
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久 | 国产电影一区二区 | 久久久久久免费毛片精品 | 国产区精品在线观看 | 99国产精品视频免费观看一公开 | 久久精品亚洲一区 | 国产精品无码久久久久 | 日韩精品久久久久久 | 天天干成人网 | 亚洲精品毛片av | 亚洲精品乱码久久久久久黑人 | 久久久这里都是精品 | 粉嫩av| 国产精品免费一区二区三区 | 99福利视频| 欧美第一页 | 91av小视频| 91麻豆精品国产91久久久久久 | 999久久久久久久久6666 | 国产真实精品久久二三区 | 黑人精品欧美一区二区蜜桃 | 91亚洲国产 | 欧美精品网站 | 欧美亚洲免费 | 久久久91精品国产一区二区三区 | 91色视频在线观看 | 黄色香蕉视频在线观看 | 亚洲综合国产精品 | 日韩国产一区二区 | 国产精品美女久久久久久免费 | 国产福利在线免费观看 | 国产乱码精品一品二品 | 极情综合网 | 人人做人人澡人人爽欧美 | 一级黄色片毛片 | 国产日韩精品久久 | 国产成人精品久久二区二区91 | 天天操夜夜看 | 91成人免费观看 | 欧美综合国产精品久久丁香 | 一级无毛片 |