記Codes 研發項目管理平臺——拖拽式無代碼CICD 創新實現
背景
DevOps 中,少不了要做流水線編排,不管用jenkins 實現還是其他工具,或是對這些工具的包裝實現,都是換一個地方寫腳本。流水線編排算技術不?,無他唯手熟爾,所以流水線編排更偏向于技巧而不是技術。有沒有好的辦法,讓團隊中任何成員,哪怕實習生都可以在相關環境中自己編排流水線并執行相關測試,通過0腳本來提高工作效率,把精力專注在更高優先級的事項上;對于編碼能力弱的測試同學來說,能幫助他們輕松實現測試左右移。
有沒有辦法呢 ?
Codes 產品團隊始終以用戶為中心,從用戶的使用場景來思考問題。解決用戶痛點,如何讓用戶爽,就如何實現,這也是我們創新的源動力,換句話說就是,不固守陳規,擁抱零基思維;于是又一個大膽的想法在醞釀了。讓ci cd 也無代碼,無腳本化。
我們做了調研及技術驗證,技術上完全可行,以可視化方式拖拽一系列相關組件,然后把他們編排到一個流水線中,只要設置好相關屬性,最后解析這些組件的屬性,生成調用相關編排的Job 即可,,最后調jenkins api ,把這些流水線及相關job 發布到jenkins中 。
技術選型
jenkins 雖然老舊且比較重,但是生態完善,有一系列插件。其他的比如:GoCD、Spinnaker、Buildkite等開源的,雖然輕量,但生態沒jenkins 強,所以我們選擇于基jenkins 來做改造 。
上功能截圖
線水線編排:
1 拖拽代碼倉庫圖標過來,雙擊選一個倉庫。2再拖一個構建圖標過來,如maven 或NPM 。3 再拖通知組件過來,當構建完后可以發釘釘消息。4 拖拽要部署主機圖標過來,選一個部署的主機。5 如需要代碼掃描,還可拖sorna qube 過來 。其他組件一樣的實現思路。

同類工具都是以web 形式寫腳本,然后把Job 以可視化形式顯示出來,不是拖拽式做流水線編排。Codes 的實現方式要麻煩得多,但是Codes 的實現方式,讓用戶爽很多!
設置相關組件屬性

執行線水線:

查看構建日志


編排前的準備:
只需要維護好代碼倉庫信息,要部署的主機信息,構建完成后釘釘通知等

從安裝到編排省時省力
工具有了,安裝復雜也不行,一般來講,手動搭建CI CD環境很費時,為了解決安裝部署我們全做成鏡像了,且也做好了配置,執行一個Curl 便可 0配置安裝。

來看看之前我們寫的安裝文檔107頁,要是不容器化,安裝配置太麻煩了,安裝配置時間相當可怕

總結:
通過Codes 創新的無代碼實現后,ci cd 可以忘記jenkins 的存在,安裝整套環境也是只是分分鐘的事,拖拽式流水線編排確實省時省事。雖然在實現這一目標的過程中我們費了很多心思也倍受一些技術問題的折磨,但是為了讓用戶爽,我們受點折磨算不了什么,Codes 團隊從來不為炫技,只為真心解決用戶的痛點而打磨產品。匠心打磨,持續創新是Codes的產品基因。
Codes 簡介Codes 是國內首款重新定義 SaaS 模式的開源項目管理平臺,支持云端認證、本地部署、全部功能開放(不限制功能,商業版用免費版只有用戶數的差別),并且對 15 人(最多 20 人)以下團隊免費。它通過創新的方式簡化研發協同工作,使敏捷開發更易于實施。并提 供低成本的敏捷開發解決方案,如事件驅動實現的 “事找人”、自動生成工作周報,多事項閉環迭代,日報與工時填報融合、同步在線離線測試用例、流程化管理缺陷、低代碼接口自動化測試和 CI/CD,以及基于迭代的研發管理和測試管理等,踐行敏捷開發。全面的功能覆蓋,有需求池、原型管理、工單管理、工作匯報、需求管理、任務管理、測試管理、缺陷管理、自動化測試、項目文檔、工時進度管理、風險管理、項目管理(支持多種模式),統計分析等功能。適用場景:無論是需要需要全面的項目管理和協作功能的中大型企業,還是追求輕量化和易用性的中小型團隊都適用。


浙公網安備 33010602011771號