全知DevOps分析:实现软件开发全方位洞察
1. 引言
DevOps旨在加速变更从提出到最终为终端用户所用的时间。自其诞生以来,DevOps彻底改变了软件开发流程和软件制品的生产方式。例如,将开发和运维人员整合到同一团队,使用应用程序生命周期自动化工具实现持续交付,或者设计“故障优先”的软件架构以从运行时操作监控中学习合适的架构。
然而,跟踪和评估单一DevOps实践相对于其他实践或传统工作方式所带来的实际货币、技术、组织和社会收益,仍然面临诸多挑战。一方面,从传统软件工程实践向DevOps转型成本高昂且难以预估;另一方面,缺乏可操作的指标来衡量每个实践及其组合的影响、风险和收益。
DevOps实践旨在全面改善软件生产、运营和演进的各个方面,涉及技术、组织和社会层面的变革,同时强调对失败的文化转变。因此,DevOps需要对所有事物和人员进行可衡量、细粒度、全面且持续的了解,以实现持续改进。我们将这种了解状态称为“全知”,并认为可以通过特定的预测分析框架来实现,该框架能够持续分析各层面的感官数据,并在多个粒度级别和各层面之间进行统计关联。
2. 背景
在DevOps背景下,“全知”指的是能够对软件开发和运营的社会、组织和技术三个复杂层面进行监控、跟踪和反馈。
从社会和组织角度来看,目前缺乏评估社区质量的标准框架。虽然有一些尝试,如开源软件基金会的CHAOSS倡议,但尚未有确定的解决方案。我们的工作旨在提供一个全面的软件项目质量视图,考虑到开发过程中的所有方面,为此计划提供一套能够表征这三个层面的指标和方法。
从技术角度来看,自上世纪90年代以来,提出了多个软件质量框架,但大多数仅关注软件系统的技术