内容


使用 DevOps 执行快速软件生产

DevOps + RAD = 两全其美

Comments

DevOps 和快速应用程序开发 (RAD) 模型相结合,带来了一个创新性的成功解决方案。经过实践检验的软件开发演变过程已经证明,使用同样的方法来管理软件开发阶段能够更有效地消除生产后期的软件性能问题和集成问题。IBM 等软件制造商已经享受到了 DevOps 的价值,提供了能改善和充实企业现有计算系统的工具,在快速软件开发方面达到了新的高度。

在企业需要开发新软件特性、功能和流程时,其他各种角色必须协调他们的工作以适应并行交付。测试人员必须反复测试,软件开发人员必须开发和修改他们的代码,配置经理必须相应地跟踪和更新他们的版本和修订版,这在中小型企业 (SMB) 和大型企业中都是一项繁重的工作。此外,组织倾向于创建多种不同的方法来处理重复该过程的麻烦任务,而且他们也面临着同样的挑战,这使得漫长和复杂的操作过程更让人受挫。再考虑到现有基础架构、拓扑结构、带宽和软件选择的技术限制,这些使 DevOps 乘虚而入,成为了节省时间的主要工具。

DevOps 的供与需

快速软件生产得益于激活 DevOps 流程的软件工具。实现 DevOps 和快速软件生产后,企业就可以更快地提供满足客户所需的软件。与 DevOps 密不可分的是基于云的计算,它提供了多平台虚拟环境、大规模软件开发和实现,以及大型文件和大数据的存储和检索功能。

在最近举办的一场由 IBM 和 JumpCloud 赞助的 DevOps 大会上,与会者就软件自动化对最新的技术创新的影响发表了自己的看法,他们的回应表明,对用于快速软件生产的 DevOps(RAD 原型设计、软件自动化和系统精心设计)的需求很高,而且这些创新是在以技术为中心的企业中提高收入的首要竞争因素。在出席这次大会的 100 家企业中:

  • 75% 将自己分类为 DevOps 企业;
  • 15% 正在成为 DevOps 企业;
  • 而且超过 80% 的回复者正在使用云解决方案执行其 DevOps/RAD 原型设计。

正在采取行动来提高其组织内的自动化水平的 DevOps 企业回复者分散在以下技术领域中:

  • 75% 目前需要一些自动化的配置工具(例如 Puppet 和 Chef)。
  • 33% 目前需要一个自动化的补丁、修复和更新工具。
  • 超过 50% 的企业目前需要预先构建的系统镜像来自动化统一的安装。

此外,这些企业表明,其手动 DevOps 流程主要包括部署任务;补丁、修复和更新活动;用户、组和系统帐户管理;以及日志文件数据的鉴定分析。此调查只是 DevOps 框架和自动化工具对控制软件的快速生产不可或缺的众多证据之一。

DevOps 的准确性

DevOps 融合了两家之长,将人类交互与软件自动化相结合。毕竟,它的目的是部署能够与现有生产环境无缝集成的精心构建的软件。乍看起来,精心设计的软件开发解决方案似乎能够独自实现此目标,但软件操作、质量保证 (QA) 和开发团队之间的沟通需要一个共同目标、工作的同步以及安全处理阻碍的解决方法,然后才能开展有效的团队合作和产品开发(参见 图 1)。

图 1. 集成软件开发与 DevOps
该图显示了软件开发与 DevOps 的集成
该图显示了软件开发与 DevOps 的集成

操作开发团队通常使用过时的技术作为经济的、富有成本效益的系统持续维护和升级解决方案。软件开发团队通常使用最新的技术来不断开发 “下一款最佳产品”,确保实现无错误的配置和交付结果。为了能够将用户和系统需求合并到一致的软件交付结果中,软件开发流程必须始终如一地保证质量,永久地支持产品迭代和修改,并不断采用有效的软件开发方法。DevOps 通过超快地交付软件开发产品,为业务操作提供这一保证水平。通过隔离软件开发流程中的延迟,企业必须提供最快的处理器、显示和计算速度来自动化冗余的流程,同时不会降低交付速度。对所选 DevOps 解决方案的成功具有重要影响的人类交互因素:组织对可能的系统错误的更正(例如在系统自动化代码不断循环且需要人类交互时),以及决定使用 DevOps 操作过程的最佳行动过程和技术方法。

因此,DevOps 解决方案是一些软件开发技术方法的模型,它们还依靠生产环境和内部控制来优化现有资产的价值。软件开发模型包括:

  • 迭代式开发:在原型达到完美之前对它的反复改进。
  • 增量开发:在原型达到完美之前对它的反复增补。
  • 瀑布和修改的瀑布式开发:一种稳定、逐步推进的开发流程,一次开发一个原型,直到完成开发。
  • IBM® Rational® 统一流程:针对开发和操作团队的需求而定制。
  • RAD 原型设计:快速原型设计,需要极少的规划。

Rational Unified Process 和 RAD 原型设计的组合,在中小企业和大型企业中带来了对采用 DevOps 实现快速软件生产的高需求。

DevOps 和快速软件生产

IBM 提供了利用 Rational Unified Process 和 RAD 原型设计所需要的软件,这使得一些企业的投资回报 (ROI) 翻了两三番。该 ROI 受 IBM 创新性的产品线驱动,包括它的 DevOps for Cloud Computing 解决方案对基于云的计算的贡献,以及它通过 IBM® Rational® Application Developer for WebSphere® Software 实现的 Apache Maven portlet 项目集成。参见 表 1

各个功能为快速软件开发和 DevOps 带来的好处
功能为快速软件生产带来的好处为 DevOps 带来的好处
以可扩展的虚拟化解决方案、弹性网络和满足大数据需求的高带宽容器的形式,实现快速软件生产支持 全范围的测试和开发环境为企业现有计算环境提供补充的独立混合环境或公共环境
使用 DevOps 完成敏捷应用程序生命周期管理的工具 IBM® Rational® DOORS® Next Generation、IBM® Rational Team Concert™ 和 IBM® Rational® Quality Manager 简化了用户和系统需求与有关联的工作项之间的可跟踪性的定义,以及 QA 和质量控制指标的报告 基于人类交互,但已经实现自动化,以确保开发的软件产品的准确性、适用性和可靠性

利用一致的性能速度

构造新软件解决方案,同时坚持使用现有技术和流程,这会约束软件开发流程,常常会限制任何给定时刻可弯沉的开发工作和工作量。企业真正想要的是一种加快软件开发生产的方式,这样他们就可以及时地证明新想法。对创新的利用通常注重时效。如果软件开发需要几个月才能完成,那么创新可能不再有用。

但是,DevOps 为组织提供了一些以更快的节奏反复开发和交付软件产品的途径(参见 图 2)。DevOps 的实现只要求快速的软件生产工具可用,同时能够实现企业的软件开发目标。

图 2. 快速应用程序开发流程
该图显示了 RAD 流程
该图显示了 RAD 流程

第 1 步

加快软件开发并考虑业务运营的第一步是,理解需要的团队工作。当然,团队必须共担软件开发的责任,这样才能生成高质量的软件产品,他们还必须沟通并使用软件开发生命周期 (SDLC) 进行协调,以便及时地完成预定义的 DevOps 流程和方法。例如,回滚可以在软件开发期间保留代码的完整性,从而允许开发人员将一组代码更改返回到较早的版本或开发时间点。对于这种情形,团队必须回滚 SDLC 流程,以便匹配软件代码完成进度。团队还必须回滚他们的软件开发和测试过程,以便擦除自上一个正常版本或修订版以来执行的所有代码修改。

第 2 步

下一步是缩短开发周期。快速软件生产是 RAD 原型设计的基础。只需极少的规划,因为该技术方法使用了面向对象的编程 (OOP)。DevOps 提供了结构,OOP 提供了编程准确性,支持更快地更改和完成软件产品。例如,搜索引擎的原型可能仅包含一个网页上的某个字段,这个字段接受键入的搜索条件。在完成输入后,用户单击 Go 按钮即可调用搜索,搜索引擎会返回一个结果集。尽管我们简化了示例,但这是包含网页、数据源和可执行的搜索代码作为对象的基本软件代码开发的一个例子。在单独完成时,团队可以缩短软件开发所需的时间量,但在团队没有沟通或成员对其在 SDLC 中的角色感到不满意时,团队的操作责任可能在延误软件开发。DevOps 和快速软件生产工作相结合,通过代码重用、虚拟化(节省安装系统镜像所需的时间)和自动部署(极大地加速 SDLC 流程)等方法减轻了这种混淆。换句话说,每次人类交互都可能与 DevOps 中的一个自动化流程相关联。因此,快速软件生产可以通过以下方式实现:在动态环境中促进更密切的沟通,使用需求开发和定义原则,并执行 RAD 原型设计。完成所有这些操作的好处包括,更短的开发生命周期、实用性、可伸缩性、互操作性、高质量恢复流程、可移植性和改善的质量。

通过 DevOps 和快速软件生产赢得业务

新 DevOps 创新在不断演变,以便加快软件开发和交付。企业面临着向客户提供近实时的满意度的越来越高的挑战。向市场推出满足最新客户需求的产品的软件制造商,会首先获得最大的市场份额。因此,软件交付仅受开发高质量产品所需的时间约束。这是快速软件生产的一个重要驱动因素。如果率先向市场推出产品,企业会获得很大的收入。要满足市场需求,DevOps 和快速软件生产都必不可少。企业不仅获得了重大的竞争优势,还获得了增强的操作可预测性、改善的操作一致性和更低的成本,从而可以实现更高的利润。

快速软件生产工具

主要的工具是自动化 DevOps 流程的一组工具。实现快速软件生产,需要能解决 SDLC 及其具体步骤的高质量自动化工具(参见 图 3)。RAD 工具是一些软件应用程序,它们通过为开发流程提供自动化的功能来简化原型开发,比如为跨平台 RAD 原型开发提供中间件支持,用作数据库互连器,将控件嵌入在软件产品中,添加警报和通知功能,组织软件产品的组件,从桌面提供编程和开发支持,并帮助实现基于云的 RAD 原型设计。

图 3. SDLC
该图显示了 SDLC
该图显示了 SDLC

结束语

DevOps 是企业提供的一种框架,也是企业用来在软件产品的快速开发和交付上反复取得成功的一种途径。使用启动、开发和部署结构来实现软件开发,通过这种方式支持 SDLC 的各个阶段,为大规模生产提供一种安全的技术方法。这样,企业能够采取 24x7x365 的软件开发行动,加快满足市场对创新的需求的速度。现在,通过更快将其软件产品投入到市场,企业能够拥有近无限的创收潜力。DevOps 使得快速软件生产成为能带来最大利润的软件开发方法。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational, DevOps
ArticleID=988601
ArticleTitle=使用 DevOps 执行快速软件生产
publish-date=11062014