CMMI V2.0 | 使用CMMI将DevOps提升到一个新的水平

2021-02-25 09:00:00
晏瑞宇
  • 访问次数: 1201
  • 注册日期: 2020-05-27
  • 最后登录: 2024-03-28
  • 我的积分: 2485
  • 门派等级: 无门派
当今几乎所有的业务创新都基于技术,这意味着组织在竞争中保持领先地位的能力取决于其开发和交付软件及服务的速度。DevOps融合了开发和运维实践,可以快速交付应用程序和服务, 这是DevOps崛起的关键原因。据报告显示,超过78%的公司已经在采用DevOps实践,并且这数量还在继续增加。

自DevOps起源于移动应用程序开发人员和互联网公司以来,便迅速在商业和企业软件开发领域中传播开来。如今,美国国防部正计划在它的国防承包商中推动使用DevOps的实践,这也是国防部耗资数十亿美元软件预算进行全面改革的一部分。国防部的这一举动源于包括国防科学委员会在内的关键咨询小组的建议,该小组建议用DevOps方法替代缓慢且过时的瀑布开发方法,例如高度自动化的“软件工厂”,使生产软件的速度更快且可预测,而且能够更好地满足需求。

DevOps是一种文化,不是一套规则

DevOps是一种文化和一组广泛的概念及实践,而不是一成不变的规则或特定产品。除了使用基于自动化的敏捷开发技术外,DevOps还涵盖了其他内容:在开发过程中加强协作,让相关干系人在各个阶段参与进来,在开发每个组件时持续关注整个系统,以及顾名思义在开发周期中尽早加入运维任务。


有时普遍没有关注到的是,成功地应用DevOps方法,还需要代码开发和部署以外的其他最佳实践。DevOps的成功还需要交付软件相关的所有其他过程的最佳实践,确保其能够满足期望,例如软件与其他产品的集成,管理接口,发布和更新,以及监控性能和使用情况。这一点至关重要,不仅是为了确保良好的用户体验,更因为这些信息在产品规划和开发周期的早期会很有用。

如果客户没有使用您的最新应用程序,您需要了解原因,并且可能需要重新检查产品路线图,看是否需要更改计划。此外,如今很少有公司仅专注于软件开发,大多数公司同时提供软件和相关服务。因此,他们需要一种集成的方法,使他们能够协调两者的开发和交付。

这就是为什么CMMI(能力成熟度模型集成)V2.0对于确保DevOps项目的成功如此重要。CMMI是一套经过时间考验的全球最佳实践,可不断提高性能。它的建立是基于许多与DevOps方法相同的原理,包括广泛的系统方法,在整个产品生命周期中让相关干系人参与进来,以及持续改进。CMMI V2.0同时也是一个集成模型,能够支持软件、硬件和系统开发,其中包括了美国国防部推荐的实践、以及服务交付。

例如,CMMI开发和服务的组合支持DevOps的“左移”概念,该概念旨在开发生命周期中比传统瀑布式开发更早地涵盖运维任务,从而提高软件质量并更快地发现并解决问题。这是因为CMMI不仅针对设计和开发集成了最佳实践,而且还针对运维方面集成了最佳实践。例如:如何集成软件和服务,部署和更新,以及度量是否符合期望。

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

但是,对自动化的依赖使得选择正确的自动化工具至关重要。仅仅因为工具的流行或供应商的建议而做出选择,会使DevOps项目出现问题。例如,一套工具所推行的死板的工作方法可能与您内部过程不符,那么选择错误的工具可能会破坏您的流程,或者迫使您高价地定制该工具,从而造成工具维护的噩梦。您不应该为了适应工具而改变业务;您的流程应由业务需求驱动,而不是由外部工件或系统驱动。CMMI帮助组织避免陷阱:它提供了一种直接、结构化的方式来确定工具是否满足组织的业务需求,以及将来是否会继续这样做。

尽管DevOps旨在提高软件质量,但问题仍然会存在,也确实存在。此外,快速且高度自动化的开发过程意味着,在用户使用产品之前,识别问题的时间更少了。问题管理和快速解决问题跟以往一样重要。

如果您发布了错误的配置版本,或者您的最新版本存在问题,那么您的用户可能无法获得服务,您的声誉将遭受打击,您不得不艰难地解决该问题。CMMI帮助组织避免了这些问题,例如:通过更好地控制软件配置和发布,并在出现问题时进行管理。以高速公路进行类比,CMMI V2.0帮助您养成良好的驾驶习惯,并提供保护措施,例如传感器、安全气囊和护栏,以确保您安全到达目的地。

DevOps能够通过加速应用程序和服务的开发来帮助组织提升创新速度。但是要使DevOps成功,组织需要的不仅是更快地生产代码的能力。CMMI V2.0能支持交付和管理软件及服务的全过程,以此帮助组织将DevOps的承诺变为现实。