云计算提高敏捷软件开发的六种方式

云计算和虚拟化可以让你创建虚拟机,并使用基于云的服务用于项目管理、问题管理和具有自动化测试的软件构建。而这又从六个方面鼓励了敏捷软件开发。

澳大利亚综合金融服务领先供应商之一澳洲联邦银行(Commonwealth Bank)建立了一个私有云来运行内部应用程序作为服务。这些应用程序使用超过300个Oracle数据库,这些数据库都被合并到按需Oracle实例中,而该实例可以由浏览器界面内的应用程序开发团队进行非常迅速的配置。这使开发团队配置生产质量环境的准备时间从三个月缩减到两分钟。

同时,Salesforce.com R&D利用云计算显著加快了其产品发布周期。该公司每个季度会发布一个主要产品,但每个月、每周甚至每天都需要添加渐进式改进。该公司的云基础设施帮助其建立了一个单一的统一代码库,让位于不同地理位置的开发团队都可以使用。这些团队成功地将敏捷开发和持续集成/交付与云计算结合在一起。

联邦银行和Salesforce.com R&D只是两个例子,向我们展示了敏捷软件开发团队如何使用云计算来加快开发操作和实现效率与效益。云计算和虚拟化让敏捷开发团队可以无缝地将多个开发、测试和生产环境与其他云服务相结合。

以下云计算和虚拟化帮助提高敏捷软件开发的六个重要方面:

1.云计算提供无限数量的测试和开发用服务器

在敏捷开发没有“遇到”虚拟化或云计算之前,开发团队受限于一台物理服务器,来满足其开发和生产服务器的需求。然而,在使用虚拟机或云实例后,开发团队拥有无限数量的服务器。他们不需要等待物理服务器空闲时才开始或继续他们的工作。

2.使敏捷开发转变成真正并行的活动

你可能在使用敏捷开发的同时,在配置服务器实例和安装必要的底层平台(例如数据库软件)时仍然遭遇延迟现象。正如联邦银行将配置Oracle数据库的时间从三个月缩减到两分钟,敏捷开发团队可以自己快速地配置所需的服务器,而不是等待IT运营来为他们配置。

虽然敏捷开发办法旨在消除软件开发过程中的低效率和延迟,在实践中,它变成一个串行活动,而云计算可以将其变成一个并行活动。这将帮助敏捷软件开发团队提高效率和效益。

3.鼓励创新和实验

能够根据需要产生尽可能多的实例可以帮助敏捷开发团队不断创新。如果一个功能看起来很不错,团队可以迅速产生一个开发实例来编码并测试它,而不需要等待下一个产品发布。当添加云计算到敏捷开发时,软件构建更加快速,这也将鼓励创新和实验。

4.加强了持续集成和交付

如前所述,云实例和虚拟化能够大大提高持续集成和交付。构建和自动化测试需要花一段时间。敏捷开发团队可能随后需要为在自动化测试期间失败的测试修复代码,在所有测试通过之前,他们需要反复这样修复代码。

在敏捷开发团队自己的云环境或者公共云中,拥有大量虚拟机可以提高持续集成和交付的速度。

5.带来更多开发平台和外部服务

敏捷开发团队可能需要使用各种不同的项目管理、问题管理以及自动化测试环境(如果使用持续集成的话)。很多这些服务都在云中作为软件即服务(SaaS)。

· 敏捷开发可以使用虚拟化、私有云和基础设施即服务水平的公共云的结合体。这种产品包括Amazon网络服务、GoGrid、opSource和RackSpace Cloud。

· 然后是使用平台即服务(PaaS)实例,例如Oracle数据库云服务、Google App Engine和Salesforce.com平台force.com,所有这些都包含数据库和语言环境作为服务。

· 最后,还有一些专门针对敏捷开发的SaaS服务,包括Salesforce.com、Basecamp项目管理门户和TestFlight,为Apple iOS设备提供托管测试自动化。

6.简化代码分支与合并

从理论上讲,敏捷开发是假设所有功能都可以被分解成大小相同的区块。在实践中,敏捷项目可能会遇到这样的功能,即其开发工作要比构建甚至发布的时间还要长。在代码重构工作中,当前版本可能需要小的改进并用于生产过程中,而代码的重新设计仍然在进行中。在这种情况下,代码分支是很有必要的。代码分支和合并设计开发和升级构建的很多版本,而通过虚拟化和云计算,你不需要为这些目的购买或租用额外的物理服务器。

总体而言,虚拟化和云计算消除了测试和开发服务器对物理服务器的依赖,无论它们是只安装了一个操作系统的虚拟机,还是具有数据库软件、语言或代码库的完整配置的服务器。如果敏捷团队打算采用持续集成和交付方法的话,虚拟化和云计算也是必不可少的。此外,虚拟化和云计算通过消除配置中的延误,让敏捷开发转变成并行活动,而不是串行活动。企业可以更好地将创新开发项目与业务目标相结合。

(责任编辑:蒙遗善)

时间: 2024-08-18 06:31:11

云计算提高敏捷软件开发的六种方式的相关文章

《系统分析与设计方法及实践》一2.2 敏捷软件开发

2.2 敏捷软件开发 在传统的软件开发方法中,工作人员努力构建客户想要的产品.他们花费大量的时间努力从客户那里获取需求,针对需求进行分析和建模,并且归纳成规格说明书.然后,评审说明书,与客户开会讨论,最后签字.表面上看他们开发的产品是符合客户的要求的,但通常事与愿违.在项目快要结束的时候,需求和范围.产品的适用性成为争论的焦点. 敏捷软件开发方法告诉我们开发项目是一个学习的体验.没有谁能完全理解所有需求之后才开始项目,即使是客户也一样.客户一开始有一些主意,但是他们也会随着项目的进展进一步了解他

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发

Scrum 求助编辑百科名片:http://baike.baidu.com/view/1528674.htm    敏捷软件开发模型--SCRUM Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发.包括了一系列实践和预定义角色的过程骨架.Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员. 目录 简介 Scrum创始人简介 历史 Scrum的特性 Scrum中的角色 Scrum会议 文档 展开 简介 S

敏捷软件开发宣言及敏捷宣言遵循的原则

http://agilemanifesto.org/ 敏捷软件开发宣言 我们一直在实践中探寻更好的软件开发方法, 身体力行的同时也帮助他人.由此我们建立了如下价值观: 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档 客户合作 高于 合同谈判 响应变化 高于 遵循计划 也就是说,尽管右项有其价值, 我们更重视左项的价值. 敏捷宣言遵循的原则 我们遵循以下原则: 我们最重要的目标,是通过持续不断地 及早交付有价值的软件使客户满意. 欣然面对需求变化,即使在开发后期也一样. 为了客户的竞争

敏捷软件开发宣言--常读常新

敏捷软件开发宣言 http://www.agilemanifesto.org/iso/zhchs/ 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人.由此我们建立了如下价值观: 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档  客户合作 高于 合同谈判  响应变化 高于 遵循计划 也就是说,尽管右项有其价值,我们更重视左项的价值. Kent BeckMike BeedleArie van BennekumAlistair CockburnWard Cunningham

敏捷软件开发实践-Sprint Status Track

介绍: 对于敏捷软件开发来说,能时刻保持跟进项目的进度是非常重要的,因为你可以随时了解团队的健康状况,并且对各种突发情况进行突发的处理,从而保证每个迭代结束后我们的项目可以按时的交付. 实现方式: 看项目进度的最好的工具当然是burndown chart,我们使用Jira做项目管理工具,Jira中有一个Report视图,可以非常直观的显示story的burn down 曲线,从而让团队直观的明白这个sprint进展的如何. 当然了,这个是从story级别的,它衡量的是随着时间的流失,story

敏捷软件开发实践-Code Review Process

介绍: 在敏捷软件开发中,从代码的产生速度上来看,要比传统Waterfall产生速度高很多.因为我们把时间安排的更加紧凑了.那么这么多的代码,如何能保证这些代码质量呢?很多人可能直接想到静态代码检测工具.没错,那些是可以定义一个代码检查规则来确保代码的质量,但是那个仅仅是从语言角度,那么逻辑是否已经最优化了?可重用性是否已经优化到极致了?这些是静态代码工具不能完成的,所以我们需要Code Review 实现方式: 对于已经在项目组很久的人来说: 虽然传统的code review就是把代码从仓库c

敏捷软件开发基础: 持续集成环境的构建

敏捷意味着什么 Agile可以说是近几年来软件工程界最"热"的一个单词,关于它的文章.书籍.讨论不 计其数.尽管如此,却仍有大量的从业者对Agile存有误解和困惑.Agile到底意味着什么 呢?仅仅是一些漂亮.时髦的宣传吗?到底怎样才算是Agile呢?做到了Agile能为软件开发团队带来什么好处呢?类似的问题还有很多. Agile其实根本不是一个什么新鲜.时髦的东西,它已经存在了数十年之久了.在这数 十年中,那些取得成功的软件开发团队无一不是敏捷开发团队.他们在自己的软件开发过 程中大

Visual Studio Team Architect 团队的敏捷软件开发(第一部分)

在最近几次与客户面对面的交流中,我有幸分享了我们团队如何在日常工作中进行敏捷软件开发.毫 无疑问,这在中国开发人员中是个热门话题,我也想利用博客这个平台与更多的读者进行书面的交流.当 然关于敏捷开发利弊得失的争论有不少,而相关的开发模式也分成了TDD (Test Driven Development), Scrum, XP(eXtreme Programming)等流派.就我个人而言,一个团队是否严格遵循某种既定的敏捷方法并 不重要,但一定得选择并采用一种(或几种)最适合自己开发团队和开发项目的

敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键

Agile Model Driven Development (AMDD): The Key to Scaling Agile Software Development 敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键   Table of Contents 目录 Overview 概述 Envisioning 展望 Initial agile requirements modeling 初始化敏捷需求建模 Initial agile architecture modeling 初始化敏捷架