面向持续交付和部署的架构实证研究
An Empirical Study of Architecting for Continuous Delivery and Deployment
摘要:
最近,许多软件组织已经采用持续交付和持续部署(CD)实践来更频繁和可靠地开发和交付高质量的软件。虽然越来越多的文献涵盖了CD的不同方面,但对软件架构在CD中的作用以及应用程序应如何(重新)架构以启用和支持CD知之甚少。我们进行了一项混合方法的实证研究,收集数据,通过深入,半结构化的采访,从19个组织的21个行业从业者,和91个专业软件从业者的调查。基于对收集的定性和定量数据进行系统和严格的分析,我们提出了一个概念框架来支持CD的(重新)架构过程。我们提供了关于在整体系统中实践CD的基于证据的见解,并将“小型独立部署单元”的原则描述为整体系统的替代方案。我们的框架通过引入质量属性(例如,恢复力),需要更多的关注和展示的战略(例如,优先考虑操作问题),以设计操作友好的架构。我们讨论了关键的见解(例如,monoliths和CD本质上并不矛盾),并得出对研究和实践的启示。
英文摘要:
Recently, many software organizations have been adopting Continuous Delivery and Continuous Deployment (CD) practices to develop and deliver quality software more frequently and reliably. Whilst an increasing amount of the literature covers different aspects of CD, little is known about the role of software architecture in CD and how an application should be (re-) architected to enable and support CD. We have conducted a mixed-methods empirical study that collected data through in-depth, semi-structured interviews with 21 industrial practitioners from 19 organizations, and a survey of 91 professional software practitioners. Based on a systematic and rigorous analysis of the gathered qualitative and quantitative data, we present a conceptual framework to support the process of (re-) architecting for CD. We provide evidence-based insights about practicing CD within monolithic systems and characterize the principle of "small and independent deployment units" as an alternative to the monoliths. Our framework supplements the architecting process in a CD context through introducing the quality attributes (e.g., resilience) that require more attention and demonstrating the strategies (e.g., prioritizing operations concerns) to design operations-friendly architectures. We discuss the key insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from our study and draw implications for research and practice.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。