论文标题
Confex:在云中自动化基于文本的软件配置分析的框架
ConfEx: A Framework for Automating Text-based Software Configuration Analysis in the Cloud
论文作者
论文摘要
现代云服务具有复杂的体系结构,通常包括许多软件组件,并依赖数百个配置参数,以正确,安全和高性能功能。由于开源软件的流行率,开发人员可以在不掌握该软件的配置的情况下使用第三方软件轻松部署服务。结果,配置错误(即错误配置)是服务中断和中断的主要原因之一。尽管现有的云自动化工具可以简化服务部署和管理的过程,但对检测云中错误配置的支持尚未得到彻底解决,这可能是由于缺乏适合一致解析不可分割的配置文件的框架所致。本文介绍了Confex,该框架能够发现和提取云中基于文本的软件配置。 Confex使用一种新颖的基于词汇的技术来识别具有未标记内容的云系统实例中的配置文件。要在这些文件中提取信息,请使用现有配置解析器并进行后处理以进行分析。我们表明,在7805个流行的Docker Hub图像上识别配置文件时,Confex可实现超过99%的精度和100%的回忆。使用两个应用示例,我们证明了Confex还可以通过现有的工具在云中检测错误的配置,这些工具是为键值对表示的配置而设计的,在公共Docker Hub图像中揭示了184个错误。
Modern cloud services have complex architectures, often comprising many software components, and depend on hundreds of configurations parameters to function correctly, securely, and with high performance. Due to the prevalence of open-source software, developers can easily deploy services using third-party software without mastering the configurations of that software. As a result, configuration errors (i.e., misconfigurations) are among the leading causes of service disruptions and outages. While existing cloud automation tools ease the process of service deployment and management, support for detecting misconfigurations in the cloud has not been addressed thoroughly, likely due to the lack of frameworks suitable for consistent parsing of unstandardized configuration files. This paper introduces ConfEx, a framework that enables discovery and extraction of text-based software configurations in the cloud. ConfEx uses a novel vocabulary-based technique to identify configuration files in cloud system instances with unlabeled content. To extract the information in these files, ConfEx leverages existing configuration parsers and post-processes the extracted data for analysis. We show that ConfEx achieves over 99% precision and 100% recall in identifying configuration files on 7805 popular Docker Hub images. Using two applied examples, we demonstrate that ConfEx also enables detecting misconfigurations in the cloud via existing tools that are designed for configurations represented as key-value pairs, revealing 184 errors in public Docker Hub images.