1 方案
因為是在國內,所以gitbub Actions,??Azure DevOps?這些就直接拜拜了。
目前主流的大概是三種:
1 阿里云效/騰訊云CODING
2 GitLab CE+?GitLab Runner
3 Gitee + Jenkins?
deepeseek比較了一下如下:
阿里云效 vs GitLab vs Jenkins 核心對比表??
??維度?? | ??阿里云效(阿里云 DevOps)?? | ??GitLab(自托管版)?? | ??Jenkins(自托管)?? |
---|---|---|---|
??部署方式?? | 全托管 SaaS | 自托管(服務器/K8s) | 自托管(服務器/Docker) |
??代碼托管?? | 集成 Codeup(Git) | 內置 Git 倉庫(CE/EE版) | 需外接(如 Gitee/GitHub) |
??CI/CD 引擎?? | 內置流水線(Flow) | 內置 GitLab CI/CD(YAML 配置) | 通過插件實現(Groovy/Declarative Pipeline) |
??構建速度?? | 快(阿里云內網資源) | 中等(依賴自建 Runner 性能) | 慢(需手動優化構建環境) |
??制品管理?? | 集成 ACR(容器鏡像) | 內置 Package Registry(支持多種格式) | 需外接(如 Nexus/Harbor) |
??K8s 集成?? | 深度集成 ACK(一鍵部署) | 需配置 Runner 或 Argo CD | 需安裝 Kubernetes 插件 |
??權限管理?? | 阿里云 RAM 子賬號體系 | 內置 RBAC(支持 LDAP/AD) | 依賴插件(如 Matrix Authorization) |
??網絡適應性?? | ?????(國內無延遲) | ??(需自建鏡像加速) | ???(依賴代碼托管平臺網絡) |
??合規性支持?? | 等保/國資云預置 | 需自行配置審計日志 | 無原生支持 |
??擴展性?? | 僅支持阿里云生態 | 高(開源可修改代碼) | 極高(超 1800 個插件) |
??學習成本?? | 低(圖形化界面) | 中等(需學習 YAML 語法) | 高(需掌握 Groovy/插件配置) |
??成本(10人團隊/年)?? | ¥7k~10k(含云資源) | ¥8k~15k(服務器+運維) | ¥6k~12k(服務器+插件成本) |
以前我這邊是用過Jenkins的方案,不過感覺這個比較重型,人員投入不少。據說GitLab要輕量一下。
至于阿里云效,感覺也是一個不錯的選擇,這樣用的話會省下運維的成本,此外支持也會比自建更好。但是貌似現在用的人比較少,后面再觀察觀察吧。所以這次還是重點基于GitLab搭建。
GitLab整體架構如下:
??組件?? | ??推薦工具?? | ??關鍵配置?? |
---|---|---|
??代碼托管?? | GitLab CE(自托管) | 利用其 Issues 管理設備固件版本,Wiki 存儲規則鏈文檔 |
??CI/CD?? | GitLab CI + K8s Runner | 分階段構建: 1.? mvn package ?→ 2. Docker 鏡像推送 → 3. Argo CD 同步到 K8s |
??制品庫?? | Harbor(自建) | 掃描 ThingsBoard 鏡像的 CVE 漏洞(Java 依賴需重點監控) |
??部署?? | Kubernetes(阿里云 ACK) | 使用 Helm Chart 管理 TB 服務:helm install thingsboard ./thingsboard |
??設備模擬?? | 自建 JMeter + MQTT 插件 | 自動化壓力測試(模擬 10W+ 設備連接) |
2 搭建
2.1 安裝GitLab
在安裝時候要看看目標機器的配置,我自己的云是阿里云乞丐版那種,內存2G。就運行不起來,直接把系統給拉死掉。沒辦法,服務器現在也沒到貨,只有在自己的WSL先安裝。我的配置是i7+32G。
步驟如下:
# 添加 GitLab 倉庫
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# 安裝 GitLab CE
sudo EXTERNAL_URL="http://your-ip-or-domain" apt install gitlab-ce -y
# 啟動 GitLab
sudo gitlab-ctl reconfigure
安裝完成后,但是我這邊運行是出現了報錯,仔細一查原來是端口沖突,按照這個方法直接修改即可。安裝gitlab遇到502報錯及安裝完輸入地址顯示網頁無法連接_gitlab-shell self-check failed-CSDN博客
之后就可以正常登錄
創建了一個測試項目
創建項目拉項目也很方便
2.2 安裝GitLab Runner
# 安裝依賴
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# 安裝 Runner
sudo apt install gitlab-runner -y
3 運行使用
3.1 配置?
首先要對runner進行配置。?
3.2 工程實例
做了一個最簡單java的maven構建工程。
關鍵是根目錄下面配置一個yml文件。
hp@DESKTOP-430500P:~/cicd/test$ cat .gitlab-ci.yml
build-job:stage: buildscript:- mvn clean package # 確保使用package而不是compileartifacts:paths:- target/*.jar # 保存可執行JAR
提交上去就會自動構建。
不過現在runner還有點問題。待完善。。。?