Hi all, $subject is done. You can get an idea about Autoscaling technologies following my hangout on Autoscaler(Slides [1] and record [2]). [3] also explains this to a great extend.
*What is done now?* - Autoscaler receive summarized values such as average, gradient, and second derivative of stats like, LB requests in flight, Memory consumption and Load average from CEP - Then it will predict the values of the stats for a time duration(can be given from Drools file) - Use famous S = u*t + .5*a*t*t motion equation to predict. This is one of basics of *Kalman filter*. Here the statistics value is mapped to the displacement of an object which is in linear motion with constant acceleration. - Compare predicted values with given threshold to get decisions on scale up and down So in the current approach, as the first step, it is still using a threshold value to get the decision. There are lot of improvements that can be done. *To be done in future* - Decide number of instances to be scale up/ down according to the predicted value(Amazon EC2 has a good model) - Use better prediction approaches such as control theory to predict - Use approaches like time series analysis to detect pattern and be proactive on load - Make Autoscaler works on pre-defined timely patterns (E.g. Yearly pattern to handle New year hikes) - Consider application dependencies while scaling. Please send your thoughts over. Thanks. [1] http://www.slideshare.net/hettiarachchigls1/autoscaler-architecture-of-apache-stratos-400 [2] http://www.youtube.com/watch?v=DyWtCXT8Vqk [3] http://www.sc.ehu.es/ccwbayes/isg/administrator/components/com_jresearch/files/publications/autoscaling.pdf -- -- Lahiru Sandaruwan Software Engineer, Platform Technologies, WSO2 Inc., http://wso2.com lean.enterprise.middleware email: [email protected] cell: (+94) 773 325 954 blog: http://lahiruwrites.blogspot.com/ twitter: http://twitter.com/lahirus linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
