📌 第一部分:GitLab 概览与定位
1.1 定义与全称
GitLab 是一个开源的 DevOps 一体化平台,由 GitLab Inc. 开发,于 2014 年正式发布。GitLab 提供了从代码托管、CI/CD、项目管理到安全扫描的完整 DevOps 工具链,是 全球最流行的自托管 Git 仓库。
1.2 核心定位
GitLab 的核心定位是 一体化 DevOps 平台。它提供了:
- Git 代码托管(类似 GitHub)
- CI/CD(持续集成/持续交付)
- 项目管理(看板、里程碑、Issue)
- 代码审查(Merge Request)
- 安全扫描(SAST、DAST、依赖扫描)
- 容器注册表(Container Registry)
- 监控和日志(Prometheus 集成)
- Wiki 和文档
- 团队协作工具
1.3 主要应用领域
- 企业代码托管: 企业内部 Git 仓库
- CI/CD 流水线: 自动化构建、测试、部署
- 项目管理: 敏捷开发、Scrum、看板
- DevOps 工具链: 开发、运维、安全一体化
- 开源项目: 自托管开源项目
- 教育和培训: 团队协作教学
1.4 知名案例
- NASA: 使用 GitLab 管理代码
- IBM: 使用 GitLab 作为 DevOps 平台
- 阿里巴巴: 使用 GitLab 管理代码
- 大众汽车: 使用 GitLab 进行开发协作
- GitLab Inc.: 自身使用 GitLab 管理项目
- 全球数十万企业: 自托管 GitLab
📜 第二部分:GitLab 的历史与发展演进
2.1 诞生背景(2014年)
GitLab 由 Dmitriy Zaporozhets 和 Valery Sizov 于 2014 年创建,最初是一个开源 Git 仓库管理工具。GitLab 的目标是提供一个 自托管的 GitHub 替代品,让企业可以完全掌控自己的代码和数据。
2.2 关键版本里程碑
- GitLab 1.0(2014年): 首次发布
- GitLab 4.0(2014年): 界面重构
- GitLab 6.0(2014年): 支持 CI/CD
- GitLab 7.0(2015年): 集成 GitLab CI
- GitLab 8.0(2015年): 重大里程碑——CI/CD 全面集成
- GitLab 9.0(2017年): 引入 Kubernetes 集成
- GitLab 10.0(2017年): 自动化 DevOps
- GitLab 11.0(2018年): 安全扫描集成
- GitLab 12.0(2019年): 多项目管理
- GitLab 13.0(2020年): 史诗级规划
- GitLab 14.0(2021年): 新 UI 设计
- GitLab 15.0(2022年): 性能优化
- GitLab 16.0(2023年): 新功能增强
- GitLab 17.0(2024年): 最新版本
2.3 版本发布策略
- 每月发布一个新版本
- 每年发布一个 LTS 版本
- 提供社区版(CE)和企业版(EE)
- 开源版本: MIT 许可证
⚙️ 第三部分:核心功能
3.1 代码托管
- Git 仓库: 完整的 Git 功能
- 分支保护: 禁止强制推送、要求代码审查
- Merge Request: 代码审查和协作
- 代码浏览: 在线查看和编辑代码
- 权限管理: 细粒度的访问控制
3.2 CI/CD(持续集成/交付)
# .gitlab-ci.yml 示例
stages:
- build
- test
- deploy
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
# 构建阶段
build:
stage: build
image: docker:latest
script:
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
only:
- main
# 测试阶段
test:
stage: test
image: python:3.9
script:
- pip install pytest
- pytest tests/
only:
- merge_requests
# 部署阶段
deploy:
stage: deploy
image: alpine:latest
script:
- apk add --no-cache curl
- curl -X POST "http://api.example.com/deploy?image=$IMAGE_TAG"
only:
- main
3.3 项目管理
- Issue: 任务跟踪和 Bug 报告
- 里程碑: 版本规划
- 看板: 可视化工作流
- Epic: 大型需求管理
- 燃尽图: 进度跟踪
3.4 安全扫描
- SAST(静态应用安全测试): 代码漏洞扫描
- DAST(动态应用安全测试): 运行时安全测试
- 依赖扫描: 第三方库漏洞检测
- 容器扫描: Docker 镜像漏洞检测
- 密钥检测: 敏感信息泄露检测
3.5 容器注册表
- Docker 镜像仓库: 内置容器仓库
- 镜像管理: 标签、清理、权限控制
- 与 CI/CD 集成: 自动构建和推送
3.6 Kubernetes 集成
- 集群管理: 连接和部署到 Kubernetes
- 自动部署: 通过 CI/CD 自动部署
- 监控: 应用性能监控
3.7 监控与日志
- Prometheus 集成: 性能指标监控
- 日志管理: 集中式日志收集
- 错误追踪: 应用错误收集
⚖️ 第四部分:GitLab vs GitHub
| 对比项 |
GitLab |
GitHub |
| 托管方式 | 自托管 + SaaS | SaaS(GitHub.com)+ 自托管(GitHub Enterprise) |
| CI/CD | 内置完整 CI/CD | Actions(独立) |
| 安全扫描 | 内置 SAST/DAST | 需要第三方集成 |
| 项目管理 | 内置看板/里程碑 | Projects(独立) |
| 容器仓库 | 内置 | 需要第三方(如 Docker Hub) |
| 开源生态 | 开源,自托管免费 | 开源项目托管免费,私有付费 |
| 社区大小 | 较大 | 全球最大 |
| 适用场景 | 企业自托管、DevOps | 开源项目、个人托管 |
4.1 选择建议
- 企业自托管: GitLab(完整 DevOps 平台)
- 开源项目: GitHub(全球最大社区)
- 需要一体化工具链: GitLab
- 个人/小型团队: GitHub 或 GitLab SaaS
🧠 第五部分:学习建议
1
基础入门
GitLab 安装、项目管理、代码托管、权限设置
2
CI/CD 核心
.gitlab-ci.yml 配置、Runner 部署、流水线设计
3
高级特性
安全扫描、容器注册表、Kubernetes 集成、监控
4
运维管理
备份恢复、性能调优、高可用配置、升级迁移
推荐学习资源
- GitLab 官方文档: docs.gitlab.com
- GitLab 博客: about.gitlab.com/blog
- GitLab 社区: 全球用户交流
🎯 总结升华
GitLab 是 DevOps 领域的全能选手。
它用一个平台整合了 代码托管、CI/CD、项目管理、安全扫描 等全套 DevOps 工具链。对于希望统一开发流程、减少工具切换成本的企业来说,GitLab 是理想的选择。
"GitLab 是 DevOps 一体化的先行者。" 🚀
🔖 相关标签
#DevOps
#代码托管
#CI/CD
#项目管理
#自托管
#Git
#安全扫描
📄 本文档为 GitLab 完整白皮书 · 最后更新于 2026年06月28日