Page 33 - 《软件学报》2021年第5期
P. 33

崔海涛  等:面向微服务架构的开发组织适应性评估框架                                                      1257


                 review  is conducted and  qualitative  data are synthesized  through meta-ethnography.  Finally,  seven aspects of  using microservices
                 architecture to affect an organization are identified, namely, organizational structure, autonomous team, technology/tool, organizational
                 culture, developer, DevOps,  and  communication. At the same time, it is  also found that  although a lot of researches on  microservices
                 emphasizes that in order to fully obtain the expected benefits of microservices, it is necessary to solve organizational problems, currently
                 there are few scholarly literatures published on organizational problems. Hence high quality grey literatures, which may be close to the
                 viewpoint of industry, are also included in this study. Based on the result of systematic literature review and synthesis of qualitative data,
                 four higher-order explanations have come up and an evaluation framework is proposed that helps companies evaluate and improve the
                 adaptability of their development  organizations  to  microservices  architectures.  The proposed  evaluation framework provides the
                 guidelines for development organizations adapt to microservices. Finally, based on the framework, this paper designed and conducted an
                 industrial survey and interviews. The results of both confirmed the effectiveness of the adaptability evaluation framework proposed in this
                 paper.
                 Key words:    microservice; organization; meta-ethnography; systematic literature review; evaluation framework

                    使用单体架构(monolithic architecture)设计的软件系统会随着时间的推移变得庞大且复杂,这使得软件的
                                              [1]
                 可维护性和可伸缩性几乎变得不可能 .当前,宣称有着高可维护性、高可伸缩性和更短发布周期等特点的微服
                 务架构(microservices architecture)受到越来越多的关注和研究.微服务架构将单个应用程序分解为围绕业务功
                                                                                                  [2]
                 能创建的一组小型服务,这些小型服务可以独立开发和部署,并且这些服务通过轻量级的协议进行通信 .有一
                 些公司例如 Amazon、Spotify 和 Netflix 等,已经成功地迁移到微服务架构并从中受益.
                    然而值得注意的是,微服务并不能完美地解决所有由单体架构导致的问题.微服务给软件项目带来好处的
                 同时,也对研究人员和使用微服务架构开发的公司提出了挑战.目前,对微服务产生的挑战的研究大致可以分为
                 技术和组织两个方面,研究人员似乎更倾向于解决技术挑战,如服务发现(service discovery)、服务粒度划分
                 (service granularity division)、安全性(security)等,而聚焦于组织挑战的研究并不广泛,这可能会影响到使用微服
                 务架构的预期收益.在 Conway 的《How do committees invent》一文中,他提出组织的通信结构对其软件架构有
                          [3]
                 直接的影响 .换句话说:当架构风格发生变化时,使用该架构来开发系统的组织也需要相应地进行变化.这个定
                 律的有效性已经被多次证实,并且同样适用于微服务架构                     [4,5] .因此,本文的目标是明确微服务架构的使用给组
                 织带来了哪些影响,这些影响对组织来说是优势还是挑战,公司如何确定其开发组织是否适应微服务以及如何
                 对组织进行调整以提高对微服务架构的适应性.
                    基于上述研究目标,本文设计了以下研究问题.
                    •   研究问题 1:使用微服务架构对开发组织产生了哪些影响?
                    •   研究问题 2:对于使用微服务架构的公司,如何评估和改进开发组织对于微服务架构的适应性?
                    本文的贡献是,通过系统文献综述(systematic literature review)得出了使用微服务架构对组织产生影响的 7
                 个方面:组织结构(organizational structure)、自治团队(autonomous team)、技术/工具(technology/tool)、组织文
                 化(organizational culture)、开发人员(developer)、DevOps 和通信(communication).而且,基于系统文献综述的结
                 果和元-民族志(meta-ethnography)对定性数据(qualitative data)的合成,提出了一个适应性评估框架,以帮助公司
                 判断其开发组织对微服务架构的适应性以及提高适应性.同时,在系统文献综述的执行过程中发现:有关组织方
                 面的研究并不广泛,相关的高质量的中文文献十分匮乏.
                    最后,为了验证所提出的开发组织适应性评估框架,本文进行了一次问卷调查和一次行业访谈.对 65 份有
                 效问卷的分析结果和与 4 位微服务领域专家的访谈结果,都证明了框架的有效性.
                    本文第 1 节介绍背景和相关工作.第 2 节为本文所用研究方法以及具体的研究过程介绍.第 3 节对系统文
                 献综述的结果进行讨论并提出开发组织适应性评估框架.第 4 节对框架的有效性进行验证.第 5 节对本研究的
                 有效性威胁进行分析.第 6 节进行全文总结并介绍下一步工作.
                 1    背景和相关工作

                    作为一种架构风格,微服务代表着相对较小的、可独立部署的、完成单一目的的自治服务.可以使用不同
   28   29   30   31   32   33   34   35   36   37   38