iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

https://ithelp.ithome.com.tw/upload/images/20230929/20162058deskjtRp5H.png

(圖片引用自:https://blog.gitguardian.com/security-zines-2-compromising-ci-cd-pipelines/)

CI/CD主要流程

程式push到github上,接著觸發Jenkins pull 程式碼,使用Maven 編譯打包程式,並經過Jenkins pipeline + sonarQube 做一些程式碼檢測、以及程式JUnit Test檢測,完成後構建出一個新版本的image,再push到harbor,再把最新的版本image pull 下來、並刪除原本的container,重新運行新版本的image。

CI 與 CD 以 CI/CD工具 Jenkins,跟在Jenkins中通常的配置與觸發點

CI/CD有相當多的工具可以使用,以下只針對Jenkins使用為例做說明。

Jenkins 是開源的 CICD 工具,提供大量免費的插件,更便於自動化的完成整個CICD相關的流程,拉取、集成、構建、測試程式碼,達成更方便的自動化管理。

CI (continuous integration):持續整合,確保程式的穩定性。

Jenkins 配置觸發點通常會設定在,每次發PR或push時就會自動到CI檢核,檢核所設定的條件是否符合,當條件皆符合以後,CI檢核通過,才會通過此次PR,並且才能夠執行合併branch到main分支。

通常檢核規則會設定類似以下的規範,這個程式能夠正常編譯通過、程式碼一些檢核規範、執行程式中的Junit Test通過等等。

CD (continuous delivery / continuous deployment):持續部屬,確保部屬的持續是最新的release版本。

觸發點:每當修改完成後,確認好一個要上線的版本,透過github release 新的版本,並將新版本儲存到目標服務器上。自動化讓這個服務,或是其他有引用的相關服務,自動佈署最新的版本並且上線使用。

https://ithelp.ithome.com.tw/upload/images/20230929/20162058gh4kQ46bFn.png

使用Jenkins的好處

能透過自動化加速每一個版本程式碼的檢核與發布,並能透過制定統一性的檢核規範,只需要在push程式碼時,就能自動協助做完完整的檢核流程,並在產生問題時,會清楚的告訴你是在哪一個環節出錯,並能產生出錯誤訊息的log,更便於你去調整程式碼的錯誤區塊。

還有非常多的差插件可以下載運用

https://ithelp.ithome.com.tw/upload/images/20230929/20162058FWo9PYeAwU.png


上一篇
Docker compose 與 network 的執行過程解析,與properties連線配置
下一篇
安裝與啟動Jenkins
系列文
從0開始學習DevOps,並部署CICD至Java專案中30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言