查看: 239|回复: 0

[敏捷] 敏捷与DevOps的区别和联系是什么?二者如何结合?

[复制链接]
  • TA的每日心情
    开心
    2018-4-28 15:48
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    304

    主题

    1128

    帖子

    989

    积分

    管理员

    JF币
    989
    贡献值
    989
    精华
    7
    发表于 2018-5-30 12:06:49 | 显示全部楼层 |阅读模式
    敏捷和DevOps已经共存了多年,那么这两个模式之间的联系和区别是什么呢?

    有人将DevOps视为“正确践行敏捷”,也有人将DevOps视为与敏捷关系不大的一套自动化的做法。而我们认为,敏捷与DevOps是相辅相成的,需要有效整合以提高整个软件开发和交付效率。

    敏捷的问题在哪里:

    敏捷框架被发明出来以后,软件的运行和运维方式发生了巨大的变化。开发团队专注于设计、开发和测试软件,持续交付团队专注于管理他们部署的系统和底层的基础设施。

    对于大多数产品而言,推出之后的支持和运维(Bug修复、特性发布和增强)占据了其生命周期的绝大部分时间。管理这些工作(滚动发布“在线”服务的变更、在“准运行环境”中测试等等)的可行方法以及如何扩展产品提升性能被视为“运维特性(Operational Features)”,在敏捷中,这些内容在产品待办事项中通常找不到。

    DevOps的问题在哪里:

    DevOps的重点是消除Dev和Ops之间的鸿沟,减少让人痛苦的工作交接,加强合作,以便类似“可部署性”、可扩展性、监控和技术支持这样的工作不会被简单地视为计划外的东西。

    不过,我们已经开始看到DevOps场景中出现了强大的反模式,比如,Dev团队和DevOps团队的隔离,导致另一个筒仓的产生,而没有做多少工作来加强合作。

    因为很多团队只是“追加”了DevOps,而没有将其完全整合到他们的软件开发流程。

    我们完成了所有的敏捷仪式以及许多常规的DevOps实践,但是,最终的结果没有比以前更好——可操作性仍然是后期问题,产品针对开发优化,而不是交付和运维。

    敏捷+DevOps才是完美解决方案

    解决方案就是从一开始就将这些好的DevOps实践合并进来,把它们吸收到我们日常的敏捷流程和实践中——这需要我们对敏捷框架做些调整。

    我们将与可操作性相关的任务/故事添加到待办事项列表中,和用户故事放在一起。

    新式的服务待办事项列表(除了用户功能外)应该描述如下内容:

    产品/服务的可扩展性(向上、向下、向内、向外——以及何时)
    可部署性(需要在线部署而不停机吗?)
    服务监控(哪些方面需要监控?每次变更后如何升级监控?)
    日志(日志应该记录什么信息?采用什么格式?)
    报警(谁?何时?如何?为什么?)
    服务的可测试性
    安全和法规遵从性方面,如加密模型、数据保护、PCI法规遵从性、数据法规,等等
    操作性能

    需要注意的是,这些操作性和安全方面的需求会不断地变化,会随产品/服务演化。

    使用敏捷+DevOps方案,我们必须以全新的眼光看待一些公认的敏捷概念,如技能集和产品团队里的角色、产品待办事项本身以及我们如何计划和执行迭代。不过,你要理解的是,没有任何一种解决方案是通用的,团队需要不断调整,找到最适合自己的模式。

    本文节选摘编自:敏捷与DevOps整合之道


    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    快速回复 返回顶部 返回列表