Hi Imesh,Lakmal, Lahiru, Devs, This is intended to formalize the discussion we had on $subject, on behalf of our final year project, " *Workload and Resource Aware, Proactive Auto-scaling for PaaS Sytems* ".
Our project is aimed at adding the following features and improvements to Apache Stratos. 1 - Improved Workload Prediction Currently Stratos autoscaler predict *immediate future load* based on current (in memory) health statistic. We propose to improve the auto-scaling mechanism to *predict workload for larger period of time by persisting and analyzing past statistics.* 2 - Smart resource allocation and deallocation Currently Stratos is not fully aware of all the resources provided by various IaaS and its pricing models. Therefore when scaling up, Stratos always spin-up an instance of same type. On the other hand kill a randomly selected instance when scaling down. We propose to improve this mechanism by selecting resources based on application workload patterns, available resource types and pricing of resources. For example allocating memory optimized instance would be cost effective for some application while some other application require high CPU but less memory. Also scale down mechanism can be improved by introducing features like "smart killing". 3 - Visualizing We propose to implement graph base view of - Predicted vs actual workloads - Optimized vs normal resource usage - Cost prediction We are glad to share our preliminary design concerns with the community and value your feedback and suggestions on our attempt. Thanks -Bhathiya