脉冲云之持续集成(上篇)

持续集成


持续集成解决了什么问题?


1,提高软件质量。
  如何提高软件质量已经不再是一个纯粹的技术问题,而是一个工程问题。从计算机诞生以来,相应的软件开发就存在,同时出现了很多提高产品质量的理论和方法,有的从技术角度出发,例如面向对象技术的产生和推广,第四代语言的诞生等,有的从自动化工具入手,例如CASE工具,过程控制软件,自动化管理平台等,有的从过程模型角度出发,例如迭代模型,螺旋模型,RUP,IPD等。


  每一种解决质量问题的方法都不是独一无二的,软件质量的提高应该是一个综合的因素,需要从每个方面进行改进,同时还需要兼顾成本和进度。


  那什么是质量?我们该如何衡量质量呢?质量具有三个维度:符合目标、符合需求、符合实际需求。目标是客户定义的,符合目标即判断我们是不是在做需要做的事情。实际需求包括用户明确说明的和隐含的需求。符合用户习惯,这其中包含了我们要引导用户如何操作或者去适应用户本身的操作习惯。


  2,节约时间,缩短项目发布周期。
  快速开发和上市一个新产品,并快速取得预期的投资回报是每个企业孜孜以求的目标。那么,如何在保证项目质量的前提下,尽可能的加快项目进度呢?


  深入了解顾客需求,减少开发过程中的需求变更与返工。顾客需求是新产品开发的输入,如果输入不正确,不完整,就必然导致开发过程中大量的变更,这对开发进度影响极大。


  对新产品项目进行开发优先顺序排列和合理资源分配,确保重要的项目得到优先开发。在资源有限的情况下,同时开发过多项目的结果是所有项目都会延期。


  建立技术平台和共用模块,缩短开发周期。如果企业能通过建立技术平台,使一些技术模块化,使一些模块标准化,在一个平台产品的基础上进行更多的同类产品开发,则能大大缩短新项目的开发周期。


  采用有效的项目管理方法进行开发项目的管理。有效的项目管理方法是每个开发团队成员都应该熟练掌握的,掌握了有效的项目管理方法能大大缩短每项任务、每个活动的完成时间,总体的开发周期就能相应缩短。


  3,便捷部署
  显而易见,部署包需要包含应用程序的所有组件,不仅仅是你自己的二进制包,通常这此包由集成构建产生,还应包含静态内容、配置文件等。实际上软件包应包含软件生命周期中所有的内容,也就是那些需要一起被部署、升级和取消部署的内容。


  确保软件包是“完备的可部署单元”对于一次可靠的部署来说是到头重要的。顺畅和可靠的部署流程从简单的第一步开始:以一种自动的、可检查校验的方法整合并发布一个结构化的、完整的部署包,该部署包定义了特定版本的应用程序中所有的组件、配置和依赖关系。这能显著减少因不合法或缺少定制值、组件或必需的服务而产生的错误。


  持续集成可以让你在任何时间发布可以部署的软件。在外界看来,这是持续集成最明显的好处,对客户来说,可以部署的软件产品是最实际的资产。利用持续集成,你可以经常对源代码进行一些小改动,并将这些改动和其他代码进行集成。


  4,增强项目的可见性。
  在传统项目中,当一个项目经理或一名开发者说自己已经完成了80%的任务,你必须保持谨慎的态度,因为剩下的20%可能还需要80%的时间,为什么数据会有这么大的差别?因为项目中唯一不变的就是变化,我们每个人都需要拥抱变化,而变化让我们不知道将软件做到什么程度才算是做完全了。软件开发项目,往往在项目进度和软件质量方面缺少可见性,项目越缺少可见性,就越难控制,越有可能失败。我们可以通过迭代开发、技术评审、持续集成来增强项目的可见性。


  采用迭代的开发模型,将产品的将会过程分为多个阶段,按照功能递增式交付。技术评审是确保软件质量的重要环节,技术评审包括代码走审,会议评审和同行专家评审,也可以充分得用质量审查的工具软件,这些都有助于提高代码质量。持续集成是能够把最终的一次大规模的集成调试过程分散到项目开发时间表的每一周、每一天、甚至每个小时,让项目中的各个人员都能够随时掌握当前的整体进度,并迅速发现集成过程中出现的问题并进行解决。


  5,建立团队开发产品的信心
  持续集成可以建立开发团队对开发产品的信心,因为分们清楚地知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,影响的结果怎么样。


  6,解决项目管理的困惑

  持续集成在开发者和开发者之间,开发者和测试之间,开发者和配置管理之间,开发者和项目经理产品经理之间开成了一条“无缝焊接”之路。

那么,脉冲云是如何实现持续集成的呢,请看下篇

你可能感兴趣的:(脉冲云之持续集成(上篇))