Software architecture is critical in succeeding with DevOps. However, designing software architectures that enable and support DevOps (DevOps-driven software architectures) is a challenge for organizations. We assert that one of the essential steps towards characterizing DevOps-driven architectures is to understand architectural design issues raised in DevOps. At the same time, some of the architectural issues that emerge in the DevOps context (and their corresponding architectural practices or tactics) may stem from the context (i.e., domain) and characteristics of software organizations. To this end, we conducted a mixed-methods study that consists of a qualitative case study of two teams in a company during their DevOps transformation and a content analysis of Stack Overflow and DevOps Stack Exchange posts to understand architectural design issues in DevOps. Our study found eight specific and contextual architectural design issues faced by the two teams and classified architectural design issues discussed in Stack Overflow and DevOps Stack Exchange into 11 groups. Our aggregated results reveal that the main characteristics of DevOps-driven architectures are: being loosely coupled and prioritizing deployability, testability, supportability, and modifiability over other quality attributes. Finally, we discuss some concrete implications for research and practice.
翻译:DevOps 驱动的软件结构对于DevOps的工程设计至关重要。然而,设计能够和支持DevOps(DevOps驱动的软件结构)的软件结构对各组织来说是一项挑战。我们断言,设计DevOps驱动的建筑结构特征的一个重要步骤是理解DevOps提出的建筑设计问题。与此同时,DevOps背景下出现的一些建筑问题(及其相应的建筑做法或策略)可能来自软件组织的背景(即域)和特征。为此,我们进行了混合方法研究,其中包括对一家公司的两个团队在DevOps转型期间进行的质量案例研究,以及对Stack Uverctrap 和DevOps Stack Exchanging 职位的内容分析,以了解DevOps 的建筑设计问题。我们的研究发现,两个团队面临的8个具体和背景的建筑设计问题,以及Stack Uvertrap 和 DevOps Stack Exch Exch Exchniversation 11个组。我们汇总的结果表明,DevOps 驱动的建筑的主要特征是:我们对于可部署性、可操作性、可变性、支持性、可及可变性其他的可变性研究。