終於有機會正式跟大家介紹為什麼我會捨棄 Jenkins 跟 GitLab CI,取而代之的是用 Go 語言寫的 Drone。今年很高興錄取台灣第一屆 DevOps Day 講師,在今年主題是『用 Drone 打造輕量級容器持續交付平台』,主要推廣這套 Drone CI/CD 工具,會議內容圍繞在 Jenkins, GitLab CI 跟 Drone 的比較。也提到為什麼我不用 Jenkins 及 GitLab CI 的幾個原因。底下整理議程大綱。
- 為什麼選擇 Drone
- Drone 基礎簡介
- Drone 架構擴展
- Drone 安裝方式
- Drone 管理介面
- Drone 測試部署
- Drone 自訂套件
為什麼不用 Jenkins
有六個原因大家可以想看看是否有踩到身為工程師的痛點- 專案設定複雜 (連 DevOps 老手都這麼覺得)
- 流程版本控制 (同事改個設定檔,流程就爆掉)
- 無法擴充套件 (你會 Java 嗎?團隊內有人會嗎?)
- 後續維護? (同事離職或請假該怎麼辦)
- 學習困難? (新人完全不會啊)
- 團隊成長? (團隊內只有特定同事才會?)
為什麼不用 GitLab CI
GitLab CI 已經改善了很多 Jenkins 遇到的問題,但是還有兩點是我看到的缺陷:- 只支援 GitLab 版本控制 (如果你用 GitHub 該怎麼辦)
- 無法擴充 Yaml 檔案寫法
導入 CI/CD 的瓶頸
在之前做過一份統計,大家對於導入 CI/CD 的瓶頸在哪邊,底下是統計圖 可以看到前三名分別是:- 工具設定複雜
- 團隊無法成長
- 新人學習困難