一、聊聊软件交付的过程
传统的软件交付过程
现如今的软件交付过程
二、聊聊软件开发模型
1.瀑布式开发模型
-
介绍
- 瀑布模型是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等
- 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。
- 瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
- 大体分为这几个阶段:需求分析、设计、编码、测试、维护。
-
开发流程
2.敏捷式开发模型
-
介绍
- 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
- 在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
- 敏捷开发不是具体的指导性方法,它是一种观点和价值观,敏捷开发提供了一种思维方法,但真正的敏捷开发并不告诉大家怎么做。
- 大体分为这几个阶段:需求分析、设计、编码、测试、维护。
- 敏捷开发的精髓是响应变化,不去控制变化,而以往的项目管理是要控制变化,以实现整个开发周期是可控的。敏捷开发产生以前,由于软件开发和传统行业天然的有着鸿沟,几乎用尽了以往所有的经验办法,都没法做到详实的很精确的控制。有人便提出了,既然不能控制变化,何不去响应这种变化,敏捷宣言也由此产生。
- 敏捷在互联网和软件开发领域从涓涓细流逐渐演变为行业潮流,往小了说是改进了开发方法,往大了说是革命了瀑布流式的命——把产品开发引向了快速迭代、小步快跑的路线上。
-
开发流程
3.DevOps开发模型
-
介绍
- DevOps 试图通过发展开发和运营团队之间的伙伴关系,弥合这条鸿沟。
- DevOps 活动强调软件开发人员和 IT 运营部门之间的沟通、协作和整合。
- DevOps 本质上将敏捷活动的持续开发目标扩展到持续集成和发行。
- DevOps 促进协作,通过自动化和编排改善过程为协作提供方便。
- DevOps是利用云解决方案的优势,将敏捷实践与过程组合起来。
-
开发流程
三、聊聊DevOps
1.概念
- DevOps 不是一种框架、工具或者技术,理解这 点非常重要 它更多的是与组织的文化有关 DevOps 还是人们在组织中使用预先定义的过程、利用自动化工具,使日常工作更加高效、手工工作更少的一种方法。
- DevOps 是过程、方法与系统的统称。
- DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
- DevOps 是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
- DevOps 的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。
- DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。
2.开发流程
3.采用的工具集
4.何为持续集成
持续集成(Continuous Integration,简称CI),是一种软件开发实践,指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。通俗一点来讲,就是绑定项目的代码仓库,SVN或者Git库,自动抓取新的代码,完成构建,甚至执行测试,反馈结果。
5.何为持续部署
持续部署(continuous deployment,简称CD)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进⼊生产阶段。