CI/CD 流水线
自动化的构建、测试和部署步骤,让每次代码改动都以同样的方式进入预发布或生产环境,无需人工手动敲命令。
大多数迪拜企业在手动发布开始真正耗费时间时,才会考虑迪拜聘请 DevOps 工程师:一次只有一个人会操作的部署、一个和上一个环境已经出现偏差的环境,或者一个只在生产环境才会出现的漏洞。这一角色介于开发和运维之间,负责搭建让团队能够频繁发布改动、又不破坏现有功能的流水线、基础设施即代码和监控体系。
Docker、Kubernetes、Terraform 以及 GitHub Actions、GitLab CI 或 Jenkins 这类 CI/CD 平台,这些工具本身固然重要,但更关键的是候选人是否真正在真实的生产压力下运行过它们。只跟过教程的 DevOps 工程师,搭出的流水线往往第一次能跑通,第二次发布就出问题。
在迪拜聘请 DevOps 工程师之前,先弄清楚您希望他们解决什么问题会有帮助:发布缓慢或脆弱、基础设施难以复现,或者对当前实际运行情况缺乏可见性。本页介绍具体交付内容、值得核查的技能,以及如何依据真实工作而非一份简历来评估候选人。
DevOps 工程师构建的内容
迪拜企业迪拜聘请 DevOps 工程师后能得到的具体交付内容,而不是一份笼统的职位描述。
自动化的构建、测试和部署步骤,让每次代码改动都以同样的方式进入预发布或生产环境,无需人工手动敲命令。
服务器、网络和云资源以版本控制的文件定义,通常使用 Terraform,让环境能够被精确重建,改动也能像任何其他代码一样接受审查。
用 Docker 打包应用,并通过 Kubernetes 或托管容器服务运行,让同一份构建在笔记本电脑上和生产环境中表现一致。
能显示服务是否真正健康的仪表盘和告警,配置为在客户察觉问题之前先通知到正确的人。
凭据、API 密钥和访问令牌妥善存储并定期轮换,不留在源代码里,也不留在聊天记录里。
让预发布和生产环境的配置足够接近,使得一次通过预发布测试的发布,是一个可靠的信号,而不是一次猜测。
值得关注的技能
当下常用的工具,以及真实生产环境使用经验的证据。
| 技能或工具 | 合格的表现 | 为何重要 |
|---|---|---|
| CI/CD 平台 | 真正搭建并维护过流水线,而不只是触发过别人搭好的流水线 | 一条只有一个人能看懂的脆弱流水线,是单点故障 |
| 基础设施即代码 | 熟悉当前版本的 Terraform,包括模块和状态管理 | 手工搭建的基础设施无法被可靠地复现或审计 |
| 容器 | 能解释一个镜像为什么体积大或启动慢,而不只是会写 Dockerfile | 容器方面的规范直接影响部署速度和云端成本 |
| Kubernetes(如有使用) | 依据官方文档,理解该平台自身关于 Pod、服务和部署的模型 | 配置不当的编排会造成看似与真实原因无关的故障 |
| 监控和事件响应 | 凌晨两点接到过告警,并能讲清楚当时做了什么 | 没人信任的流水线和仪表盘,在真正的事件中会被忽视 |
Kubernetes 官方文档将其描述为一个用于管理容器化工作负载、具备可移植性和可扩展性的平台,这是一个有用的测试:请候选人用自己的话解释,它究竟为您的技术栈解决了什么问题。如果您计划通过招聘支持引入这样一位工程师,这张表也是一份公允的招聘简报起点,因为我们正是依据这些要点对候选人打分的。
合作方式
一个发布频繁、流水线和基础设施规模持续增长的产品,最适合由一位长期深度参与团队的专属工程师负责。一次性的具体工作,例如从零搭建一套 CI/CD 流水线,或把手工搭建的服务器迁移到 Terraform,适合一个有明确完成节点和交接安排的限定范围项目。当目标是在您自己的团队里招到一名正式员工时,我们的招聘支持覆盖寻访、初筛和技术评估。如果您已经有开发工程师,但发布流程脆弱,我们的顾问咨询服务能在您投入人力之前,提供一双有经验的外部眼睛。
候选人评估
能揭示真实生产经验的核查方式。
您可以自行完成以下核查,也可以交给我们:当客户选择通过招聘支持委托我们招募这一角色时,我们的团队正是代表客户执行这套评估。
而不是一个演示用的仓库。问清它部署的是什么,某个步骤失败时会发生什么,以及现在的他们会如何改进它。
询问一次出问题的发布,是如何被发现的,以及事后做了哪些改动,确保同样的问题不会以同样的方式再次发生。
请对方展示一个 Terraform 模块或类似文件,看它是否模块化、经过他人评审,并通过流水线执行,而不是从笔记本电脑上直接运行。
有真实生产经验的候选人,能说出一次具体把他们叫醒的告警,以及那是真正的问题还是需要调优的噪音。
基础设施的选择都有持续产生的成本。优秀的候选人会主动提到这一点,而不只是一味优化速度或便利性。
认证
来自平台方本身的具体认证,而不是泛泛的“DevOps 证书”。
AWS Certified DevOps Engineer, Professional 证书和 Google Cloud 的 Professional Cloud DevOps Engineer 认证都由云服务商直接颁发。HashiCorp 颁发 Terraform Associate 认证,云原生计算基金会与 Linux 基金会联合颁发 Certified Kubernetes Administrator 认证。委托招募这一角色时,请询问其中哪一项与您的技术栈相符,因为持有与实际平台不符的认证说明不了太多问题。
AWS 和 Google Cloud 的认证可通过颁发机构自己的认证门户核查,HashiCorp 的认证可以以电子徽章形式分享,Linux 基金会也为 Kubernetes 证书运营着自己的公开验证页面。我们可以在为您筛选候选人时,把某项具名认证列为要求,但不会声称我们自己的员工持有客户专属的徽章。
阿联酋相关事项
在真实的迪拜部署中会遇到的两个领域。
用生产数据为预发布数据库填充测试数据,或为调试而记录请求内容,都可能悄悄把客户或员工数据复制到原本的管控范围之外。阿联酋政府关于 2021 年第 45 号联邦法令的官方指引,对这类处理设定了同意和安全方面的义务,因此把真实数据带入较低环境的流水线,也需要施加同样的防护措施。
如果基础设施对接迪拜政府实体,或涉及迪拜电子安全中心监管的服务,请在最终确定架构前先核查其公开标准,因为 DESC 负责制定和监督该类系统的网络安全标准。
直接解答
系统管理员的主要工作是让现有服务器保持运行。DevOps 工程师负责搭建自动化、流水线和基础设施即代码,让团队能够安全、频繁地发布改动,并把基础设施本身当作需要编写、审查和版本管理的软件来对待。
如果部署并不频繁、技术栈也简单,一位兼顾发布工作的开发工程师就足够了。一旦发布变得频繁、需要维护不止一个环境,或者手动发布步骤开始耗费大量时间,一位专属 DevOps 工程师的投入通常会以更少的发布失败收回成本。
以您的产品目前运行的平台为准。深耕 AWS、Azure 或 Google Cloud 中某一个的人,通常比对三者都只有浅层了解的人更有用,因此在提出这一岗位需求时,请告知我们您使用的平台。
DevOps 工程师可以加入依赖扫描等基础检查,但把安全当作每个流水线阶段的首要环节来对待,是一门独立的专业。如果这是您的优先事项,我们的 DevSecOps 工程师页面专门介绍了为此设立的角色。
DevOps 工程师通常以改动发布是否顺畅来衡量表现。站点可靠性工程师则以线上服务运行时的表现来衡量,更侧重正常运行时间、事件响应和值班职责。许多迪拜团队两者都需要,早期有时会由同一个人兼顾。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。