Cloud-native Applications are 'distributed, elastic and horizontal-scalable systems composed of (micro)services which isolate states in a minimum of stateful components'. Hence, an important property is to ensure a low coupling and a high cohesion among the (micro)services composing the cloud-native application. Loosely coupled and highly cohesive services allow development teams to work in parallel, reducing the communication overhead between teams. However, despite both practitioners and researchers agree on the importance of this general property, there are no validated metrics to effectively measure or test the actual coupling level between services. In this work, we propose ways to compute and visualize the coupling between microservices, by extending and adapting the concepts behind the computation of the traditional structural coupling. We validate these measures with a case study involving 17 open-source projects and we provide an automatic approach to measure them. The results of this study highlight how these metrics provide to practitioners a quantitative and visual view of services compositions, which can be useful to conceive advanced systems to monitor the evolution of the service.
翻译:云端应用是“分布式、弹性和横向可伸缩的系统,由(微型)服务组成,将国家隔离在最低限度的状态组件中”。 因此,一个重要的属性是确保构成云层应用的(微型)服务之间的低联结和高度凝聚力。 边际和高度凝聚力的服务使发展团队能够平行工作,减少团队之间的通信间接费用。 然而,尽管实践者和研究人员都同意这一一般属性的重要性,但是没有经过验证的衡量尺度来有效衡量或测试服务之间的实际联结水平。 在这项工作中,我们提出了计算和视觉化微观服务之间联动的方法,方法是扩大和调整传统结构联动计算背后的概念。我们用涉及17个开放源项目的一项案例研究来验证这些措施,我们提供了一种自动衡量它们的方法。这项研究的结果突出表明,这些计量尺度如何向从业人员提供对服务构成的定量和直观观点,这些观点对于设想用于监测服务演变的先进系统是有用的。