编辑: bingyan8 | 2015-08-28 |
69 automation tools from
50 research papers, including Docker, Chef, Jenkins and Puppet. Three levels of problems of automation tools in DevOps is blogs using Grey Literature Review (GRL). Finally, we use ethnographic interview to analyze the opinions and suggestions from three aspects of DevOps practice in China, obtaining two effects of the automation tools: 1) the role of at the beginning, and DevOps practice is considered using automation tools;
2) software organizations need to reduce the dependence on automation tools and form their own culture of DevOps. To solve the problems of DevOps practice, this paper summarizes three suggestions from the interview and gives a paradigm. 南京大学计算机软件新技术国家重点实验室开放课题(KFKT2017A13) Foundation item: National Natural Science Foundation of China (61572251);
State Key Laboratory for Novel Software Technology 2018-12-14;
jos 在线出版时间: 2019-04-29
30 09:19:10, http://kns.cnki.net/kcms/detail/11.2560.TP.20190430.0918.009.html 黄璜 等:自动化工具对中国 DevOps 实践的影响
2 Key words: DevOps;
Automation tools;
Empirical study;
Ethnography;
Interview
1 研究背景 社会经济的不断发展使得用户需求的多样性以及市场竞争的激烈性不断增强,如何快速完成软件的开发 运营从而缩短实现软件的商业价值的时间成为了所有软件企业组织的在应对软件行业发展的挑战时所需要考 虑的重要问题.为了应对这个问题,从本世纪初开始,敏捷原则和精益方法在软件开发实践中不断普及,Scrum 和 极限编程(Extreme Programming, XP)是这其中最典型的两种方法.而随着敏捷原则在开发中的迅速应用,面向 经验性的传统运维与之的矛盾逐渐加深,如何解决矛盾成为了一个新的话题.John A. 和Paul H. 在 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr 的演讲中总结了 Dev 和Ops 的不同的观点和思维方式, 提出以自动化基础设施与共享版本控制为核心的解决方案,以及以信任与尊重为核心的早期 DevOps 文化[1] . 然而 DevOps 发展了近十年,至今仍缺乏对其清晰和统一的认知.Andrej D.等人认为 DevOps 是一种组织方 法,强调在软件开发组织中的团队特别是开发与运维团队内部或者之间的情感共鸣和跨职能协作,以此来达到 快速交付和响应变化[2] .Matej A.等人认为 DevOps 包含了一系列能够缩短软件设计变化的、可控的、可操作的 软件工程策略[3] .Ramtin J.等人也对学术界和业界出现的 DevOps 相关的概念做出过研究[4,5] .因为没有官方定 义,所以每个人都可以根据自己的想法赋予 DevOps 一个定义,这就不断为 DevOps 增加了新概念、新实践和新 工具. 从发展程度上看,Puppet Labs 在
2017 年DevOps 报告 [6] 中指出,高性能的 DevOps 团队在代码生成量 与稳定性方面优于其他团队.由于社会环境对人有巨大的影响[7,8] ,DevOps 实践在中国环境下会与国际范围内 有一定的差异,南京大学在
2018 中国 DevOps 年度报告[9] 中提出了准高性能团队的概念,认为中国在 DevOps 团队建设方面,大部分的团队达不到 Puppet Labs 所定义的高性能团队的标准,而且国内的准高性能团队主要进 行的是主干开发、版本控制、测试方面的实践,更多的使用工具帮助构建开发环境、实现自动化部署和监控软 件系统的健康状况,对于计划、持续集成和持续反馈阶段的工具关注较少. 图1DevOps 知识体系 DevOps 是对传统软件开发实践的一场变革,这其中自动化处于关键位置.因为短周期的高质量交付需要高 度的自动化,而且快速获取反馈的关键也是自动化;