《配置管理最佳实践》——2.8 构建工程师的角色

简介: 构建工程师通常需要有软件开发的背景,扎实的技术知识,一定程度的编程能力(包括 Perl, Python, Shell 和 XML),可以建立可靠、可重复的构建过程。工作中很难找到一个合适的构建工程师,因为具有很强开发背景的专业技术人员通常都更愿意做项目而不愿意写构建系统。

本节书摘来自异步社区《配置管理最佳实践》一书中的第2章,第2.8节,作者: 【美】Bob Aiello , Leslie Sachs著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.8 构建工程师的角色

构建工程师通常需要有软件开发的背景,扎实的技术知识,一定程度的编程能力(包括 Perl, Python, Shell 和 XML),可以建立可靠、可重复的构建过程。工作中很难找到一个合适的构建工程师,因为具有很强开发背景的专业技术人员通常都更愿意做项目而不愿意写构建系统。构建工程师是一个非常有意思也很有挑战的职位。其他的开发人员很容易使用到新的技术、新的框架,而构建工程师却并不总能把前沿的技术应用到工作中去。但建立一个高质量且高效率的构建工程的确是一项十分需要创造力的工作。

在软件开发过程中,构建工程师发挥着举足轻重的作用。但是这个职位的角色随着团队的不同也会发生变化。我曾经不断地构建和发布构建来满足开发的需要。有时,开发人员会被分派一些构建工程的短期任务,例如写构建的基础架构。这就要求开发人员既了解应用程序的架构,也熟悉构建工具本身。
2.8.1 了解构建的项目
资深的构建工程师需要在精通相应构建工具的同时,深刻理解应用程序的架构。例如,我曾经用特定的 JMX 资源处理J2EE服务器接口的配置。在其他的技术中,相同的功能是由不同配置文件处理的。开发人员具备专业的知识去配置这些,但是构建工程师往往缺少这些技能,所以就需要在构建过程中明确定义出这些需求,参考构建过程文档来完成这项工作。构建工程师的工作常常要涉及很多技术。也许第一天,我深入研究C#,.NET和SQL Server 等与平台紧密相关的工具和技术。第二天,我就转向J2EE SOA、部署特定的网页和应用服务器。下一个任务也许是使用Make 构建C/C++开发的嵌入式软件,以及相关的硬件和固件。构建工程师需要有很强的技术知识,还要能和开发人员合作完成某项任务。这就要求构建工程师能快速掌握很多具有挑战性的新技术。

2.8.2 与开发人员合作
曾经遇到一个涉及 Java 对象持久层框架的项目,以前从来没有接触过。我的任务是为这个将被发布的项目写构建脚本。于是开始学习它,想快速地掌握这门技术,可还是对很多东西没有概念。在这种情况下,与开发人员合作去完成构建框架就显得很有必要了。期间也遇到了一些挑战,比如习惯了集成开发环境的开发人员,不知道如何在命令行下构建他们的应用。在这种情况下,我会设定好构建的入口和出口标准。比如,构建脚本的入口就是在开发环境中通过命令行来生成构建。这样,这个脚本就可以修改为支持QA 环境和生产环境。修改过程中最重要的事情是保证构建可靠并且可重复。

2.8.3 招募新人
招募新人最好的办法是将一个新的开发人员培养成为构建工程师。新的开发人员也许对创建可重复性构建的知识一无所知,但是这没有关系,我可以教他。只要他有相应的专业技术,哪怕没有技术,有强烈的学习意愿也是可以的。事实上,在我看来所有的开发人员,都应该在入职培训的时候了解一些构建工程的内容。这将有助于开发人员处理架构中的问题,也有助于我们发现那些真正理解构建工程和发布流程的团队。

相关文章
|
5月前
|
运维 监控 Linux
运维(01)- 运维概念
运维(01)- 运维概念
30 0
|
11月前
|
存储 监控 安全
「技术管理」有效技术生命周期管理的6个步骤
「技术管理」有效技术生命周期管理的6个步骤
|
11月前
|
传感器 存储 运维
「IT运维」集成和自动化的平台 StackStorm概述
「IT运维」集成和自动化的平台 StackStorm概述
|
前端开发 Java 数据挖掘
基于 Jira 的产品需求全生命周期管理实践
在整个需求全生命周期的反馈回路中,如何对需求、项目、任务、缺陷、线上质量和功能优化进行有效组织和管理的呢?
1320 1
|
域名解析 架构师 开发者
职能概述及服务流程|学习笔记
快速学习职能概述及服务流程。
73 0
职能概述及服务流程|学习笔记
|
运维 监控 API
谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案
云上身份安全是当今企业管理者和云上运维团队所面临的挑战之一,针对云上身份管理不全面所产生的风险究竟又哪些?又应当如何应对?本文将结合案例和最佳实践与您分享。
谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案
|
Kubernetes Cloud Native 安全
专访 KubeVela 核心团队:如何简化云原生复杂环境下的应用交付和管理
2021 年 7 月,KubeVela 和 OAM 项目整体捐赠给 CNCF 基金会托管。 在 1.2 版本中,KubeVela 新增了以应用为中心的控制面板 UI 功能,使应用组装、分发、交付流程变得更简单,并可以通过 UI 控制台及时了解整个交付链路状态,简化多云/混合环境交付方式。另外还新增了基于订阅模型的开源应用交付系统 ,使企业和云原生应用开发者只需要在 GitHub/Gitlab 上修改代码,就可以自动完成云原生应用交付的整个链路。 从开源到现在已经有一年多,KubeVela 社区取得了什么样的进展?有了哪些落地实践?1.2 版本中为什么会新增加这两个功能,适合于什么场景?
1675 0
专访 KubeVela 核心团队:如何简化云原生复杂环境下的应用交付和管理