首页> 外文会议>IEEE/ACM International Conference on Software Engineering >Learning from, Understanding, and Supporting DevOps Artifacts for Docker
【24h】

Learning from, Understanding, and Supporting DevOps Artifacts for Docker

机译:学习,理解和支持Depcops工件的Docker

获取原文

摘要

With the growing use of DevOps tools and frameworks, there is an increased need for tools and techniques that support more than code. The current state-of-the-art in static developer assistance for tools like Docker is limited to shallow syntactic validation. We identify three core challenges in the realm of learning from, understanding, and supporting developers writing DevOps artifacts: (i) nested languages in DevOps artifacts, (ii) rule mining, and (iii) the lack of semantic rule-based analysis. To address these challenges we introduce a toolset, binnacle, that enabled us to ingest 900,000 GitHub repositories. Focusing on Docker, we extracted approximately 178,000 unique Dockerfiles, and also identified a Gold Set of Dockerfiles written by Docker experts. We addressed challenge (i) by reducing the number of effectively uninterpretable nodes in our ASTs by over 80% via a technique we call phased parsing. To address challenge (ii), we introduced a novel rule-mining technique capable of recovering two-thirds of the rules in a benchmark we curated. Through this automated mining, we were able to recover 16 new rules that were not found during manual rule collection. To address challenge (iii), we manually collected a set of rules for Dockerfiles from commits to the files in the Gold Set. These rules encapsulate best practices, avoid docker build failures, and improve image size and build latency. We created an analyzer that used these rules, and found that, on average, Dockerfiles on GitHub violated the rules five times more frequently than the Dockerfiles in our Gold Set. We also found that industrial Dockerfiles fared no better than those sourced from GitHub. The learned rules and analyzer in binnacle can be used to aid developers in the IDE when creating Dockerfiles, and in a post-hoc fashion to identify issues in, and to improve, existing Dockerfiles.
机译:随着Devops工具和框架的越来越多,需要增加支持多于代码的工具和技术。对Docker等工具的静态开发人员帮助中的当前最先进的最先进,仅限于浅扫描验证。我们在撰写Devops工件中的开发人员中学习的境界中的三个核心挑战:(i)Devops工件中的嵌套语言,(ii)规则挖掘,(iii)缺乏基于语义规则的分析。为了解决这些挑战,我们介绍了一个工具集,Binnacle,使我们能够摄取900,000 GitHub存储库。专注于Docker,我们提取了大约178,000个独特的Dockerfiles,并确定了由Docker专家编写的金套码头。通过通过我们称之为分析解析的技术,通过超过80%来通过超过80%通过超过80%来解决挑战(i)挑战(i)。为了解决挑战(ii),我们介绍了一种新的规则挖掘技术,能够在我们策划的基准中恢复三分之二的规则。通过这种自动化挖掘,我们能够在手动规则收集期间恢复未找到的16项新规则。为了解决挑战(III),我们手动收集了一组从inuppits到gold集中的文件的Dockerfiles规则。这些规则封装了最佳实践,避免了Docker构建失败,并提高图像大小并构建延迟。我们创建了一个使用这些规则的分析仪,并且平均而言,Github上的Dockerfiles违反了我们的Gold Set中的Dockerfiles频繁地违反了规则。我们还发现,工业码头不如来自Github那些源的更好。 Binnacle中的学习规则和分析器可用于在创建Dockerfiles时帮助IDE中的开发人员,并以HOC时尚识别问题,并改进现有Dockerfiles。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号