Microservices bring various benefits to software systems. They also bring decentralization and lose coupling across self-contained system parts. Since these systems likely evolve in a decentralized manner, they need to be monitored to identify when possibly poorly designed extensions deteriorate the overall system quality. For monolith systems, such tasks have been commonly addressed through static analysis. However, given the decentralization and possible language diversity across microservices, static analysis tools are lacking. On the other hand, there are available tools commonly used by practitioners that offer centralized logging, tracing, and metric collection for microservices. In this paper, we assess the opportunity to combine current dynamic analysis tools with anomaly detection in the form of quality metrics and anti-patterns. We develop a tool prototype that we use to assess a large microservice system benchmark demonstrating the feasibility and potential of such an approach.
翻译:微服务给软件系统带来各种好处,还带来分散化和失去自足系统各部分的连接。由于这些系统可能以分散化的方式演变,因此需要对这些系统进行监测,以确定在设计不当的扩展时,整个系统的质量会恶化。对于单一系统来说,这种任务通常通过静态分析来处理。然而,鉴于分散化和整个微服务中可能的语言多样性,缺乏静态分析工具。另一方面,实践者通常使用一些工具,为微服务提供集中的记录、追踪和标准收集。在本文件中,我们评估了将现有动态分析工具与以质量计量和反模式的形式检测异常现象的机会。我们开发了一个工具原型,用来评估大型微服务系统基准,以显示这种方法的可行性和潜力。