I've submit the proposal for "Improvements to Autoscaling for Apache
Stratos" project at google-melange.

Here is the link

https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/asiria/5629499534213120


Regards
Asiri



On Tue, Mar 18, 2014 at 4:29 AM, Asiri Liyana Arachchi
<[email protected]>wrote:

> Thanks a lot for the elaborated reply.
>
> It helped a lot in getting familiar with Drools by running samples as
> you've pointed. And I've built the code base.
>
> After going through scaling.drl
> (products/autoscaler/modules/distribution/src/main/conf/scaling.drl) it was
> clear that currently stratos uses
> RuleTasksDelegator.getPredictedValueForNextMinute() method to compare, stat
> values against the thresholds.
>
> *Approach on deciding the number of instances that might need to handle
> the load:*
>
> Using existing method on predicting next minute Requests inflight, Load
> average and Memory Consumption.
>
>    - Assumption: current thresholds of those metrics are the optimal
>    values for an instance.
>    - Based on that implementing a simple algorithm to decide, how many
>    number of instances that might need for the next minute using predicted
>    values for those metrics.
>    - That algorithm will be implemented in such a way that it always will
>    keep the instances under thresholds (or near thresholds ) of one or more
>    metrics , with out exceeding them.
>    - Assumption : metrics act inverse or direct proportionally when
>    instances are spawned. (for an ex. load  is equally distributed among all
>    the instances + newly spawned instances. )
>
> *Predict the load according to a schedule defined by end user *
>
> *Does this mean providing a functionality in web UI to define a schedule
> and make it active? *It's not clear to me.
> *Can this be achieved by generating an auto scale policy xml with user
> defined thresholds similar to how it's done currently and making it
> possible to override the *auto-scaling* algorithm in use when it's needed
> (like in a specific time *which is already defined) ? .
>
> Thanks
> Asiri
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Mar 12, 2014 at 8:05 AM, Lahiru Sandaruwan <[email protected]>wrote:
>
>> Hi Asiri,
>>
>> It is a pleasure to see your interest. Sorry for the late reply. I missed
>> the mail.
>>
>> Get the code base and build as a starting point for Stratos.
>>
>> You will not find Drools hard, after running some samples. [1] looks like
>> a good sample. You can just run those in WSO2 BRS. You can use your Java
>> knowledge as we can write Java code in "then" section.
>>
>> AMQP knowledge means you have to understand pub/sub model with topics.
>> Conceptually thats it. In addition, handling subs/pubs using java codes.
>>
>> Great research, find the comments inline.
>>
>>
>> On Tue, Mar 11, 2014 at 11:23 AM, Asiri Liyana Arachchi <
>> [email protected]> wrote:
>>
>>> 1. Improve Auto-scaling to predict the number of instances required in
>>> the next time interval.
>>>
>>> As far as I understood, this project aims at introducing a new auto
>>> scaling strategy apart from the threshold based auto scaling which is
>>> currently in use, to stratos  making it more proactive on auto-scaling.
>>>
>>
>> Correct. So system should scale, understanding the load and hence the
>> number of instances that would require to handle that load.
>>
>> We have 3 types of information about load, and should consider all 3 for
>> our decision.
>>
>>    - Requests inflight(Information about how many requests are waiting
>>    to get the response)
>>    - Load average of cartridge instances running
>>    - Memory consumption of cartridge instances running
>>
>>
>> To do that there are several strategies suggested.
>>>
>>> 1. Kalman Filter
>>> 2. Control theory
>>> 3. Time Series Analysis.
>>> 4. FFT
>>>
>>> As I've gone through these techniques as for now I felt that Kalman
>>> Filter would be the most viable candidate and it can be used to address
>>> this issue effectively.There is an apache API for Kalman filter [1].
>>>
>>
>> We should find an efficient, yet simplest way to get the job done.  We
>> currently use S = u*t + 0.5 *a*t*t prediction(motion) equation. This is one
>> of the equations that Kalman filter used to do prediction. But with this,
>> we have to compare with a threshold to take the decision.
>>
>> We receive second derivative, gradient and average values at a given
>> time. Lets say we time interval we consider is minute. So we can predict
>> the load in the next minute using them.
>> Also we know the number of instances that are running at the moment. The
>> algorithm does not need to be complex. It should be just intelligent enough
>> to find the matching number of instances that should be there in the next
>> minute.
>>
>> [1] https://docs.wso2.org/display/BRS200/Sample+Rule+Definition
>>
>> Thanks.
>>
>>>
>>> But I think selecting an auto scaling algorithm would involve more of
>>> research and testing. Even selecting metrics to predict on will also be
>>> challenging because some of the metrics for an example *load average 
>>> *depends
>>> on autos-scalling causing predictions to deviate from the actual values.
>>>
>> I would appreciate if you can comment on this.
>>>
>>> [1] :
>>> http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/filter/KalmanFilter.html
>>>
>>>
>>>
>>> Thanks
>>> Asiri
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Mar 6, 2014 at 7:38 AM, Udara Liyanage <[email protected]> wrote:
>>>
>>>> Hi Asiri,
>>>>
>>>> Glad to hear your interest on Stratos. I don't think it will take more
>>>> than few days to learn drools and amqp. You will be able to do it within
>>>> given time period.
>>>> Happy to see your project proposal soon.
>>>>
>>>> Touched, not typed. Erroneous words are a feature, not a typo.
>>>> On Mar 6, 2014 7:13 AM, "Asiri Liyana Arachchi" <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm Asiri Liyana Arachchi , third year student studying Computer
>>>>> Science and Engineering in University of Moratuwa , Sri Lanka.
>>>>> I would like to start contributing towards the project $subject .I've
>>>>> gone through the resources about this project including stratos
>>>>> documentation and the code-base.
>>>>>
>>>>> As expected I'm familiur with java , json and SOA . I would like to
>>>>> know how well and in what cases Drools and APQM skills are required. Also
>>>>> would it be feasible to complete the project in the projects limited time,
>>>>> considered that the Drools and APQM are to be learnt along with the total
>>>>> work of the project.
>>>>>
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Asiri
>>>>>
>>>>>
>>>
>>
>>
>> --
>> --
>> 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
>>
>>
>

Reply via email to