skip to main content
research-article

Dynamic Evaluation of Microservice Granularity Adaptation

Published:04 March 2022Publication History
Skip Abstract Section

Abstract

Microservices have gained acceptance in software industries as an emerging architectural style for autonomic, scalable, and more reliable computing. Among the critical microservice architecture design decisions is when to adapt the granularity of a microservice architecture by merging/decomposing microservices. No existing work investigates the following question: How can we reason about the trade-off between predicted benefits and cost of pursuing microservice granularity adaptation under uncertainty? To address this question, we provide a novel formulation of the decision problem to pursue granularity adaptation as a real options problem. We propose a novel evaluation process for dynamically evaluating granularity adaptation design decisions under uncertainty. Our process is based on a novel combination of real options and the concept of Bayesian surprises. We show the benefits of our evaluation process by comparing it to four representative industrial microservice runtime monitoring tools, which can be used for retrospective evaluation for granularity adaptation decisions. Our comparison shows that our process can supersede and/or complement these tools. We implement a microservice application—Filmflix—using Amazon Web Service Lambda and use this implementation as a case study to show the unique benefit of our process compared to traditional application of real options analysis.

REFERENCES

  1. [1] Ahmadvand M. and Ibrahim A.. 2016. Requirements reconciliation for scalable and secure microservice (de)composition. In Proceedings of the 24th IEEE International Requirements Engineering Conference Workshops (REW’16). 6873.Google ScholarGoogle ScholarCross RefCross Ref
  2. [2] Alzaghoul Esra and Bahsoon Rami. 2013. CloudMTD: Using real options to manage technical debt in cloud-based service selection. In Proceedings of the 4th International Workshop on Managing Technical Debt (MTD’13). 5562. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  3. [3] Amram Martha and Kulatilaka Nalin. 1999. Real Options: Managing Strategic Investment in an Uncertain World. Harvard Business School Press.Google ScholarGoogle Scholar
  4. [4] Asundi Jayatirtha, Kazman Rick, and Klein Mark. 2001. Using Economic Considerations to Choose Among Architecture Design Alternatives. Technical Report CMU/SEI-2001-TR-035. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA. Retrieved from http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=5785.Google ScholarGoogle ScholarCross RefCross Ref
  5. [5] Authors Istio. Istio. Retrieved from https://istio.io/.Google ScholarGoogle Scholar
  6. [6] AWS. 2017. AWS Lambda Metrics. https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html#monitoring-metrics-types.Google ScholarGoogle Scholar
  7. [7] AWS. 2017. What is AWS Lambda? https://aws.amazon.com/lambda/features/.Google ScholarGoogle Scholar
  8. [8] Baldwin Carliss Y. and Clark Kim B.. 2000. Design Rules, Volume 1 The Power of Modularity. The MIT Press.Google ScholarGoogle ScholarCross RefCross Ref
  9. [9] Bencomo Nelly and Belaggoun Amel. 2014. A world full of surprises: Bayesian theory of surprise to quantify degrees of uncertainty. In Proceedings of the 36th International Conference on Software Engineering. 460463.Google ScholarGoogle Scholar
  10. [10] Boehm Barry W. and Sullivan Kevin J.. 2000. Software economics: A roadmap. In Proceedings of the Conference on the Future of Software Engineering. 319343.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. [11] Caldiera Victor R. Basili, Gianluigi, and Rombach H. Dieter. 1994. The goal question metric approach. Encyclopedia of Software Engineering (1994), 528532.Google ScholarGoogle Scholar
  12. [12] Arora Shawn Butler, Mary Shaw, Chris Scaffidi, and Ashish. 2005. A value-based approach to predicting system properties from design. In ACM SIGSOFT Software Engineering Notes. 15.Google ScholarGoogle Scholar
  13. [13] Chriss Neil A.. 1997. The Black-Scholes and Beyond and the Black-Scholes and Beyond Interactive Toolkit: A Step-By-Step Guide to In-Depth Option Pricing Models. McGraw-Hill Trade.Google ScholarGoogle Scholar
  14. [14] Dehghani Zhamak. 2015. Zhamak Dehghani Real World Microservices: Lessons from the Frontline. Retrieved from https://youtu.be/hsoovFbpAoE.Google ScholarGoogle Scholar
  15. [15] Caballero Sergio del Amo. 2018. Micronaut Tutorial: How to Build Microservices with this JVM-based Framework. Retrieved from https://www.infoq.com/articles/micronaut-tutorial-microservices-jvm.Google ScholarGoogle Scholar
  16. [16] Erdogmus Hakan. 2001. Management of license cost uncertainty in software development: A real options approach. In Proceedings of the 5th Annual Conference on Real Options: Theory Meets Practice.Google ScholarGoogle Scholar
  17. [17] Erdogmus Hakan and Favaro John. 2002. Keep Your Options Open: Extreme Programming and Economics of Flexibility. Addison Wesley, 503552.Google ScholarGoogle Scholar
  18. [18] Erdogmus H. and Vandergraaf J.. 1999. Quantitative approaches for assessing the value of COTS-centric development. In Proceedings of the 6th International Software Metrics Symposium (Cat. No. PR00403). 279290. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  19. [19] Florio L. and Nitto E. D.. 2016. Gru: An approach to introduce decentralized autonomic behavior in microservices architectures. In Proceedings of the IEEE International Conference on Autonomic Computing (ICAC’16). 357362.Google ScholarGoogle ScholarCross RefCross Ref
  20. [20] Foundation The Linux. Production-Grade Container Orchestration. Retrieved from https://kubernetes.io/.Google ScholarGoogle Scholar
  21. [21] Fowler Martin. 2004. Strangler Application. Retrieved from https://www.martinfowler.com/bliki/StranglerApplication.html.Google ScholarGoogle Scholar
  22. [22] Fritzsch Jonas. 2018. From Monolithic Applications to Microservices Guidance on Refactoring Techniques and Result Evaluation. Master’s thesis. Reutlingen University.Google ScholarGoogle Scholar
  23. [23] Gamba Andrea. 2003. Real Options valuation: A Monte Carlo approach. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.197.1857&rep=rep1&type=pdf.Google ScholarGoogle Scholar
  24. [24] Granchelli G., Cardarelli M., Francesco P. D., Malavolta I., Iovino L., and Salle A. D.. 2017. Towards recovering the software architecture of microservice-based systems. In Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW’17). 4653.Google ScholarGoogle ScholarCross RefCross Ref
  25. [25] Hassan Sara, Bahsoon Rami, and Bencomo Nelly. 2015. Minimizing nasty surprises with better informed decision-making in self-adaptive systems. In Proceedings of the 10th IEEE/ACM International Symposium on Software Engineering for Adaptive and Self-Managing Systems. 134145.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Herzberg N., Hochreiner C., Kopp O., and Lenhard J.. 2018. Challenges of microservices architecture: A survey on the state of the practice. In Proceedings of the 10th ZEUS Workshop (ZEUS).Google ScholarGoogle Scholar
  27. [27] Huston Tom. What is Microservices Architecture? Retrieved from https://smartbear.com/learn/api-design/what-are-microservices/.Google ScholarGoogle Scholar
  28. [28] IBM. 2017. IBM BlueMix Container Service-Monitoring and Logging. https://www.ibm.com/support/pages/overview-ibm-bluemix.Google ScholarGoogle Scholar
  29. [29] Investopedia. Compound Option. Retrieved from https://www.investopedia.com/terms/c/compoundoption.asp.Google ScholarGoogle Scholar
  30. [30] Kazman Rick, Klein Mark, and Clements Paul. 2000. ATAM: Method for Architecture Evaluation. Technical Report. Software Engineering Institute, Carnegie Mellon University.Google ScholarGoogle ScholarCross RefCross Ref
  31. [31] Kecskemeti Gabor, Kertesz Attila, and Marosi Attila Csaba. 2017. Towards a methodology to form microservices from monolithic ones. In Proceedings of the Euro-Par Parallel Processing Workshops. 284295.Google ScholarGoogle ScholarCross RefCross Ref
  32. [32] Kecskemeti G., Marosi A. C., and Kertesz A.. 2016. The ENTICE approach to decompose monolithic services into microservices. In Proceedings of the International Conference on High Performance Computing Simulation (HPCS’16). 591596.Google ScholarGoogle ScholarCross RefCross Ref
  33. [33] Kessler Fondazione Brundo. 2014. ASTRO-CAptEvo. Retrieved from http://das.fbk.eu/astro-captevo.Google ScholarGoogle Scholar
  34. [34] Klock Sander, Werf Jan Martijn E. M. Van Der, Guelen Jan Pieter, and Jansen Slinger. 2017. Workload-based clustering of coherent feature sets in microservice architectures. In Proceedings of the IEEE International Conference on Software Architecture (ICSA’17). 1120. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  35. [35] Krause L.. 2015. Microservices: Patterns and Applications: Designing Fine-Grained Services by Applying Patterns. Lucas Krause.Google ScholarGoogle Scholar
  36. [36] Kulkarni N. and Dwivedi V.. 2008. The role of service granularity in a successful SOA realization a case study. In Proceedings of the IEEE Congress on Services Part I. 423430.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] Leitner P., Cito J., and Stöckli E.. 2016. Modelling and managing deployment costs of microservice-based cloud applications. In Proceedings of the 9th IEEE/ACM International Conference on Utility and Cloud Computing (UCC’16). 165174.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. [38] Levcovitz Alessandra, Terra Ricardo, and Valente Marco Tulio. 2016. Towards a technique for extracting microservices from monolithic enterprise systems. Retrieved from http://arxiv.org/abs/1605.03175.Google ScholarGoogle Scholar
  39. [39] Lewis James. 2013. Micro Services: Java, the Unix Way. Retrieved from http://www.infoq.com/presentations/Micro-Services.Google ScholarGoogle Scholar
  40. [40] Logstash. 2017. Monitoring Logstash. https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html.Google ScholarGoogle Scholar
  41. [41] McGregor John D., Gluch David P., and Feiler Peter H.. 2017. Analysis and design of safety-critical, cyber-physical systems. Ada Lett. 36, 2 (2017), 3138.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. [42] Meinke Karl and Nycander Peter. 2015. Learning-based testing of distributed microservice architectures: Correctness and fault injection. In Software Engineering and Formal Methods. 310.Google ScholarGoogle Scholar
  43. [43] Mustafa Ola, Gómez Jorge Marx, Hamed Mohamad, and Pargmann Hergen. 2018. GranMicro: A black-box based approach for optimizing microservices based applications. In From Science to Society. 283294.Google ScholarGoogle ScholarCross RefCross Ref
  44. [44] Mustafa Ola and Gómez Jorge Marx. 2017. Sustainable approach for improving microservices-based web application. In Proceedings of the International Conference on Sustainability and Environmental Management: Sustainability Dialogue.Google ScholarGoogle Scholar
  45. [45] Myers S. C.. 1976. Modern Developments in Financial Management. Praeger.Google ScholarGoogle Scholar
  46. [46] Newman Sam. 2015. Building Microservices. O’Reilly Media.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Nygard Michael. 2007. Release It! Design and Deploy Production-Ready Software. Pragmatic Bookshelf.Google ScholarGoogle Scholar
  48. [48] Ozkaya Ipek, Kazman Rick, and Klein Mark. 2007. Quality-Attribute-Based Economic Valuation of Architectural Patterns. Technical Report. Software Engineering Institute, Carnegie Mellon University.Google ScholarGoogle ScholarCross RefCross Ref
  49. [49] Paucar L. H. G. and Bencomo N.. 2016. The reassessment of preferences of non-functional requirements for better informed decision-making in self-adaptation. In Proceedings of the 24th IEEE International Requirements Engineering Conference Workshops (REW’16). 3238.Google ScholarGoogle Scholar
  50. [50] Posta Christian. 2017. The Hardest Part of Microservices: Calling Your Services. Retrieved from http://blog.christianposta.com/microservices/the-hardest-part-of-microservices-calling-your-services/.Google ScholarGoogle Scholar
  51. [51] Probst Katharina and Becker Justin. 2016. Engineering Trade-Offs and The Netflix API Re-Architecture. Retrieved from http://techblog.netflix.com/2016/08/engineering-trade-offs-and-netflix-api.html.Google ScholarGoogle Scholar
  52. [52] Richardson C.. 2018. Microservice Patterns. Manning Publications Company.Google ScholarGoogle Scholar
  53. [53] Riemann. 2017. Riemann Concepts. https://riemann.io/concepts.html.Google ScholarGoogle Scholar
  54. [54] Rosenthal Casey. 2016. GOTO 2016—Chaos & Intuition Engineering at Netflix—Casey Rosenthal. Retrieved from https://www.youtube.com/watch?v=Q4nniyAarbs.Google ScholarGoogle Scholar
  55. [55] Russell Stuart and Norvig Peter. 2009. Artificial Intelligence: A Modern Approach. Pearson Education Limited.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Werf J. P. Guelen S. Klock, J. M. E. M. van der, and Jansen S.. 2017. Workload-based clustering of coherent feature sets in microservice architectures. In Proceedings of the IEEE International Conference on Software Architecture (ICSA’17). 1120.Google ScholarGoogle Scholar
  57. [57] Sangal Neeraj, Jordan Ev, Sinha Vineet, and Jackson Daniel. 2005. Using dependency models to manage complex software architecture. In Proceedings of the 20th Annual Proceedings of the ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. 167176.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Savchenko D. I., Radchenko G. I., and Taipale O.. 2015. Microservices validation: Mjolnirr platform case study. In Proceedings of the 38th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO’15). 235240.Google ScholarGoogle ScholarCross RefCross Ref
  59. [59] Sazawal Vibha and Sudan Nikita. 2009. Modeling software evolution with game theory. In Proceedings of the International Conference on Software Process: Trustworthy Software Development Processes. 354365.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Schwartz Eduardo S.. 1977. The valuation of warrants: Implementing a new approach. J. Financial Econ. 4, 1 (1977), 7993.Google ScholarGoogle ScholarCross RefCross Ref
  61. [61] Schwartz M.. 2016. The Art of Business Value:. IT Revolution Press. Retrieved from https://books.google.co.uk/books?id=gykhDgAAQBAJ.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Song Yuanyuan. 2007. Adaptation hiding modularity for self-adaptive systems. In Proceedings of the 29th International Conference on Software Engineering. 8788.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] Sullivan Kevin J., Chalasani Prasad, Jha Somesh, and Sazawal Vibha. 1999. Software design as an investment activity: A real options perspective. Real Options Business Strat,: Appl. Decision Making10 (1999), 215262.Google ScholarGoogle Scholar
  64. [64] Sullivan Kevin J., Griswold William G., Cai Yuanfang, and Hallen Ben. 2001. The structure and value of modularity in software design. In Proceedings of the 8th European Software Engineering Conference Held Jointly with 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 99108.Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Taibi D. and Lenarduzzi V.. 2018. On the definition of microservice bad smells. IEEE Software 35, 3 (2018), 5662.Google ScholarGoogle Scholar
  66. [66] Trigeorgis L. and Trigeorgis P. F. L.. 1996. Real Options: Managerial Flexibility and Strategy in Resource Allocation. Paperbackshop UK Import.Google ScholarGoogle Scholar
  67. [67] Wagner Tim. 2015. Microservices without the Servers. Retrieved from https://aws.amazon.com/blogs/compute/microservices-without-the-servers/.Google ScholarGoogle Scholar
  68. [68] Wolff E.. 2016. Microservices: Flexible Software Architecture. Pearson Education.Google ScholarGoogle Scholar
  69. [69] Yu Liguo and Ramaswamy Srini. 2008. Improving modularity by refactoring code clones: A feasibility study on linux. SIGSOFT Softw. Eng. Notes 33, 2 (2008), 15.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic Evaluation of Microservice Granularity Adaptation

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Autonomous and Adaptive Systems
            ACM Transactions on Autonomous and Adaptive Systems  Volume 16, Issue 2
            June 2021
            83 pages
            ISSN:1556-4665
            EISSN:1556-4703
            DOI:10.1145/3514173
            Issue’s Table of Contents

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 4 March 2022
            • Accepted: 1 November 2021
            • Revised: 1 June 2021
            • Received: 1 April 2020
            Published in taas Volume 16, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          Full Text

          View this article in Full Text.

          View Full Text

          HTML Format

          View this article in HTML Format .

          View HTML Format
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!