GitLab DevOps 工程师维护的流水线配置
定义构建、测试和部署阶段的 .gitlab-ci.yml 文件,通过可复用组件保持精简,而不是在每个项目里重复编写。
迪拜企业迪拜聘请 GitLab DevOps 工程师,通常是因为想停止把分散工具拼接在一起,源代码管理放在一处,流水线执行放在另一处,容器镜像仓库又在别的地方,安全扫描则作为第四个集成挂在外面。GitLab 官方文档把 CI/CD 描述为”持续进行软件开发的方法,即持续构建、测试、部署和监控迭代代码改动”,而 GitLab 的特色做法,正是把这一切放在同一个互联项目里运行,而不是依赖一组各自维护的独立工具。
这种单一平台的设计,是团队选择 GitLab 而非拼凑多款优选工具的主要原因。迪拜的 GitLab DevOps 工程师要负责从一次合并请求到一次已发布容器镜像的整条路径,这与只专注于单一流水线工具的岗位相比,工作范围有着实质区别。
GitLab DevOps 工程师构建的内容
平台中相互连接的各个部分。
定义构建、测试和部署阶段的 .gitlab-ci.yml 文件,通过可复用组件保持精简,而不是在每个项目里重复编写。
实际执行流水线任务的机器,经过合理的规模规划,让构建在繁忙时段只需排队几秒,而不是几分钟。
由流水线构建的带版本号容器镜像,与代码存放在一起,旧的、不再使用的镜像按计划清理。
规定一项改动合并前必须由谁审核,以及哪些流水线阶段必须先通过,由平台强制执行,而不是靠人记忆。
用于存放凭据的受保护、已遮蔽的流水线变量,作用范围限定在真正需要它们的分支和环境。
跟踪预发布和生产环境中的部署,清楚记录具体发布了什么、何时发布、由哪次流水线运行完成。
值得关注的技能
对整个平台的深入了解,而不仅仅是流水线语法。
首次在迪拜为 GitLab 平台招募 DevOps 工程师的企业,通常会从下方这张表开始核查。
| 技能或工具 | 合格的表现 | 为何重要 |
|---|---|---|
| 流水线组件和模板 | 在多个项目间复用共享的流水线组件,而不是到处复制同一份 YAML | 重复的流水线定义会逐渐产生偏差,维护起来越来越不一致 |
| Runner 管理 | 理解共享、群组和项目级 Runner 各自适用的场景 | Runner 作用范围设置不当,要么让任务缺乏运行资源,要么让它们暴露给不该接触的项目 |
| 镜像仓库整洁度 | 为旧容器镜像设置清理策略,而不是任由镜像仓库无限增长 | 缺乏管理的镜像仓库会在不知不觉中变得昂贵且难以查找 |
| 合并请求流程 | 配置的审批规则和必需流水线阶段,符合团队实际工作方式 | 与实际做法不符的规则,会被人绕开而非遵守 |
| 安全与扫描功能 | 清楚 GitLab 内置了哪些扫描功能、适合放在流水线的哪个环节,且不过度夸大其作用 | 这些功能只有在真正有人审查其发现结果时才有价值 |
GitLab CI/CD 文档以 .gitlab-ci.yml 文件、Runner 和可复用组件为核心,一位出色的 GitLab DevOps 工程师应当对这三者都同样熟练,而不只是掌握流水线语法本身。
合作方式
一位专属 GitLab DevOps 工程师适合已经全面采用该平台、随着产品增长需要持续维护流水线、镜像仓库和发布的企业。项目制适合一项明确界定的工作,最常见的是为新团队搭建 GitLab,或把现有流水线从其他工具迁移过来。顾问咨询适合已经在使用 GitLab、但希望对流水线结构、Runner 设置或镜像仓库维护进行一次审查的团队。招聘支持适合希望把这项特定平台技能纳入自己正式团队的企业。
评估候选人
区分平台广度与单一技能的核查方式。
无论您是在迪拜以专属方式聘请 GitLab DevOps 工程师,还是聘请其负责单个项目,都请同样应用以下核查。
流水线、Runner、镜像仓库和合并请求规则一起讲解,而不是只讲其中孤立的一部分。
是否配置过共享 Runner 与项目专属 Runner,以及在真实工作负载下为何选择其中一种而非另一种。
需要一套具体的清理策略或流程,而不是含糊地说”我们会偶尔处理一下”。
询问他们的审批规则会如何处理两人同时编辑同一段代码的情况,以此核实这些规则是否经过真正的思考。
把流水线从其他工具迁移到 GitLab,或反向迁移,以及下次会做出哪些不同的选择。
认证
GitLab 通过 GitLab University 提供自己的认证体系。
GitLab 通过 GitLab University 提供 GitLab Certified CI/CD Associate 考试,将知识测试与一项动手流水线任务结合,此外还有涵盖基础知识和安全的独立助理级认证。
该助理级考试对流水线基础知识是一个合理的筛选,但镜像仓库管理、Runner 扩容和合并请求治理并不在其考核范围内。若您希望在迪拜找到能掌管 GitLab 整个平台、而非只懂 DevOps 某一部分的工程师,请要求查看真实的项目搭建情况,而不只是证书本身。
阿联酋相关事项
主要在数据驻留对您的企业确实重要时才有意义。
如果问题记录、代码或流水线日志中包含真实的客户或员工数据,阿联酋《2021 年第 45 号联邦法律令》(关于个人数据保护)便适用于这些数据应如何得到保护,无论项目运行在 GitLab.com 上,还是运行在自行管理的实例上,该法律令的相关说明见阿联酋政府官方门户。
如果企业确实需要把源代码和流水线数据保留在物理位于阿联酋境内的基础设施上,可以在境内的云区域运行 GitLab Self Managed,而不必依赖 GitLab 自身的托管区域。
这一职位属于我们 DevOps 分类,隶属于 迪拜招聘开发工程师 板块。如果流水线工具本身比周围平台更重要,我们的 CI/CD 工程师 页面提供了更宽泛、与工具无关的视角,而我们的 Jenkins 工程师 页面则介绍了一款专为单一任务打造的自托管替代方案。DevOps 工程师 负责的是 GitLab 之外更广泛的基础设施工作,而我们的 Kubernetes 工程师 页面,则是 GitLab 开始向集群部署容器之后自然而然的下一步。
直接解答
GitLab 自带 CI/CD 流水线、容器镜像仓库、安全扫描、问题跟踪和发布管理,所有环节都在同一个项目里,而不是通过多个独立集成拼接而成。GitLab 把 CI/CD 描述为持续构建、测试、部署和监控迭代代码改动的方法,把每个阶段都放在同一处,正是这个平台的主要吸引力所在。
只有在确有理由时才值得,例如希望所有环节集中在一个互联平台上,或者当前方案缺少 GitLab 的某些特定功能。迁移一条已经在运行的流水线有实际成本和风险,因此应当作为一个有书面计划的正式项目来规划,而不是随意决定。
对大多数迪拜企业来说,托管版本 GitLab.com 是更简单、更快的起点。运行在自有基础设施上的 GitLab Self Managed,主要值得在有明确的数据驻留或合规要求时考虑,因为它会带来实实在在的运维责任。
可以,这正是该平台的优势之一。由于容器镜像仓库和发布管理与流水线同处一个项目内,GitLab DevOps 工程师可以在不切换工具的情况下,管理从一次提交到发布镜像的整条路径。
按照您的简报范围给出固定书面报价,无论是持续的流水线维护、一个明确界定的迁移项目,还是对现有配置的一次审查。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。