DevOps可以稱為一種工作文化,主要在實現一種將專案從開發、到測試、再到發佈產品的整個流程自動化、透明化的概念。讓開發人員和品管、測試人員之間無隔閡的一種開發理念。
要實現這樣的理念,就要有許多的工具進行整合,將整個專案的每個步驟串接起來。以下說明目前透過ASP.NET的專案進行的DevOps實作:
上圖為已經實作的DevOps架構,透過Jenkins為主的自動化佈建工具,將專案從開發、到測試、再到發佈產品的整個流程。
由上圖可看到開發人員(Developer)將各自開發更新的程式碼上傳git server (ex. GitHub)後,由於Jenkins已在GitHub帳號嵌入webhook,因此每當GitHub發生更新事件,就會通知Jenkins進行第一步:Download source code from github。
Jenkins從GitHub下載最新的程式碼後進行第二步:Build source code 。此處依據專案的程式碼語言需在Jenkins中設定相對應的編譯環境。以ASP.NET Core為例,需要在Jenkins中安裝設定nuget,使Jenkins在編譯程式碼時下載相關的第三方程式庫。
而依據不同的程式碼語言,開發人員須自行開發單元測試(Unit test),在Jenkins中可設定執行Unit test程式碼以進行第三步:Unit test function。
第四步:Source code detection ,主要是對程式碼進行bug檢測、安全性掃描、程式邏輯檢查。主要透過SonarQube進行,完成檢測後產生網頁報表、Log紀錄。
第五步:Deliver and deploy to target place。在前四步都通過後,將最後的binary file和相關的產出檔案搬移至目標機台上,甚至是直接更新部屬並運行。
PS.
- 有問題或錯誤即停止動作並透過通訊媒介(ex. Teams, e-Mail)通知相關人員。
- 1~4步屬於CI,第5步屬於CD。
- 一般來說進行完CI步驟後通知主要把關人員,確認無誤後再進行CD。
建構的步驟依序如下:
[DevOps] 實作軟體CI/CD運行架構 - CI part
https://programmingyourlife.blogspot.com/2020/05/devops-cicd-ci-part.html
[DevOps] 實作軟體CI/CD運行架構 - ASP.NET Core test unit 單元測試
https://programmingyourlife.blogspot.com/2020/05/devops-cicd-aspnet-core-test-unit.html
[DevOps] Sonarqube程式碼檢測,環境建置
https://programmingyourlife.blogspot.com/2020/06/devops-sonarqube.html
[DevOps] Sonarqube程式碼檢測在Jenkins介面中自動執行
https://programmingyourlife.blogspot.com/2020/06/devops-sonarqubejenkins.html
[DevOps] 實作軟體CI/CD運行架構 - CD part
https://programmingyourlife.blogspot.com/2020/05/devops-cicd-cd-part.html
留言
張貼留言