一句话:通过混合方法实证研究揭示容器化持续部署的两类主要工作流及其权衡。
持续部署(CD)可在代码变更后自动交付和部署软件,而容器化(尤其 Docker)正改变其工作流。面对众多容器化 CD 方案,本文开展混合方法研究:先通过问卷调查开发者采用容器化 CD 的动机、具体工作流、需求和障碍,再借助 GitHub 项目与 Docker Hub 的交叉列表进行大规模量化分析以检验假设。研究发现两类突出工作流——基于 Docker Hub 自动构建,或基于持续集成服务——它们各有不同权衡。
Continuous deployment (CD) is a software development practice aimed at automating delivery and deployment of a software product, following any changes to its code. If properly implemented, CD together with other automation in the development process can bring numerous benefits, including higher control and flexibility over release schedules, lower risks, fewer defects, and easier on-boarding of new developers. Here we focus on the (r)evolution in CD workflows caused by containerization, the virtualization technology that enables packaging an application together with all its dependencies and execution environment in a light-weight, self-contained unit, of which Docker has become the de-facto industry standard. There are many available choices for containerized CD workflows, some more appropriate than others for a given project. Owing to cross-listing of GitHub projects on Docker Hub, in this paper we report on a mixed-methods study to shed light on developers' experiences and expectations with containerized CD workflows. Starting from a survey, we explore the motivations, specific workflows, needs, and barriers with containerized CD. We find two prominent workflows, based on the automated builds feature on Docker Hub or continuous integration services, with different trade-offs. We then propose hypotheses and test them in a large-scale quantitative study.
DOI 原文 ·
@inproceedings{paperbot4639,
title = {One size does not fit all: an empirical study of containerized continuous deployment workflows},
author = {Yang Zhang and Bogdan Vasilescu and Huaimin Wang and Vladimir Filkov},
booktitle = {FSE},
year = {2018},
doi = {10.1145/3236024.3236033}
}