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还有点问题。待完善。。。