Advertisement

An Analysis of Throughput and Latency Behaviours Under Microservice Decomposition

Conference paper
  • 702 Downloads
Part of the Lecture Notes in Computer Science book series (LNCS, volume 12128)

Abstract

Microservice architecture is a widely used architectural style which allows you to design your application using a set of loosely coupled services which can be developed, deployed, and scaled independently. The service decomposition is the act of decomposing (breaking) a coarse-grained service into a set of fine-grained services that collectively perform the functionality of the original service. The service decomposition introduces additional overhead due to inter-service communication of services which impacts the performance. In this paper, we study the effect of service decomposition on the throughput and average latency. We perform an extensive performance analysis using a set of standard microservice benchmarks with different workload characteristics. Our results indicate that when we decompose a service into a set of micro-services the performance of the new application can improve or degrade. The factors which impact the performance behaviours are the number of service calls, the service demand, concurrency (i.e. number of concurrent users) and the decomposition strategy. In addition to the experimental performance evaluation, we analyze the performance impact of service decomposition using queueing theoretic models. We compare the analytical results with experimental results and notice that analytical results match well with the experimental results.

Keywords

Service decomposition Orchestration Choreography Throughput Latency Closed system 

References

  1. 1.
    Amaral, M., Polo, J., Carrera, D., Mohomed, I., Unuvar, M., Steinder, M.: Performance evaluation of microservices architectures using containers. In: 2015 IEEE 14th International Symposium on Network Computing and Applications, pp. 27–34. IEEE (2015)Google Scholar
  2. 2.
    Bondi, A.: Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice, August 2014Google Scholar
  3. 3.
    Didona, D., Quaglia, F., Romano, P., Torre, E.: Enhancing performance prediction robustness by combining analytical modeling and machine learning. In: Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, ICPE 2015, pp. 145–156. ACM, New York (2015).  https://doi.org/10.1145/2668930.2688047
  4. 4.
    Klock, S., Van Der Werf, J.M.E., Guelen, J.P., Jansen, S.: Workload-based clustering of coherent feature sets in microservice architectures. In: 2017 IEEE International Conference on Software Architecture (ICSA), pp. 11–20. IEEE (2017)Google Scholar
  5. 5.
    Kratzke, N.: About microservices, containers and their underestimated impact on network performance (2017)Google Scholar
  6. 6.
    Liu, H.H.: Software Performance and Scalability: A Quantitative Approach. Wiley, Hoboken (2009)CrossRefGoogle Scholar
  7. 7.
    Lloyd, W., Ramesh, S., Chinthalapati, S., Ly, L., Pallickara, S.: Serverless computing: an investigation of factors influencing microservice performance. In: 2018 IEEE International Conference on Cloud Engineering (IC2E), pp. 159–169, April 2018.  https://doi.org/10.1109/IC2E.2018.00039
  8. 8.
    Gribaudo, M., Iacono, M., Manini, D.: Performance evaluation of massively distributed microservices based applications. In: 31st European Conference on Modelling and Simulation, Proceedings of the ECMS, Hungary (2017)Google Scholar
  9. 9.
    Pacheco, V.: Microservice Patterns and Best Practices: Explore Patterns Like CQRS and Event Sourcing to Create Scalable, Maintainable, and Testable Microservices. Packt Publishing (2018). https://books.google.lk/books?id=gfi9tAEACAAJ
  10. 10.
    Romano, P., Leonetti, M.: Poster: selftuning batching in total order broadcast via analytical modelling and reinforcement learning. SIGMETRICS Perform. Eval. Rev. 39, 77 (2011).  https://doi.org/10.1145/2034832.2034861CrossRefGoogle Scholar
  11. 11.
    Rudrabhatla, C.K.: Comparison of event choreography and orchestration techniques in microservice architecture. Int. J. Adv. Comput. Sci. Appl. 9(8), 18–22 (2018)Google Scholar
  12. 12.
    Shadija, D., Rezai, M., Hill, R.: Microservices: granularity vs. performance. In: Companion Proceedings of the10th International Conference on Utility and Cloud Computing, pp. 215–220. ACM (2017)Google Scholar
  13. 13.
    Sriraman, A., Wenisch, T.F.: Micro-suite: a benchmark suite for microservices. In: 2018 IEEE International Symposium on Workload Characterization (IISWC), pp. 1–12, September 2018.  https://doi.org/10.1109/IISWC.2018.8573515
  14. 14.
    Sun, Y., Meng, L., Liu, P., Zhang, Y., Chan, H.: Automatic performance simulation for microservice based applications. In: Li, L., Hasegawa, K., Tanaka, S. (eds.) AsiaSim 2018. CCIS, vol. 946, pp. 85–95. Springer, Singapore (2018).  https://doi.org/10.1007/978-981-13-2853-4_7CrossRefGoogle Scholar
  15. 15.
    Tennage, P., Perera, S., Jayasinghe, M., Jayasena, S.: An analysis of holistic tail latency behaviors of Java microservices. In: 2019 IEEE 21st International Conference on High Performance Computing and Communications, IEEE 17th International Conference on Smart City, IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS), pp. 697–705. IEEE (2019)Google Scholar
  16. 16.
    Ueda, T., Nakaike, T., Ohara, M.: Workload characterization for microservices. In: 2016 IEEE International Symposium on Workload Characterization (IISWC), pp. 1–10. IEEE (2016)Google Scholar
  17. 17.
    Villamizar, M., et al.: Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. In: 2015 10th Computing Colombian Conference (10CCC), pp. 583–590. IEEE (2015)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.WSO2ColomboSri Lanka

Personalised recommendations