【IT168 技术文章】
概述
软件构建流程是软件生命周期一个非常关键的环节,直接决定了开发工作是如何最终交付给最终用户的,但构建流程长期以来被认为最难以结构化和规范化管理,同时围绕软件构建和发布管理的非常好的实践经验也不足。但随着软件复杂度的不断提高,软件交付周期的不断缩短和交付频率的提高,软件构建流程已经逐步得到重视。
“软件构建管理在日益影响成功的软件部署,业务以及IT的生产率,软件构建管理正成为IT企业关注的一个重点。” - IDC
“如果不能提供一致、精确以及可重复的软件构建,会形成软件开发中的严重瓶颈从而造成软件开发团队不能很好地在不增加额外资源的前提下管理项目的复杂性。” - Hurwitz
IBM Rational BuildForge 是一个用于构建和发布自动化的系统,可以集中、自动化并且加速不同软件开发组织的软件开发过程。在与 IBM Rational 软件开发平台的其他软件一起使用时可以帮助企业打造用于端到端的软件交付流水线的开发环境。同时也可以更好地帮助软件开发组织遵规。对于从事多种软件应用开发的组织 BuildForge 可以提供一个灵活集成的平台,从而充分利用用户在已有工具的投资来提高整个团队的交付效率、实现交付自动化和可跟踪性。
对于异地分布的团队BuildForge可以帮助不同地域的团队更高效地进行协同。BuildForge 提供的跨多种应用和硬件平台的集中访问方式可以实现全球性的报告、跟踪和硬件资源使用优化。通过 Rational BuildForge,开发团队从大量重复性的任务中解脱出来,以更聪明的方式进行工作,将精力集中在构建及发布过程的度量和改进上来。
构建远远不是编译
许多人都将构建(build)与编译混在一起,认为两者没有大的区别。实际上构建的内涵和外延远远大于编译。构建是指从源码到最终投产或上线的整个生命周期,而编译只是从源码到中间代码或可执行代码的过程。下面几张图解释了两者之间的差别。
图 1: 两者之间的差别

如上图所示,编译只是中间的黑色部分,从技术上看是从源码向机器码翻译的过程。而构建特别是基础构建能力应该包括:流程管理、多平台支持、构建流程/执行/结果的集中统一控制、以及与其他工具的无缝集成,这些都是处理当前开发环境中的硬件资源、工具、语言及脚本不可或缺的核心构建能力。
图 2: 在基础构建能力上可以进一步加强构建的可靠性和可再现性

在基础构建能力上可以进一步加强构建的可靠性和可再现性,从而进行人和硬件资源的优化,因此可以在核心构建能力上进一步进行扩展。如上图所示,这些扩展构建特性包括:基于角色的安全性访问控制、可重复性、对敏捷开发的支持、动态服务器选择以增强系统的可靠性和硬件利用率、构建流程自动化、构建队列管理、构建并行化处理、嵌入集成开发环境的自助构建服务等。
图 3: 构建管理的开发与验证的典型过程

进而,为了将前面提到的基础构建能力和扩展构建能力推广到整个组织,并且更好地应对审计和遵规要求,构建还应包括面向整个企业的报告和沟通能力。这些特性如上图所示可以包括:报告及分析能力、端到端的全生命周期跟踪、审计跟踪和日志记录、包含所有流程细节步骤及运行结果详细信息的物料清单(BOM)、跨团队的通知以及问题诊断、在构建执行过程中自然而然形成相关文档(自文档)、服务器静态(如操作系统类型、版本及补丁等)及动态属性(CPU负载、空闲内存等)管理、以及遵规和治理的支持。
本文要介绍的IBM Rational构建管理产品BuildForge覆盖了上面所涉及的方方面面的构建特性。