DevOps Master系列:如何把DevOps与CMMI整合

2020-10-20 09:00:00
晏瑞宇
  • 访问次数: 1252
  • 注册日期: 2020-05-27
  • 最后登录: 2024-04-30
  • 我的积分: 2587
  • 门派等级: 无门派

1.DevOps是什么?

结论:规模化敏捷的一种重要方法,敏捷2.0的里程碑式的代表

2007年,比利时独立咨询师Patrick Debois参与了一个政府数据中心迁移中的测试工作。他在做测试时,需要频繁往返于Dev团队和Ops团队之间。Dev团队已经实践了敏捷,而Ops团队还是传统运维的工作方式。看到Ops团队每天忙于救火和疲于奔命的状态,他想能否把敏捷的实践引入Ops团队呢,他写出了DevOps的论文敏捷的基础设施。

DevOps这个词就是Patrick DeBois创造的,所以,他经常被成为DevOps之父,但他喜欢说DevOps是一个人的问题。虽然DevOps通常被认为是一个技术问题,但实际上,DevOps是一个文化和业务问题。

DevOps2.0是软件工程的最佳实践,是领域一系列创新的集成.DevOps以一系列高效团队(敏捷2.0)的管理方法整合开发与运营团队的工作效率。

DevOps是一种文化和一套广泛的概念和实践,而不是一套硬性的规则或特定的产品。除了使用自动化支持的敏捷开发技术外,这些概念还包括在开发过程中进行更大的协作、在所有阶段让涉众参与进来、在开发每个组件时持续关注整个系统,以及(顾名思义)在开发周期中更早地移动操作任务。

2.CMMI是什么?

CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成CMMI V2.0 模型是一套经过验证的全球最佳实践,旨在优化不断变化的全球环境中的业务性能。CMMI2.0首次在白皮书中,拥抱敏捷这一方法,进而在2019年提出拥抱DevOps这一最佳实践。帮助组织建立解决最常见业务挑战的关键能力并设定相应基准,包括:CMMI与敏捷及DevOps

3.DevOPS与CMMI是否冲突?

结论:不冲突,并且可以集成

今天,几乎所有的商业创新都是建立在技术上的,这意味着创新组织在竞争中保持领先的能力取决于它开发和交付软件和服务的速度。这是DevOps兴起的一个关键原因,DevOps将开发和操作实践结合在一起,以高速交付应用程序和服务。一份报告发现,超过78%的公司已经在应用DevOps实践,而且这个数字还在继续一直上升。DevOps已经迅速扩展到商业和企业软件开发领域。

即可以整合CMMI与DevOps,也可以整合CMMI与Agile。你需要改变计划,现在很少有公司只专注于软件开发,大多数都提供软件和相关服务的混合。因此,他们需要一个集成的方法,使他们能够协调开发和交付这两者。

4.如何集成DevOPS与CMMI

2018年,美国国防部正计划在国防承包商中推动DevOps实践的使用,作为其数十亿美元软件预算开支方式的全面改革的一部分。国防部的这一举动是根据包括国防科学委员会在内的关键咨询小组的建议,他们建议用DevOps方法取代缓慢过时的瀑布式开发方法,比如一个高度自动化的“软件工厂”,它可以快速和可预测地生成更好地满足需求的软件。

CMMI2.0的发布(能力成熟度模型集成)对于确保DevOps项目的成功是如此重要。CMMI是一组经过时间考验的持续改进性能的全球最佳实践,它建立在许多与DevOps方法相同的原则之上。

全球管理思想大融合呀,ITIL4融合DevOPS、Agile、LeanIT,CMMI2.0融合Agile&DevOps,SAFE融合DevOps,DAD融合DevOps。

DevOps管理思想首次提出“左移”的概念。CMMI开发和服务的组合支持DevOps的“左移”概念,它的目标是通过在开发生命周期的早期包含操作任务来提高软件质量,并且比传统的瀑布式开发更快地捕获和解决问题。

这是因为CMMI不仅集成了设计和开发方面的最佳实践,包括但不限于Agile、DevOps、Lean IT等先进的开发管理思想与实践,还集成了操作方面的最佳实践,比如集成软件和服务、部署和快递地持续交付,度量它们是否满足预期。包括变更成功率、lead time、客户满意度等管理指标。在整个产品生命周期中让涉众参与进来,以及持续改进(改善)。

CMMI还支持自动化的关键任务,这是加速软件生产的关键。DevOps团队使用技术工具在整个开发周期中自动化繁琐的手工过程,从需求到驱动设计,到生成测试脚本,再到创建用户文档。这种自动化代表了软件开发的一个重大进步。它将开发人员从耗时的日常琐事中解放出来,这样他们就可以专注于设计和构建软件功能的最重要和最具挑战性的任务。

这些方法的集成也是首次在美国国防部相关项目中进行实践,并进行推广。

5.DevOPS与CMMI集成的误区

DevOps首先是一种文化

DevOps是一种开发与运维的协作思想,首先需要从组织认同这种文化,并打破职能墙。才能成功地应用DevOps这一最佳实践,而不仅仅是用于代码开发和部署自动化这种技术。

DevOps为自动化而自动化

对自动化的依赖使得选择正确的自动化工具变得至关重要。仅仅因为工具集受欢迎,或者因为它是由供应商建议的,就选择它,可以很快地使DevOps项目脱离正轨。例如,一个工具集可能会强加与您的内部流程不一致的严格的工作方法,因此选择错误的工具可能会破坏您的流程。

DevOps是一种集成工作

DevOps的成功还要求对交付软件和确保软件符合预期的所有其他过程进行最佳实践,例如将软件与其他产品集成、管理接口、发布和更新,以及监视性能和使用情况。这不仅对确保良好的用户体验至关重要,而且还因为这些信息在产品规划和开发周期的早期是有用的。

DevOps是一种重视反思的理论

如果您发布了错误的配置,或者您的最新版本引入了错误,您的用户可能会失去服务,您需要仓促地解决这个问题。通过实践正确地反思过程,提升组织的整体质量。

作者:北京老李
链接:https://www.jianshu.com/p/9eb5258e9e26
来源:简书