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.
- [1] . 2016. Requirements reconciliation for scalable and secure microservice (de)composition. In Proceedings of the 24th IEEE International Requirements Engineering Conference Workshops (REW’16). 68–73.Google Scholar
Cross Ref
- [2] . 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). 55–62.
DOI: Google ScholarCross Ref
- [3] . 1999. Real Options: Managing Strategic Investment in an Uncertain World. Harvard Business School Press.Google Scholar
- [4] . 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 ScholarCross Ref
- [5] . Istio. Retrieved from https://istio.io/.Google Scholar
- [6] . 2017. AWS Lambda Metrics. https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html#monitoring-metrics-types.Google Scholar
- [7] . 2017. What is AWS Lambda? https://aws.amazon.com/lambda/features/.Google Scholar
- [8] . 2000. Design Rules, Volume 1 The Power of Modularity. The MIT Press.Google Scholar
Cross Ref
- [9] . 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. 460–463.Google Scholar
- [10] . 2000. Software economics: A roadmap. In Proceedings of the Conference on the Future of Software Engineering. 319–343.Google Scholar
Digital Library
- [11] . 1994. The goal question metric approach. Encyclopedia of Software Engineering (1994), 528–532.Google Scholar
- [12] . 2005. A value-based approach to predicting system properties from design. In ACM SIGSOFT Software Engineering Notes. 1–5.Google Scholar
- [13] . 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 Scholar
- [14] . 2015. Zhamak Dehghani Real World Microservices: Lessons from the Frontline. Retrieved from https://youtu.be/hsoovFbpAoE.Google Scholar
- [15] . 2018. Micronaut Tutorial: How to Build Microservices with this JVM-based Framework. Retrieved from https://www.infoq.com/articles/micronaut-tutorial-microservices-jvm.Google Scholar
- [16] . 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 Scholar
- [17] . 2002. Keep Your Options Open: Extreme Programming and Economics of Flexibility. Addison Wesley, 503–552.Google Scholar
- [18] . 1999. Quantitative approaches for assessing the value of COTS-centric development. In Proceedings of the 6th International Software Metrics Symposium (Cat. No. PR00403). 279–290.
DOI: Google ScholarCross Ref
- [19] . 2016. Gru: An approach to introduce decentralized autonomic behavior in microservices architectures. In Proceedings of the IEEE International Conference on Autonomic Computing (ICAC’16). 357–362.Google Scholar
Cross Ref
- [20] . Production-Grade Container Orchestration. Retrieved from https://kubernetes.io/.Google Scholar
- [21] . 2004. Strangler Application. Retrieved from https://www.martinfowler.com/bliki/StranglerApplication.html.Google Scholar
- [22] . 2018. From Monolithic Applications to Microservices Guidance on Refactoring Techniques and Result Evaluation. Master’s thesis. Reutlingen University.Google Scholar
- [23] . 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 Scholar
- [24] . 2017. Towards recovering the software architecture of microservice-based systems. In Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW’17). 46–53.Google Scholar
Cross Ref
- [25] . 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. 134–145.Google Scholar
Digital Library
- [26] . 2018. Challenges of microservices architecture: A survey on the state of the practice. In Proceedings of the 10th ZEUS Workshop (ZEUS).Google Scholar
- [27] . What is Microservices Architecture? Retrieved from https://smartbear.com/learn/api-design/what-are-microservices/.Google Scholar
- [28] . 2017. IBM BlueMix Container Service-Monitoring and Logging. https://www.ibm.com/support/pages/overview-ibm-bluemix.Google Scholar
- [29] . Compound Option. Retrieved from https://www.investopedia.com/terms/c/compoundoption.asp.Google Scholar
- [30] . 2000. ATAM: Method for Architecture Evaluation.
Technical Report . Software Engineering Institute, Carnegie Mellon University.Google ScholarCross Ref
- [31] . 2017. Towards a methodology to form microservices from monolithic ones. In Proceedings of the Euro-Par Parallel Processing Workshops. 284–295.Google Scholar
Cross Ref
- [32] . 2016. The ENTICE approach to decompose monolithic services into microservices. In Proceedings of the International Conference on High Performance Computing Simulation (HPCS’16). 591–596.Google Scholar
Cross Ref
- [33] . 2014. ASTRO-CAptEvo. Retrieved from http://das.fbk.eu/astro-captevo.Google Scholar
- [34] . 2017. Workload-based clustering of coherent feature sets in microservice architectures. In Proceedings of the IEEE International Conference on Software Architecture (ICSA’17). 11–20.
DOI: Google ScholarCross Ref
- [35] . 2015. Microservices: Patterns and Applications: Designing Fine-Grained Services by Applying Patterns. Lucas Krause.Google Scholar
- [36] . 2008. The role of service granularity in a successful SOA realization a case study. In Proceedings of the IEEE Congress on Services Part I. 423–430.Google Scholar
Digital Library
- [37] . 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). 165–174.Google Scholar
Digital Library
- [38] . 2016. Towards a technique for extracting microservices from monolithic enterprise systems. Retrieved from http://arxiv.org/abs/1605.03175.Google Scholar
- [39] . 2013. Micro Services: Java, the Unix Way. Retrieved from http://www.infoq.com/presentations/Micro-Services.Google Scholar
- [40] . 2017. Monitoring Logstash. https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html.Google Scholar
- [41] . 2017. Analysis and design of safety-critical, cyber-physical systems. Ada Lett. 36, 2 (2017), 31–38.Google Scholar
Digital Library
- [42] . 2015. Learning-based testing of distributed microservice architectures: Correctness and fault injection. In Software Engineering and Formal Methods. 3–10.Google Scholar
- [43] . 2018. GranMicro: A black-box based approach for optimizing microservices based applications. In From Science to Society. 283–294.Google Scholar
Cross Ref
- [44] . 2017. Sustainable approach for improving microservices-based web application. In Proceedings of the International Conference on Sustainability and Environmental Management: Sustainability Dialogue.Google Scholar
- [45] . 1976. Modern Developments in Financial Management. Praeger.Google Scholar
- [46] . 2015. Building Microservices. O’Reilly Media.Google Scholar
Digital Library
- [47] . 2007. Release It! Design and Deploy Production-Ready Software. Pragmatic Bookshelf.Google Scholar
- [48] . 2007. Quality-Attribute-Based Economic Valuation of Architectural Patterns.
Technical Report . Software Engineering Institute, Carnegie Mellon University.Google ScholarCross Ref
- [49] . 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). 32–38.Google Scholar
- [50] . 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 Scholar
- [51] . 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 Scholar
- [52] . 2018. Microservice Patterns. Manning Publications Company.Google Scholar
- [53] . 2017. Riemann Concepts. https://riemann.io/concepts.html.Google Scholar
- [54] . 2016. GOTO 2016—Chaos & Intuition Engineering at Netflix—Casey Rosenthal. Retrieved from https://www.youtube.com/watch?v=Q4nniyAarbs.Google Scholar
- [55] . 2009. Artificial Intelligence: A Modern Approach. Pearson Education Limited.Google Scholar
Digital Library
- [56] . 2017. Workload-based clustering of coherent feature sets in microservice architectures. In Proceedings of the IEEE International Conference on Software Architecture (ICSA’17). 11–20.Google Scholar
- [57] . 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. 167–176.Google Scholar
Digital Library
- [58] . 2015. Microservices validation: Mjolnirr platform case study. In Proceedings of the 38th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO’15). 235–240.Google Scholar
Cross Ref
- [59] . 2009. Modeling software evolution with game theory. In Proceedings of the International Conference on Software Process: Trustworthy Software Development Processes. 354–365.Google Scholar
Digital Library
- [60] . 1977. The valuation of warrants: Implementing a new approach. J. Financial Econ. 4, 1 (1977), 79–93.Google Scholar
Cross Ref
- [61] . 2016. The Art of Business Value:. IT Revolution Press. Retrieved from https://books.google.co.uk/books?id=gykhDgAAQBAJ.Google Scholar
Digital Library
- [62] . 2007. Adaptation hiding modularity for self-adaptive systems. In Proceedings of the 29th International Conference on Software Engineering. 87–88.Google Scholar
Digital Library
- [63] . 1999. Software design as an investment activity: A real options perspective. Real Options Business Strat,: Appl. Decision Making10 (1999), 215–262.Google Scholar
- [64] . 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. 99–108.Google Scholar
Digital Library
- [65] . 2018. On the definition of microservice bad smells. IEEE Software 35, 3 (2018), 56–62.Google Scholar
- [66] . 1996. Real Options: Managerial Flexibility and Strategy in Resource Allocation. Paperbackshop UK Import.Google Scholar
- [67] . 2015. Microservices without the Servers. Retrieved from https://aws.amazon.com/blogs/compute/microservices-without-the-servers/.Google Scholar
- [68] . 2016. Microservices: Flexible Software Architecture. Pearson Education.Google Scholar
- [69] . 2008. Improving modularity by refactoring code clones: A feasibility study on linux. SIGSOFT Softw. Eng. Notes 33, 2 (2008), 1–5.Google Scholar
Digital Library
Index Terms
Dynamic Evaluation of Microservice Granularity Adaptation
Recommendations
Microservice decomposition and evaluation using dependency graph and silhouette coefficient
SBCARS '21: 15th Brazilian Symposium on Software Components, Architectures, and ReuseThe benefits provided by microservices architecture in some application scenarios are a motivating factor for organizations to migrate their monoliths to this architecture. Extracting microservices from existing monolithic code bases presents a key ...
Towards microservice smells detection
TechDebt '20: Proceedings of the 3rd International Conference on Technical DebtWith the adoption of microservices architectural styles, practitioners started noticing increasing pitfalls in managing and maintaining such architectures, with the risk of introducing architectural debt. Previous studies identified different ...
Microservices Backlog - A Model of Granularity Specification and Microservice Identification
Services Computing – SCC 2020AbstractMicroservices are a software development approach where applications are composed of small independent services that communicate through well-defined APIs. A major challenge of designing these applications is determining the appropriate ...






Comments