The last few years in the software engineering field has seen a paradigm shift from monolithic application towards architectures in which the application is split in various smaller entities (i.e., microservices) fueled by the improved availability and ease of use of containers technologies such as Docker and Kubernetes. Those microservices communicate between each other using networking technologies in place of function calls in traditional monolithic software. In order to be able to evaluate the potential, the modularity, and the scalability of this new approach, many tools, such as microservices benchmarking, have been developed with that objective in mind. Unfortunately, many of these tend to focus only on the application layer while not taking the underlying networking infrastructure into consideration. In this paper, we introduce and evaluate the performance of a new modular and scalable tool, MicroServices Topology Generator (MSTG), that allows to simulate both the application and networking layers of a microservices architecture. Based on a topology described in YAML format, MSTG generates the configuration file(s) for deploying the architecture on either Docker Composer or Kubernetes. Furthermore, MSTG encompasses telemetry tools, such as Application Performance Monitoring (APM) relying on OpenTelemetry. This paper fully describes MSTG, evaluates its performance, and demonstrates its potential through several use cases.
翻译:过去几年,软件工程领域经历了从单体应用向架构的范式转变,即应用被拆分为多个更小的实体(即微服务),这一转变得益于Docker和Kubernetes等容器技术可用性和易用性的提升。这些微服务通过使用网络技术相互通信,而非传统单体软件中的函数调用。为了评估这种新方法的潜力、模块化程度和可扩展性,许多工具(如微服务基准测试)已经为此目标而开发。不幸的是,其中许多工具往往只关注应用层,而未考虑底层网络基础设施。在本文中,我们介绍并评估了一种新的模块化、可扩展工具——微服务拓扑生成器(MSTG)的性能,该工具能够模拟微服务架构的应用层和网络层。基于YAML格式描述的拓扑,MSTG生成用于在Docker Composer或Kubernetes上部署架构的配置文件。此外,MSTG还包含遥测工具,例如依赖于OpenTelemetry的应用性能监控(APM)。本文全面描述了MSTG,评估了其性能,并通过多个用例展示了其潜力。