Many a Little Makes a Mickle: On Micro-Optimisation of Containerised Microservices
Keywords:
containerisation, DevOps, micro-optimisation, microservice, Ops-side optimisation, performance engineeringAbstract
Performance optimisation is a key to the success of microservices architecture. Correspondingly, many studies have been conducted on optimising orchestration or composition of multiple microservices within different application contexts. Unlike the existing efforts on the global optimisation, we are concerned with the internal optimisation of individual microservices. Considering the loosely coupled nature of individual microservices, their performance improvements could be independent of each other and thus would naturally bring benefits to their composite applications. Driven by such intuitive ideas together with the de facto tech stack, we have been working on micro-optimisation of containerised microservices at the Operation side (i.e., Ops-side optimisation) against the Development side. Based on both theoretical discussions and empirical investigations, our most recent work delivered three micro-optimisation principles, namely just-enough containerisation, just-for-me configuration, and just-in-time compilation (during containerisation). Our current research outcomes have not only offered new ideas and practical strategies for optimising microservices, but they have also expanded the conceptual scope and the research field of software micro-optimisation.
References
S. Baškarada, V. Nguyen, and A. Koronios, “Architecting microservices: Practical opportunities and challenges,” J. Comput. Inf. Syst., vol. 60, no. 5, pp. 428–436, 2020.
Firdavs, “Quality Attribute Analysis in Microservices Architectures” https://dev.to/firdavsm1901/quality-attribute-analysis-in-microservices-architectures-33li, 13 Apr. 2024.
M. Kumar, J. K. Samriya, K. Dubey, and S. S. Gill, “QoS-aware resource scheduling using whale optimization algorithm for microservice applications,” Softw.: Pract. Exper., vol. 54, no. 4, pp. 546–565, Apr. 2024.
G. Fan, L. Chen, H. Yu, and W. Qi, “Multi-objective optimization of container-based microservice scheduling in edge computing,” Comput. Sci. Inf. Syst., vol. 18, no. 1, pp. 23–42, Jan. 2021.
R. Hyde, “The fallacy of premature optimization,” ACM Ubiquity, vol. 10, no. 3, Feb. 2009, art. no. 1.
Z. Li and J. Galdames-Retamal, “On iot-friendly skewness monitoring for skewness-aware online edge learning,” Appl. Sci.-Basel, vol. 11, no. 16, Aug. 2021, art. no. 7461.
B. Smaalders, “Performance anti-patterns: Want your apps to run faster? here’s what not to do.” ACM Queue, vol. 4, no. 1, pp. 44–50, Feb. 2006.
J. Das, “Making infrastructure as code a better framework with containers,” https://blog.aspiresys.com/infrastructure-managed-services/making-infrastructure-as-code-a-better-framework-with-containers/, 28 Sept. 2022.
M. Lin, J. Xi, W. Bai, and J. Wu, “Ant colony algorithm for multi- objective optimization of container-based microservice scheduling in cloud,” IEEE Access, vol. 7, pp. 83 088–83 100, Jun. 2019.
A. Samanta and J. Tang, “Dyme: Dynamic microservice scheduling in edge computing enabled IoT,” IEEE Internet Things J., vol. 7, no. 7, pp. 6164–6174, Jul. 2020.
V. M. Mostofi, D. Krishnamurthy, and M. Arlitt, “Fast and efficient performance tuning of microservices,” in Proc. CLOUD 2021. Chicago, IL, USA: IEEE Press, 05-10 Sept. 2021, pp. 515–520.
H. Dinh-Tuan, K. Katsarou, and P. Herbke, “Optimizing microservices with hyperparameter optimization,” in Proc. MSN 2021. Exeter, United Kingdom: IEEE Press, 13-15 Dec. 2021, pp. 685–686.
M. Linares-Vásquez, C. Vendome, M. Tufano, and D. Poshyvanyk, “How developers micro-optimize Android apps,” J. Syst. Soft., vol. 130, pp. 1–23, Aug. 2017.
A. Trotman and M. Crane, “Micro- and macro-optimizations of SaaT search,” Softw.: Pract. Exper., vol. 49, no. 5, pp. 942–950, May 2019.
Y. D. Barve, S. Shekhar, A. Chhokra, S. Khare, A. Bhattacharjee, Z. Kang, H. Sun, and A. Gokhale, “FECBench: A holistic interference-aware approach for application performance modeling,” in Proc. IC2E 2019. Prague, Czech Republic: IEEE Press, 24-27 Jun. 2019, pp. 211–221.
D. Masouros, S. Xydis, and D. Soudris, “Rusty: Runtime interference- aware predictive monitoring for modern multi-tenant systems,” IEEE Trans. Parallel Distrib. Syst., vol. 32, no. 1, pp. 184–198, Jan. 2021.
S. Li, H. Zhang, Z. Jia, Z. Li, C. Zhang, J. Li, Q. Gao, J. Ge, and Z. Shan, “A dataflow-driven approach to identifying microservices from monolithic applications,” J. Syst. Softw., vol. 157, Nov. 2019, art. no. 110380.
S. K. Shivakumar, “Web performance monitoring and infrastructure planning,” in Modern Web Performance Optimization: Methods, Tools, and Patterns to Speed Up Digital Platforms. Berkeley, CA: Apress, Nov. 2020, ch. 7, pp. 175–212.
K. Kanellis, R. Alagappan, and S. Venkataraman, “Too many knobs to tune? towards faster database tuning by pre-selecting important knobs,” in Proc. HotStorage 2020. USENIX Association, 13-14 July 2020, art. no. 16.
J. Tobin, “Are docker containers good for your database?” https:// www.percona.com/blog/2016/11/16/is-docker-for-your-database/, 16 Nov. 2016.
S. Shirinbab, L. Lundberg, and E. Casalicchio, “Performance evaluation of containers and virtual machines when running Cassandra workload concurrently,” Concurrency Comput. Pract. Exper., vol. 32, no. 17, Feb. 2020, art. no. e5693.
F. Rabhi, M. Bandara, A. Namvar, and O. Demirors, “Big data analytics has little to do with analytics,” in ASSRI 2015, ASSRI 2017: Service Research and Innovation, ser. Lect. Notes Bus. Inf. Process., A. Beheshti, M. Hashmi, H. Dong, and W. E. Zhang, Eds. Cham: Springer, Mar. 2018, vol. 234, pp. 3–17.
Y. Wu, Y. Zhang, T. Wang, and H. Wang, “Characterizing the occurrence of dockerfile smells in open-source software: An empirical study,” IEEE Access, vol. 8, pp. 34 127–34 139, Feb. 2020.
A. Mouat, “Multi-platform docker builds,” https://www.docker.com/blog/multi-platform-docker-builds/, Mar. 2020.
T. Neumann, “Evolution of a compiling query engine,” Proc. VLDB Endow., vol. 14, no. 12, pp. 3207–3210, Jul. 2021.
A. Rayabhari, “Compilation-based execution engine for a database,” https://www.cs.cornell.edu/courses/cs6120/2020fa/blog/db-compiler/, 18 Dec. 2020.
H. Funke and J. Teubner, “Low-latency compilation of SQL queries to machine code,” Proc. VLDB Endow., vol. 14, no. 12, pp. 2691–2694, Jul. 2021.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2024 Zheng Li
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
License Terms:
Except where otherwise noted, content on this website is lincesed under a Creative Commons Attribution Non-Commercial License (CC BY NC)
Use, distribution and reproduction in any medium, provided the original work is properly cited and is not used for commercial purposes, is permitted.
Copyright to any article published by WiPiEC retained by the author(s). Authors grant WiPiEC Journal a license to publish the article and identify itself as the original publisher. Authors also grant any third party the right to use the article freely as long as it is not used for commercial purposes and its original authors, citation details, and publisher are identified, in accordance with CC BY NC license. Fore more information on license terms, click here.