DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
软件开发概述与敏捷开发
软件开发生命周期
软件开发生命周期又叫做 SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合。
软件开发瀑布模型
瀑布模型是最著名和最常使用的软件开发模型。
瀑布模型就是一系列的软件开发过程。它是由制造业繁衍出来的。一个高度化的结构流程在一个方向上流动,有点像生产线一样。
在瀑布模型创建之初,没有其它开发的模型,有很多东西全靠开发人员去猜测、去开发。这样的模型仅适用于那些简单的软件开发,但是已经不适合现在的开发了。
软件开发瀑布模型(传统)------>流水线工作------>需求分析-----设计----实现-----测试----发布----收集反馈
软件的敏捷开发
敏捷开发的核心是迭代开发与增量开发
迭代开发
传统的开发方式是采用一个大周期(比如一年)进行开发,整个过程就是一次"大开发",迭代开发将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发",将其一步一步完成。
增量开发
软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。举例:房产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司可以在造完1号楼时交付1号楼,造完2号楼时交付2号楼,以此类推,这样可以分摊风险,回流资金。也有益于改进之后的楼房。
敏捷开发如何迭代
虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,其核心思想-------》<解耦>
敏捷开发的好处
早期交付
敏捷开发的第一个好处,就是早期交付,从而大大降低成本。
还是以上一节的房产公司为例,如果按照传统的"瀑布开发模式",先挖10栋楼的地基、再盖骨架、然后架设屋顶,每个阶段都等到前一个阶段完成后开始,可能需要两年才能一次性交付10栋楼。也就是说,如果不考虑预售,该项目必须等到两年后 才能回款。敏捷开发是六个月后交付一号楼,后面每两个月交付一栋楼。因此,半年就能回款10%,后面每个月都会有现金流,资金压力就大大减轻了。
降低风险
敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。
请想一想,哪一种情况损失比较小,10栋楼都造好以后,才发现卖不出去,还是造好第一栋楼,就发现卖不出去,从而改进或停建后面9栋楼?