敏捷与DevOps

作者: 狮子座圈圈 | 来源:发表于2019-03-21 00:37 被阅读0次

最近看了一些项目团队的敏捷实践分享,大家都提到了采用DevOps的方式。在推广敏捷的时候,也都会推广DevOps一体化的平台。因此我也学习了一些跟DevOps相关的书籍和资料,对敏捷跟DevOps的关系有了一些理解。

什么是DevOps

从字面上看,就是开发和运维的结合。但具体是什么呢?跟敏捷一样,DevOps并没有一个确切的定义和界限,而是一套人们在软件开发实践中的经验和方法的总结。这些经验和方法是为适应当下软件开发的特点(Volatility,Uncertainty, Complexity, Ambiguity, VUCA)而产生的。它在基于敏捷增量与迭代开发,持续改进的思想基础上,倡导了持续交付。

DevOps的产生

传统的瀑布式开发方式被看做是软件开发的第一次进化,敏捷被看做软件开发的第二次进化,而DevOps被看做是软件开发的第三次进化。

敏捷的产生,主要是为了解决需求不确定的问题。因为随着项目复杂度的增高,市场的不断变化,需求在项目的早期往往是不确定的。敏捷通过迭代和增量开发的方式,尽早的向客户交付产品功能,从而不断的获得客户的反馈,进而使需求不断明确。采用敏捷的方式,在每个迭代结束的时候,都会产生潜在可交付的软件。迭代周期短,频繁的交付,这些特点使敏捷需要强大的质量保障,因此持续集成,自动化测试,这些敏捷实践也几乎成为了敏捷的标配。虽然每个迭代结束时都要产生潜在可交付的软件,但是并不是每个迭代都会交付。主要原因,一是因为部署是一个复杂的过程,时间和人力的开销很大;二是客户可能并不需要这么频繁的升级软件,他们只是希望能看到软件的最新成果,以确定是不是他们想要的,以及接下来他们又想要什么。基于这两点原因,迭代结束时,敏捷团队通过迭代评审会向客户演示软件成果,客户根据演示的情况给出反馈意见。

这种向客户进行演示软件成果的方式主要适用于客户是确定的,并且客户不需要频繁升级软件的情况。然而在互联网行业,用户是海量的,不确定的,只有在软件交付过后,才能得到不同用户的反馈。并且用户的反馈如果没能得到及时的解决,有可能会造成用户的流失。因此,持续交付应运而生。软件部署被提到了整个软件开发生命周期中的很重要的位置。人们提出了将开发和运维紧密的结合起来,形成一条完整的开发部署流水线。DevOps也由此提出来了。

由此可见,敏捷关注的是软件生命周期的前面部分:需求,开发,测试。DevOps在此基础上,又着重关注了后面的部分:部署与发布。

DevOps技术支持

DevOps提倡的是持续交付,需要高质量做保障,以及自动化的流水线做技术支撑:

  • 敏捷项目管理
  • 软件配置管理
  • 持续集成
  • 自动化测试
  • 自动化部署

持续集成和自动化测试保障了持续交付的质量。自动化部署使高频发布成为可能。灰度发布等发布策略降低了高频发布的风险。

总结

DevOps打造了端到端的持续交付流程。也体现了团队高质量的持续交付的能力。在持续交付的过程中,不断进行持续改进,从而又可以不断的提升持续交付的能力。
不过并不是所有的项目都适用高频发布。比如那些需要到客户现场去部署,或者客户并不希望频繁升级的软件项目来说,并不需要如此频繁的交付,可以根据项目的实际情况而定。

相关文章

  • DevOps指北

    DevOps是什么 DevOps与敏捷开发 DevOps成功实践需要哪些条件 DevOps是什么 DevOps是一...

  • 敏捷开发与DevOps的对比

    敏捷开发与DevOps的区别 敏捷与 DevOps 之间的主要区别在于:敏捷是关于如何开发和交付软件的哲学,而 D...

  • DevOps和敏捷全栈开发

    DevOps和敏捷全栈开发 DevOps的介绍2.DevOps的敏捷开发3.敏捷团队中DevOps的实践过程4.D...

  • DevOps:工具篇

    一、 什么是DevOps? Devops作为敏捷开发的基石,脱离了DevOps谈敏捷开发,只会变得的不“敏捷”,它...

  • 敏捷与DevOps

    最近看了一些项目团队的敏捷实践分享,大家都提到了采用DevOps的方式。在推广敏捷的时候,也都会推广DevOps一...

  • 2017年qa应掌握的技能

    DevOps & 敏捷方法 随着对于在交付期限内完成项目的迫切需求,测试人员需要学习敏捷方法和DevOps,因为它...

  • 五分钟理解瀑布开发、敏捷开发和Devops

    瀑布开发、敏捷开发、Devops概述 无论是瀑布式开发、敏捷开发还是DevOps,整个流程都分为设计、开发、测试和...

  • 如何避免DevOps变革的六大“焦油坑”

    当今,DevOps能显著提升企业的商业敏捷与能力,因此在企业中广受欢迎。然而,对于大多数企业来讲,DevOps变革...

  • 《DevOps 开发运维手册》

    【敏捷】什么是DevOps?190701 【敏捷】配置管理 190701 【版本管理】【敏捷】持续集成 19070...

  • 敏捷的再敏捷-论敏捷与DevOps

    过去一年多,本人所在公司发生了很大变化,随着敏捷开发的实施,DevOps的应用,明显感觉到开发效率的提升,人员积极...

网友评论

    本文标题:敏捷与DevOps

    本文链接:https://www.haomeiwen.com/subject/ajqfvqtx.html