论文部分内容阅读
配置管理工具利用配置制品实现软件系统的自动化部署和配置,是开发运维一体化(DevOps)的重要组成部分。当前互联网开源社区中存在数量众多的可复用配置制品,然而在使用这些制品进行软件运维时存在以下难题:1)配置制品资源分散,缺少分类管理,难以快速定位期望的目标配置制品,影响制品的有效复用;2)配置制品缺少有效的错误检测机制,使得代码质量难以保证,导致配置代码错误影响目标系统的部署、配置和运行管理。因此研究如何有效管理配置制品、提升制品质量的关键技术,设计和实现知识驱动的配置制品管理系统,对推动自动化运维和开发运维一体化具有重要意义和现实价值。 针对上述问题,论文首先提出一种面向配置制品的层次分类方法。该方法首先对制品的标签属性进行频繁项集挖掘,基于“标签共现性”规律构建层次类别体系,然后利用制品的外部描述文档作为特征,采用机器学习分类算法训练层次化的多分类模型。论文基于该方法对11000例制品进行实验,分类结果的查准率、查全率和调和平均值分别达到0.81、0.88、0.85,验证了分类方法的有效性。其次,论文提出一种基于代码版本历史的制品错误模式发现方法。方法首先基于领域知识进行代码变动特征建模,再使用无监督学习算法对代码变动特征聚类,最后以人工方式总结发现配置代码错误模式。论文基于该方法在14个Puppet项目的15000例提交数据上进行实验,总结出配置制品的41种常见错误模式。 最后,论文以上述研究成果作为知识驱动,设计并实现了配置制品管理系统,该系统将多种制品统一管理和存储,集成了制品的层次分类和错误检测工具,有效提升了制品管理和应用的效率。