Modelling and Managing Deployment Costs of Microservice-Based Cloud Applications

We present an approach to model the deployment costs, including compute and IO costs, of Microservice-based applications deployed to a public cloud. Our model, which we dubbed CostHat, supports both, Microservices deployed on traditional IaaS or PaaS clouds, and services that make use of novel cloud programming paradigms, such as AWS Lambda. CostHat is based on a network model, and allows for what-if and cost sensitivity analysis. Further, we have used this model to implement tooling that warns cloud developers directly in the Integrated Development Environment (IDE) about certain classes of potentially costly code changes. We illustrate our work based on a case study, and evaluate the CostHat model using a standalone Python implementation. We show that, once instantiated, cost calculation in CostHat is computationally inexpensive on standard hardware (below 1 ms even for applications consisting of thousand services and endpoints). This enables its use in real-time for developer tooling which continually re-evaluates the costs of an application in the background, while the developer is working on the code.

[1]  Schahram Dustdar,et al.  Cost-Efficient and Application SLA-Aware Client Side Request Scheduling in an Infrastructure-as-a-Service Cloud , 2012, 2012 IEEE Fifth International Conference on Cloud Computing.

[2]  Prashant J. Shenoy,et al.  Dynamic resource allocation for shared data centers using online measurements , 2003, IWQoS'03.

[3]  Kevin Lee,et al.  Empirical prediction models for adaptive resource provisioning in the cloud , 2012, Future Gener. Comput. Syst..

[4]  Albert G. Greenberg,et al.  The cost of a cloud: research problems in data center networks , 2008, CCRV.

[5]  Harald C. Gall,et al.  The making of cloud applications: an empirical study on software development for the cloud , 2014, ESEC/SIGSOFT FSE.

[6]  Bu-Sung Lee,et al.  WPress: An Application-Driven Performance Benchmark for Cloud-Based Virtual Machines , 2014, 2014 IEEE 18th International Enterprise Distributed Object Computing Conference.

[7]  Jarek Nabrzyski,et al.  Cost- and deadline-constrained provisioning for scientific workflow ensembles in IaaS clouds , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[8]  Pooyan Jamshidi,et al.  Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture , 2016, IEEE Software.

[9]  Zhenhuan Gong,et al.  PRESS: PRedictive Elastic ReSource Scaling for cloud systems , 2010, 2010 International Conference on Network and Service Management.

[10]  Eleni Stroulia,et al.  Configuration Decision Making Using Simulation-Generated Data , 2010, ICSOC Workshops.

[11]  Harald C. Gall,et al.  Runtime metric meets developer: building better cloud applications using feedback , 2015, Onward!.

[12]  Donald Beaver,et al.  Dapper, a Large-Scale Distributed Systems Tracing Infrastructure , 2010 .

[13]  References , 1971 .

[14]  Andrés García-García,et al.  SLA-driven dynamic cloud resource management , 2014, Future Gener. Comput. Syst..

[15]  Vasileios Giotsas,et al.  Cloud Instance Management and Resource Prediction for Computation-as-a-Service Platforms , 2016, 2016 IEEE International Conference on Cloud Engineering (IC2E).

[16]  Calton Pu,et al.  Mistral: Dynamically Managing Power, Performance, and Adaptation Cost in Cloud Infrastructures , 2010, 2010 IEEE 30th International Conference on Distributed Computing Systems.

[17]  Antonio Puliafito,et al.  CloudWave: Where adaptive cloud management meets DevOps , 2014, 2014 IEEE Symposium on Computers and Communications (ISCC).

[18]  Marty Humphrey,et al.  Scaling and Scheduling to Maximize Application Performance within Budget Constraints in Cloud Workflows , 2013, 2013 IEEE 27th International Symposium on Parallel and Distributed Processing.

[19]  Schahram Dustdar,et al.  End-to-End Support for QoS-Aware Service Selection, Binding, and Mediation in VRESCo , 2010, IEEE Transactions on Services Computing.

[20]  Jie Li,et al.  Cloud auto-scaling with deadline and budget constraints , 2010, 2010 11th IEEE/ACM International Conference on Grid Computing.

[21]  Prashant J. Shenoy,et al.  Predico: A System for What-if Analysis in Complex Data Center Applications , 2011, Middleware.

[22]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

[23]  José Luis Vázquez-Poletti,et al.  Provisioning data analytic workloads in a cloud , 2013, Future Gener. Comput. Syst..

[24]  Andrew Begel,et al.  Analyze this! 145 questions for data scientists in software engineering , 2013, ICSE.

[25]  Philipp Leitner,et al.  Patterns in the Chaos—A Study of Performance Variation and Predictability in Public IaaS Clouds , 2014, ACM Trans. Internet Techn..

[26]  Philipp Leitner,et al.  All the Services Large and Micro: Revisiting Industrial Practice in Services Computing , 2015, ICSOC Workshops.

[27]  Alex Delis,et al.  Flexible use of cloud resources through profit maximization and price discrimination , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[28]  Rolf Stadler,et al.  Resource Management in Clouds: Survey and Research Challenges , 2015, Journal of Network and Systems Management.

[29]  Rajkumar Buyya,et al.  Article in Press Future Generation Computer Systems ( ) – Future Generation Computer Systems Cloud Computing and Emerging It Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility , 2022 .

[30]  Munindar P. Singh,et al.  Service-Oriented Computing: Key Concepts and Principles , 2005, IEEE Internet Comput..

[31]  Sam Newman,et al.  Building Microservices , 2015 .