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/devop
用最淺顯、直白的方式,分享最實用的程式開發相關知識與操作