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

Reply via email to