Adaptive Resource Provisioning and Auto-scaling for Cloud Native Software

Cloud-native applications (CNA) are developed to run on the cloud in a way that enables them to fully exploit the cloud computing characteristics. These applications are strongly dependent on automated machinery (i.e. auto-scaling engines, schedulers and cloud resource provisioning software), which enables elasticity and auto-healing. These features improve application availability, resource utilization efficiency and help minimizing SLA violations related to performance. This work provides a generic architecture of software system that enables elasticity of cloud native software by use of automated scaling and resource provisioning. The architecture is based on analysis of previous works presented by practitioners and academia. Also it is a cloud platform and vendor agnostic.

[1]  Vlado Stankovski,et al.  Monitoring self-adaptive applications within edge computing frameworks: A state-of-the-art review , 2018, J. Syst. Softw..

[2]  Wlodzimierz Funika,et al.  Dynamic Business Metrics-driven Resource Provisioning in Cloud Environments , 2011, PPAM.

[3]  Matt W. Mutka,et al.  Classification of Service Discovery in Pervasive Computing Environments , 2003 .

[4]  Claus Pahl,et al.  Workload Patterns for Quality-Driven Dynamic Cloud Service Configuration and Auto-Scaling , 2014, 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing.

[5]  Samuel Kounev,et al.  Elasticity in Cloud Computing: What It Is, and What It Is Not , 2013, ICAC.

[6]  Michael Abd-El-Malek,et al.  Omega: flexible, scalable schedulers for large compute clusters , 2013, EuroSys '13.

[7]  Ram Krishnan,et al.  Time Series Forecasting of Cloud Data Center Workloads for Dynamic Resource Provisioning , 2015, J. Wirel. Mob. Networks Ubiquitous Comput. Dependable Appl..

[8]  Frank Leymann,et al.  Cloud Computing Patterns , 2014, Springer Vienna.

[9]  B. Snaith,et al.  Emergency ultrasound in the prehospital setting: the impact of environment on examination outcomes , 2011, Emergency Medicine Journal.

[10]  Josef Spillner,et al.  Self-managing cloud-native applications: Design, implementation, and experience , 2017, Future Gener. Comput. Syst..

[11]  Hamzeh Khazaei,et al.  Elascale: autoscaling and monitoring as a service , 2017, CASCON.

[12]  Rami Bahsoon,et al.  Self-Adaptive Trade-off Decision Making for Autoscaling Cloud-Based Services , 2016, IEEE Transactions on Services Computing.

[13]  Maryam Amiri,et al.  Survey on prediction models of applications for resources provisioning in cloud , 2017, J. Netw. Comput. Appl..

[14]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[15]  Chung-Horng Lung,et al.  An autonomic prediction suite for cloud resource provisioning , 2017, Journal of Cloud Computing.

[16]  Frank Leymann,et al.  CAP-Oriented Design for Cloud-Native Applications , 2012, CLOSER.

[17]  Nane Kratzke,et al.  Understanding cloud-native applications after 10 years of cloud computing - A systematic mapping study , 2017, J. Syst. Softw..

[18]  Anshul Gandhi,et al.  Using machine learning for black-box autoscaling , 2016, 2016 Seventh International Green and Sustainable Computing Conference (IGSC).

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

[20]  René Peinl,et al.  Docker Cluster Management for the Cloud - Survey Results and Own Solution , 2016, Journal of Grid Computing.

[21]  Ch. Aswani Kumar,et al.  Predictive Cloud resource management framework for enterprise workloads , 2016, J. King Saud Univ. Comput. Inf. Sci..

[22]  José Antonio Lozano,et al.  A Review of Auto-scaling Techniques for Elastic Applications in Cloud Environments , 2014, Journal of Grid Computing.