Microservices is an architectural style that structures an application as a collection of loosely coupled services, making it easy for developers to build and scale their applications. The microservices architecture approach differs from the traditional monolithic style of treating software development as a single entity. Microservice architecture is becoming more and more adapted. However, microservice systems can be complex due to dependencies between the microservices, resulting in unpredictable performance at a large scale. Simulation is a cheap and fast way to investigate the performance of microservices in more detail. This study aims to build a microservices simulator for evaluating and comparing microservices based applications. The microservices reference architecture is designed. The architecture is used as the basis for a simulator. The simulator implementation uses statistical models to generate the workload. The compelling features added to the simulator include concurrent execution of microservices, configurable request depth, three load-balancing policies and four request execution order policies. This paper contains two experiments to show the simulator usage. The first experiment covers request execution order policies at the microservice instance. The second experiment compares load balancing policies across microservice instances.
翻译:微服务是一种将应用程序构建为松散耦合服务集合的架构风格,便于开发人员构建和扩展应用。与将软件开发视为单一实体的传统单体架构不同,微服务架构正被日益广泛采用。然而,由于微服务之间的依赖关系,微服务系统可能变得复杂,导致大规模下性能难以预测。仿真是一种低成本且快速的方式,用于深入探究微服务的性能表现。本研究旨在构建一个微服务模拟器,以评估和比较基于微服务的应用程序。首先设计了微服务参考架构,该架构被用作模拟器的基础。模拟器实现采用统计模型生成工作负载。其引入的突出功能包括微服务并发执行、可配置的请求深度、三种负载均衡策略及四种请求执行顺序策略。本文通过两个实验展示模拟器的使用:第一个实验探讨微服务实例级别的请求执行顺序策略,第二个实验比较跨微服务实例的负载均衡策略。