You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Lahiru Sandaruwan <la...@wso2.com> on 2013/10/10 11:47:44 UTC

Autoscaler component architecture proposal for 4.0 version

Hi all,

Here is the plan for autoscaling component implementation. As per the
proposed 4.0 architecture, autoscaling decisions making will be separated
from cloud controller and load balancer and established separately.

Autoscaler will get its input from two topics. One topic is responsible for
passing summarized statistics like cartridge health and LB statistics sent
from Event Processing Engine. Other topic is for receiving Topology
information.

Here is the architecture diagram,


POJOs

Maintain a Java object model(POJOs) for keeping updated topology state and
autoscaling policies. Clusters and its instances will get updated with
every event received. Deployed policies are also kept as POJOs. Serialize
POJOs if required.
Autoscaling Policy

Have a deployable xml model to keep High Availability policy and load
thresholds. Possibly those will be deployed by Dev-ops at start or may be
hot deploy.

<AutoscalePolicy>

<LoadThresholds>

<RequestsInFlight>

<UpperLimit  value="6000"/>

<LowerLimit  value="1000"/>

<IdealGraidient value="0"/>

</RequestsInFlight>

<MemoryConsumption>

<UpperLimit  value="6000"/>

<LowerLimit  value="1000"/>

<IdealGraidient value="0"/>

</MemoryConsumption>

<LoadAverage>

<UpperLimit  value="6000"/>

<LowerLimit  value="1000"/>

<IdealGraidient value="0"/>

</LoadAverage>

</LoadThresholds>

<HAPolicy>

  <IaasAlgo>OneAfterAnother</IaasAlgo>

 <Iaas name=Openstack/>

     <ZoneAlgo>RoundRobin</ZoneAlgo>

     <IaaSMax>10</IaaSMax>

   <IaaSMin>1</IaaSMin>

     <Zone name=X max=5 min=1/>

     <Zone name=Y max=5 min=0/>

</Iaas>

     <Iaas name=EC2/>

           <ZoneAlgo>OneAfterAnother</ZoneAlgo>

     <IaaSMax>7</IaaSMax>

     <IaaSMin>0</IaaSMin>

     <Zone name=A max=5 min=0/>

     <Zone name=B max=2 min=0/>

</Iaas>

</HAPolicy>

</AutoscalePolicy>
Rules Engine

Input the POJOs periodically to rules engine and get the autoscaling
decisions.

Please send your feedback on this,

Thanks.
-- 
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com 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

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Udara Liyanage <ud...@wso2.com>.
+1 for separating them. Then Dev ops can create multiple HA and Throtling +
additional policy types that may come in future, then at the moment of
subscribing users can select the ha,throttling etc policies as he wishes.

Touched, not typed. Erroneous words are a feature, not a typo.

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Melan Nimesh <me...@gmail.com>.
Hi All,

currently we have a deployable xml model to keep high-availability policy
and load thresholds as single xml file, however it would be more flexible
and reusable, if we can have separate deployable xml models for  *HA-Policy
and **Load-Thresholds. *As discussed offline with Lahiru, I am going to
implement two  deployers for  *HAPolicy and **LoadThresholds.*

example configuration as follows

*Load-Thresholds*

<AutoscalePolicy id="economy">
	<LoadThresholds>
		<RequestsInFlight>
			<Average value="6000" />
			<Gradient value="0" />
			<SecondDerivative value="0" />
			<ScaleDownMarginOfGradient  value="1.0" />
			<ScaleDownMarginOfSecondDerivative value="0.2" />
		</RequestsInFlight>
		<MemoryConsumption>
			<Average value="6000" />
			<Gradient value="0" />
			<SecondDerivative value="0" />
			<ScaleDownMarginOfGradient value="1.0" />
			<ScaleDownMarginOfSecondDerivative value="0.2" />
		</MemoryConsumption>
		<LoadAverage>
			<Average value="6000" />
			<Gradient value="0" />
			<SecondDerivative value="0" />
			<ScaleDownMarginOfGradient value="1.0" />
			<ScaleDownMarginOfSecondDerivative value="0.2" />
		</LoadAverage>
	</LoadThresholds></AutoscalePolicy>


HA-Policy

<HAPolicy id="ha-economyPolicy">
	<PartitionGroups>
			<PartitionGroup>
				<PartitionAlgo>OneAfterAnother</PartitionAlgo>
			<Partition id="partition1" >
				<PartitionMax>3</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
			<Partition id="partition2" >
				<PartitionMax>5</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
			<Partition id="partition3">
				<PartitionMax>20</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
		</PartitionGroup>
			<PartitionGroup>
				<PartitionAlgo>RoundRobin</PartitionAlgo>
			<Partition id="partition4" >
				<PartitionMax>3</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
			<Partition id="partition5" >
				<PartitionMax>5</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
			<Partition id="partition6">
				<PartitionMax>20</PartitionMax>
				<PartitionMin>1</PartitionMin>
			</Partition>
		</PartitionGroup>
	</PartitionGroups></HAPolicy>

Please share your suggestions regarding above.

Thanks,
Melan


On Tue, Nov 12, 2013 at 10:12 AM, Lakmal Warusawithana <la...@wso2.com>wrote:

> Partitions are use then DevOps creating a policy. Partitions are not
> visible to end user, but it visible to devOps interface.
>
>
> On Tue, Nov 12, 2013 at 9:58 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Further, how would a partition get selected? User selects when he
>> subscribes to a Cartridge?
>>
>>
>> On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> Also, IMO /s/PartitionMax/max and same for min. Also why are these
>>> starts with upper-case letters? I think we should lower the case of the
>>> starting letter (eg: haPolicy).
>>>
>>>
>>>
>>>
>>> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <nirmal070125@gmail.com
>>> > wrote:
>>>
>>>> Hi Lahiru,
>>>>
>>>> How does partitions and Cartridges relates?
>>>>
>>>>
>>>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Here is a update/change about how we are going to handle Scale up/
>>>>> Scale down algorithms.
>>>>>
>>>>> These algorithms will apply on cloud partitions. Cloud partition can
>>>>> be any scope of a cloud.
>>>>>
>>>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast
>>>>> Region, 1b Zone etc.
>>>>> It is also enough to specify upto IaaS level and further fine grained
>>>>> levels are optional.
>>>>>
>>>>> Partitions are grouped and it should specify an algorithm per group.
>>>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>>>
>>>>> 1. One after another
>>>>>
>>>>> This means it will start scaling up in the next partition after
>>>>> reaching maximum number specified in the current partition.
>>>>>
>>>>> 2. Round robin
>>>>>
>>>>> This option will spawn instances among all the partitions Round robin
>>>>> manner until maximum is reached.
>>>>>
>>>>> See a sample HA policy at[1]
>>>>>
>>>>> Thanks.
>>>>>
>>>>> [1]
>>>>>
>>>>>
>>>>>  <HAPolicy>
>>>>>
>>>>>  <PartitionGroups>
>>>>>
>>>>>   <PartitionGroup>
>>>>>
>>>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>>>
>>>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>>>
>>>>>   <PartitionMax>3</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>>>
>>>>>   <PartitionMax>5</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>>>
>>>>>   <PartitionMax>20</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>> </PartitionGroup>
>>>>>
>>>>>  <PartitionGroup>
>>>>>
>>>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>>>
>>>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>>>
>>>>>   <PartitionMax>3</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>>>
>>>>>   <PartitionMax>5</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>>>
>>>>>   <PartitionMax>20</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>> </PartitionGroup>
>>>>>
>>>>>  </PartitionGroups>
>>>>>
>>>>> </HAPolicy>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Here is the plan for autoscaling component implementation. As per the
>>>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>>>> from cloud controller and load balancer and established separately.
>>>>>>
>>>>>> Autoscaler will get its input from two topics. One topic is
>>>>>> responsible for passing summarized statistics like cartridge health and LB
>>>>>> statistics sent from Event Processing Engine. Other topic is
>>>>>> for receiving Topology information.
>>>>>>
>>>>>> Here is the architecture diagram,
>>>>>>
>>>>>>
>>>>>> POJOs
>>>>>>
>>>>>> Maintain a Java object model(POJOs) for keeping updated topology
>>>>>> state and autoscaling policies. Clusters and its instances will get updated
>>>>>> with every event received. Deployed policies are also kept as POJOs.
>>>>>> Serialize POJOs if required.
>>>>>> Autoscaling Policy
>>>>>>
>>>>>> Have a deployable xml model to keep High Availability policy and load
>>>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>>>> hot deploy.
>>>>>>
>>>>>> <AutoscalePolicy>
>>>>>>
>>>>>> <LoadThresholds>
>>>>>>
>>>>>> <RequestsInFlight>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </RequestsInFlight>
>>>>>>
>>>>>> <MemoryConsumption>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </MemoryConsumption>
>>>>>>
>>>>>> <LoadAverage>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </LoadAverage>
>>>>>>
>>>>>> </LoadThresholds>
>>>>>>
>>>>>> <HAPolicy>
>>>>>>
>>>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>>>
>>>>>>  <Iaas name=Openstack/>
>>>>>>
>>>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>>>
>>>>>>      <IaaSMax>10</IaaSMax>
>>>>>>
>>>>>>    <IaaSMin>1</IaaSMin>
>>>>>>
>>>>>>      <Zone name=X max=5 min=1/>
>>>>>>
>>>>>>      <Zone name=Y max=5 min=0/>
>>>>>>
>>>>>> </Iaas>
>>>>>>
>>>>>>      <Iaas name=EC2/>
>>>>>>
>>>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>>>
>>>>>>      <IaaSMax>7</IaaSMax>
>>>>>>
>>>>>>      <IaaSMin>0</IaaSMin>
>>>>>>
>>>>>>      <Zone name=A max=5 min=0/>
>>>>>>
>>>>>>      <Zone name=B max=2 min=0/>
>>>>>>
>>>>>> </Iaas>
>>>>>>
>>>>>> </HAPolicy>
>>>>>>
>>>>>> </AutoscalePolicy>
>>>>>> Rules Engine
>>>>>>
>>>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>>>> decisions.
>>>>>>
>>>>>> Please send your feedback on this,
>>>>>>
>>>>>> Thanks.
>>>>>> --
>>>>>>  --
>>>>>> Lahiru Sandaruwan
>>>>>> Software Engineer,
>>>>>> Platform Technologies,
>>>>>> WSO2 Inc., http://wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> email: lahirus@wso2.com 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
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Lahiru Sandaruwan
>>>>> Software Engineer,
>>>>> Platform Technologies,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: lahirus@wso2.com 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
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Lakmal Warusawithana
> Software Architect; WSO2 Inc.
> Mobile : +94714289692
> Blog : http://lakmalsview.blogspot.com/
>
>


-- 
Melan Nimesh Jayasingha
Software Engineer;
WSO2 Inc.
PGP: 0x7B42450A

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Lakmal Warusawithana <la...@wso2.com>.
Partitions are use then DevOps creating a policy. Partitions are not
visible to end user, but it visible to devOps interface.


On Tue, Nov 12, 2013 at 9:58 AM, Nirmal Fernando <ni...@gmail.com>wrote:

> Further, how would a partition get selected? User selects when he
> subscribes to a Cartridge?
>
>
> On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Also, IMO /s/PartitionMax/max and same for min. Also why are these
>> starts with upper-case letters? I think we should lower the case of the
>> starting letter (eg: haPolicy).
>>
>>
>>
>>
>> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> Hi Lahiru,
>>>
>>> How does partitions and Cartridges relates?
>>>
>>>
>>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>
>>>> Hi all,
>>>>
>>>> Here is a update/change about how we are going to handle Scale up/
>>>> Scale down algorithms.
>>>>
>>>> These algorithms will apply on cloud partitions. Cloud partition can be
>>>> any scope of a cloud.
>>>>
>>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region,
>>>> 1b Zone etc.
>>>> It is also enough to specify upto IaaS level and further fine grained
>>>> levels are optional.
>>>>
>>>> Partitions are grouped and it should specify an algorithm per group.
>>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>>
>>>> 1. One after another
>>>>
>>>> This means it will start scaling up in the next partition after
>>>> reaching maximum number specified in the current partition.
>>>>
>>>> 2. Round robin
>>>>
>>>> This option will spawn instances among all the partitions Round robin
>>>> manner until maximum is reached.
>>>>
>>>> See a sample HA policy at[1]
>>>>
>>>> Thanks.
>>>>
>>>> [1]
>>>>
>>>>
>>>>  <HAPolicy>
>>>>
>>>>  <PartitionGroups>
>>>>
>>>>   <PartitionGroup>
>>>>
>>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>>
>>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>>
>>>>   <PartitionMax>3</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>>
>>>>   <PartitionMax>5</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>>
>>>>   <PartitionMax>20</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>> </PartitionGroup>
>>>>
>>>>  <PartitionGroup>
>>>>
>>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>>
>>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>>
>>>>   <PartitionMax>3</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>>
>>>>   <PartitionMax>5</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>>
>>>>   <PartitionMax>20</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>> </PartitionGroup>
>>>>
>>>>  </PartitionGroups>
>>>>
>>>> </HAPolicy>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Here is the plan for autoscaling component implementation. As per the
>>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>>> from cloud controller and load balancer and established separately.
>>>>>
>>>>> Autoscaler will get its input from two topics. One topic is
>>>>> responsible for passing summarized statistics like cartridge health and LB
>>>>> statistics sent from Event Processing Engine. Other topic is
>>>>> for receiving Topology information.
>>>>>
>>>>> Here is the architecture diagram,
>>>>>
>>>>>
>>>>> POJOs
>>>>>
>>>>> Maintain a Java object model(POJOs) for keeping updated topology state
>>>>> and autoscaling policies. Clusters and its instances will get updated with
>>>>> every event received. Deployed policies are also kept as POJOs. Serialize
>>>>> POJOs if required.
>>>>> Autoscaling Policy
>>>>>
>>>>> Have a deployable xml model to keep High Availability policy and load
>>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>>> hot deploy.
>>>>>
>>>>> <AutoscalePolicy>
>>>>>
>>>>> <LoadThresholds>
>>>>>
>>>>> <RequestsInFlight>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </RequestsInFlight>
>>>>>
>>>>> <MemoryConsumption>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </MemoryConsumption>
>>>>>
>>>>> <LoadAverage>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </LoadAverage>
>>>>>
>>>>> </LoadThresholds>
>>>>>
>>>>> <HAPolicy>
>>>>>
>>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>>
>>>>>  <Iaas name=Openstack/>
>>>>>
>>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>>
>>>>>      <IaaSMax>10</IaaSMax>
>>>>>
>>>>>    <IaaSMin>1</IaaSMin>
>>>>>
>>>>>      <Zone name=X max=5 min=1/>
>>>>>
>>>>>      <Zone name=Y max=5 min=0/>
>>>>>
>>>>> </Iaas>
>>>>>
>>>>>      <Iaas name=EC2/>
>>>>>
>>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>>
>>>>>      <IaaSMax>7</IaaSMax>
>>>>>
>>>>>      <IaaSMin>0</IaaSMin>
>>>>>
>>>>>      <Zone name=A max=5 min=0/>
>>>>>
>>>>>      <Zone name=B max=2 min=0/>
>>>>>
>>>>> </Iaas>
>>>>>
>>>>> </HAPolicy>
>>>>>
>>>>> </AutoscalePolicy>
>>>>> Rules Engine
>>>>>
>>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>>> decisions.
>>>>>
>>>>> Please send your feedback on this,
>>>>>
>>>>> Thanks.
>>>>> --
>>>>>  --
>>>>> Lahiru Sandaruwan
>>>>> Software Engineer,
>>>>> Platform Technologies,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: lahirus@wso2.com 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
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Lahiru Sandaruwan
>>>> Software Engineer,
>>>> Platform Technologies,
>>>> WSO2 Inc., http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> email: lahirus@wso2.com 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
>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Lakmal Warusawithana
Software Architect; WSO2 Inc.
Mobile : +94714289692
Blog : http://lakmalsview.blogspot.com/

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Nirmal Fernando <ni...@gmail.com>.
Further, how would a partition get selected? User selects when he
subscribes to a Cartridge?


On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:

> Also, IMO /s/PartitionMax/max and same for min. Also why are these starts
> with upper-case letters? I think we should lower the case of the starting
> letter (eg: haPolicy).
>
>
>
>
> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Hi Lahiru,
>>
>> How does partitions and Cartridges relates?
>>
>>
>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>> Hi all,
>>>
>>> Here is a update/change about how we are going to handle Scale up/ Scale
>>> down algorithms.
>>>
>>> These algorithms will apply on cloud partitions. Cloud partition can be
>>> any scope of a cloud.
>>>
>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region,
>>> 1b Zone etc.
>>> It is also enough to specify upto IaaS level and further fine grained
>>> levels are optional.
>>>
>>> Partitions are grouped and it should specify an algorithm per group.
>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>
>>> 1. One after another
>>>
>>> This means it will start scaling up in the next partition after reaching
>>> maximum number specified in the current partition.
>>>
>>> 2. Round robin
>>>
>>> This option will spawn instances among all the partitions Round robin
>>> manner until maximum is reached.
>>>
>>> See a sample HA policy at[1]
>>>
>>> Thanks.
>>>
>>> [1]
>>>
>>>
>>>  <HAPolicy>
>>>
>>>  <PartitionGroups>
>>>
>>>   <PartitionGroup>
>>>
>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>
>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>
>>>   <PartitionMax>3</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>
>>>   <PartitionMax>5</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>
>>>   <PartitionMax>20</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>> </PartitionGroup>
>>>
>>>  <PartitionGroup>
>>>
>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>
>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>
>>>   <PartitionMax>3</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>
>>>   <PartitionMax>5</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>
>>>   <PartitionMax>20</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>> </PartitionGroup>
>>>
>>>  </PartitionGroups>
>>>
>>> </HAPolicy>
>>>
>>>
>>>
>>>
>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>
>>>> Hi all,
>>>>
>>>> Here is the plan for autoscaling component implementation. As per the
>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>> from cloud controller and load balancer and established separately.
>>>>
>>>> Autoscaler will get its input from two topics. One topic is responsible
>>>> for passing summarized statistics like cartridge health and LB statistics
>>>> sent from Event Processing Engine. Other topic is for receiving Topology
>>>> information.
>>>>
>>>> Here is the architecture diagram,
>>>>
>>>>
>>>> POJOs
>>>>
>>>> Maintain a Java object model(POJOs) for keeping updated topology state
>>>> and autoscaling policies. Clusters and its instances will get updated with
>>>> every event received. Deployed policies are also kept as POJOs. Serialize
>>>> POJOs if required.
>>>> Autoscaling Policy
>>>>
>>>> Have a deployable xml model to keep High Availability policy and load
>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>> hot deploy.
>>>>
>>>> <AutoscalePolicy>
>>>>
>>>> <LoadThresholds>
>>>>
>>>> <RequestsInFlight>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </RequestsInFlight>
>>>>
>>>> <MemoryConsumption>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </MemoryConsumption>
>>>>
>>>> <LoadAverage>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </LoadAverage>
>>>>
>>>> </LoadThresholds>
>>>>
>>>> <HAPolicy>
>>>>
>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>
>>>>  <Iaas name=Openstack/>
>>>>
>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>
>>>>      <IaaSMax>10</IaaSMax>
>>>>
>>>>    <IaaSMin>1</IaaSMin>
>>>>
>>>>      <Zone name=X max=5 min=1/>
>>>>
>>>>      <Zone name=Y max=5 min=0/>
>>>>
>>>> </Iaas>
>>>>
>>>>      <Iaas name=EC2/>
>>>>
>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>
>>>>      <IaaSMax>7</IaaSMax>
>>>>
>>>>      <IaaSMin>0</IaaSMin>
>>>>
>>>>      <Zone name=A max=5 min=0/>
>>>>
>>>>      <Zone name=B max=2 min=0/>
>>>>
>>>> </Iaas>
>>>>
>>>> </HAPolicy>
>>>>
>>>> </AutoscalePolicy>
>>>> Rules Engine
>>>>
>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>> decisions.
>>>>
>>>> Please send your feedback on this,
>>>>
>>>> Thanks.
>>>> --
>>>>  --
>>>> Lahiru Sandaruwan
>>>> Software Engineer,
>>>> Platform Technologies,
>>>> WSO2 Inc., http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> email: lahirus@wso2.com 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
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Software Engineer,
>>> Platform Technologies,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahirus@wso2.com 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
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Lahiru Sandaruwan <la...@wso2.com>.
Hi all,

I thought of updating a bit about Rules we use in Autoscaler.
Currently we have three main rules,


   1. Minimum rule

This rule is there to make sure spawning minimum number of instances in
each cloud partition of the policy select when user subscribe. This rule
will be called immediately when a new subscription is received.

But when the autoscaler is started, this rule will be run against all the
clusters available in the topology after full topology is received.

      2.  Scale up rule
      3.  Scale down rule

Above two rules decide whether to scale up, scale down, or do nothing
according to load details that are received through Event Processing
Engine. These rules are run periodically and will use latest information
available to the Autoscaler.

Thanks.


On Tue, Nov 12, 2013 at 10:56 PM, Nirmal Fernando <ni...@gmail.com>wrote:

>
>
>
> On Tue, Nov 12, 2013 at 10:49 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>>
>>
>>
>> On Tue, Nov 12, 2013 at 10:32 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>>
>>>
>>>
>>> On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <nirmal070125@gmail.com
>>> > wrote:
>>>
>>>> Also, IMO /s/PartitionMax/max and same for min.
>>>>
>>>
>>>
>>> +1. 'partition' part is redundant.
>>>
>>>
>>>>  Also why are these starts with upper-case letters? I think we should
>>>> lower the case of the starting letter (eg: haPolicy).
>>>>
>>>
>>> Any reason?
>>>
>>
>> Ahh.. seems this is a good practice. It improves the clarity as well.. So
>> +1.
>>
>
> It's convenient to type too.
>
>>
>>>>
>>>>
>>>>
>>>> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <
>>>> nirmal070125@gmail.com> wrote:
>>>>
>>>>> Hi Lahiru,
>>>>>
>>>>> How does partitions and Cartridges relates?
>>>>>
>>>>>
>>>>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Here is a update/change about how we are going to handle Scale up/
>>>>>> Scale down algorithms.
>>>>>>
>>>>>> These algorithms will apply on cloud partitions. Cloud partition can
>>>>>> be any scope of a cloud.
>>>>>>
>>>>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast
>>>>>> Region, 1b Zone etc.
>>>>>> It is also enough to specify upto IaaS level and further fine grained
>>>>>> levels are optional.
>>>>>>
>>>>>> Partitions are grouped and it should specify an algorithm per group.
>>>>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>>>>
>>>>>> 1. One after another
>>>>>>
>>>>>> This means it will start scaling up in the next partition after
>>>>>> reaching maximum number specified in the current partition.
>>>>>>
>>>>>> 2. Round robin
>>>>>>
>>>>>> This option will spawn instances among all the partitions Round robin
>>>>>> manner until maximum is reached.
>>>>>>
>>>>>> See a sample HA policy at[1]
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> [1]
>>>>>>
>>>>>>
>>>>>>  <HAPolicy>
>>>>>>
>>>>>>  <PartitionGroups>
>>>>>>
>>>>>>   <PartitionGroup>
>>>>>>
>>>>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>>>>
>>>>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>>>>
>>>>>>   <PartitionMax>3</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>>>>
>>>>>>   <PartitionMax>5</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>>>>
>>>>>>   <PartitionMax>20</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>> </PartitionGroup>
>>>>>>
>>>>>>  <PartitionGroup>
>>>>>>
>>>>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>>>>
>>>>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>>>>
>>>>>>   <PartitionMax>3</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>>>>
>>>>>>   <PartitionMax>5</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>>>>
>>>>>>   <PartitionMax>20</PartitionMax>
>>>>>>
>>>>>>   <PartitionMin>1</PartitionMin>
>>>>>>
>>>>>>  </Partition>
>>>>>>
>>>>>> </PartitionGroup>
>>>>>>
>>>>>>  </PartitionGroups>
>>>>>>
>>>>>> </HAPolicy>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> Here is the plan for autoscaling component implementation. As per
>>>>>>> the proposed 4.0 architecture, autoscaling decisions making will be
>>>>>>> separated from cloud controller and load balancer and established
>>>>>>> separately.
>>>>>>>
>>>>>>> Autoscaler will get its input from two topics. One topic is
>>>>>>> responsible for passing summarized statistics like cartridge health and LB
>>>>>>> statistics sent from Event Processing Engine. Other topic is
>>>>>>> for receiving Topology information.
>>>>>>>
>>>>>>> Here is the architecture diagram,
>>>>>>>
>>>>>>>
>>>>>>> POJOs
>>>>>>>
>>>>>>> Maintain a Java object model(POJOs) for keeping updated topology
>>>>>>> state and autoscaling policies. Clusters and its instances will get updated
>>>>>>> with every event received. Deployed policies are also kept as POJOs.
>>>>>>> Serialize POJOs if required.
>>>>>>> Autoscaling Policy
>>>>>>>
>>>>>>> Have a deployable xml model to keep High Availability policy and
>>>>>>> load thresholds. Possibly those will be deployed by Dev-ops at start or may
>>>>>>> be hot deploy.
>>>>>>>
>>>>>>> <AutoscalePolicy>
>>>>>>>
>>>>>>> <LoadThresholds>
>>>>>>>
>>>>>>> <RequestsInFlight>
>>>>>>>
>>>>>>> <UpperLimit  value="6000"/>
>>>>>>>
>>>>>>> <LowerLimit  value="1000"/>
>>>>>>>
>>>>>>> <IdealGraidient value="0"/>
>>>>>>>
>>>>>>> </RequestsInFlight>
>>>>>>>
>>>>>>> <MemoryConsumption>
>>>>>>>
>>>>>>> <UpperLimit  value="6000"/>
>>>>>>>
>>>>>>> <LowerLimit  value="1000"/>
>>>>>>>
>>>>>>> <IdealGraidient value="0"/>
>>>>>>>
>>>>>>> </MemoryConsumption>
>>>>>>>
>>>>>>> <LoadAverage>
>>>>>>>
>>>>>>> <UpperLimit  value="6000"/>
>>>>>>>
>>>>>>> <LowerLimit  value="1000"/>
>>>>>>>
>>>>>>> <IdealGraidient value="0"/>
>>>>>>>
>>>>>>> </LoadAverage>
>>>>>>>
>>>>>>> </LoadThresholds>
>>>>>>>
>>>>>>> <HAPolicy>
>>>>>>>
>>>>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>>>>
>>>>>>>  <Iaas name=Openstack/>
>>>>>>>
>>>>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>>>>
>>>>>>>      <IaaSMax>10</IaaSMax>
>>>>>>>
>>>>>>>    <IaaSMin>1</IaaSMin>
>>>>>>>
>>>>>>>      <Zone name=X max=5 min=1/>
>>>>>>>
>>>>>>>      <Zone name=Y max=5 min=0/>
>>>>>>>
>>>>>>> </Iaas>
>>>>>>>
>>>>>>>      <Iaas name=EC2/>
>>>>>>>
>>>>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>>>>
>>>>>>>      <IaaSMax>7</IaaSMax>
>>>>>>>
>>>>>>>      <IaaSMin>0</IaaSMin>
>>>>>>>
>>>>>>>      <Zone name=A max=5 min=0/>
>>>>>>>
>>>>>>>      <Zone name=B max=2 min=0/>
>>>>>>>
>>>>>>> </Iaas>
>>>>>>>
>>>>>>> </HAPolicy>
>>>>>>>
>>>>>>> </AutoscalePolicy>
>>>>>>> Rules Engine
>>>>>>>
>>>>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>>>>> decisions.
>>>>>>>
>>>>>>> Please send your feedback on this,
>>>>>>>
>>>>>>> Thanks.
>>>>>>> --
>>>>>>>  --
>>>>>>> Lahiru Sandaruwan
>>>>>>> Software Engineer,
>>>>>>> Platform Technologies,
>>>>>>> WSO2 Inc., http://wso2.com
>>>>>>> lean.enterprise.middleware
>>>>>>>
>>>>>>> email: lahirus@wso2.com 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
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> --
>>>>>> Lahiru Sandaruwan
>>>>>> Software Engineer,
>>>>>> Platform Technologies,
>>>>>> WSO2 Inc., http://wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> email: lahirus@wso2.com 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
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best Regards,
>>>>> Nirmal
>>>>>
>>>>> Nirmal Fernando.
>>>>> PPMC Member & Committer of Apache Stratos,
>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>
>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Software Engineer,
>>> Platform Technologies,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahirus@wso2.com 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
>>>
>>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com 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
>>
>>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com 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

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Nirmal Fernando <ni...@gmail.com>.
On Tue, Nov 12, 2013 at 10:49 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:

>
>
>
> On Tue, Nov 12, 2013 at 10:32 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>>
>>
>>
>> On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> Also, IMO /s/PartitionMax/max and same for min.
>>>
>>
>>
>> +1. 'partition' part is redundant.
>>
>>
>>>  Also why are these starts with upper-case letters? I think we should
>>> lower the case of the starting letter (eg: haPolicy).
>>>
>>
>> Any reason?
>>
>
> Ahh.. seems this is a good practice. It improves the clarity as well.. So
> +1.
>

It's convenient to type too.

>
>>>
>>>
>>>
>>> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <nirmal070125@gmail.com
>>> > wrote:
>>>
>>>> Hi Lahiru,
>>>>
>>>> How does partitions and Cartridges relates?
>>>>
>>>>
>>>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Here is a update/change about how we are going to handle Scale up/
>>>>> Scale down algorithms.
>>>>>
>>>>> These algorithms will apply on cloud partitions. Cloud partition can
>>>>> be any scope of a cloud.
>>>>>
>>>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast
>>>>> Region, 1b Zone etc.
>>>>> It is also enough to specify upto IaaS level and further fine grained
>>>>> levels are optional.
>>>>>
>>>>> Partitions are grouped and it should specify an algorithm per group.
>>>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>>>
>>>>> 1. One after another
>>>>>
>>>>> This means it will start scaling up in the next partition after
>>>>> reaching maximum number specified in the current partition.
>>>>>
>>>>> 2. Round robin
>>>>>
>>>>> This option will spawn instances among all the partitions Round robin
>>>>> manner until maximum is reached.
>>>>>
>>>>> See a sample HA policy at[1]
>>>>>
>>>>> Thanks.
>>>>>
>>>>> [1]
>>>>>
>>>>>
>>>>>  <HAPolicy>
>>>>>
>>>>>  <PartitionGroups>
>>>>>
>>>>>   <PartitionGroup>
>>>>>
>>>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>>>
>>>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>>>
>>>>>   <PartitionMax>3</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>>>
>>>>>   <PartitionMax>5</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>>>
>>>>>   <PartitionMax>20</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>> </PartitionGroup>
>>>>>
>>>>>  <PartitionGroup>
>>>>>
>>>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>>>
>>>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>>>
>>>>>   <PartitionMax>3</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>>>
>>>>>   <PartitionMax>5</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>>>
>>>>>   <PartitionMax>20</PartitionMax>
>>>>>
>>>>>   <PartitionMin>1</PartitionMin>
>>>>>
>>>>>  </Partition>
>>>>>
>>>>> </PartitionGroup>
>>>>>
>>>>>  </PartitionGroups>
>>>>>
>>>>> </HAPolicy>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Here is the plan for autoscaling component implementation. As per the
>>>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>>>> from cloud controller and load balancer and established separately.
>>>>>>
>>>>>> Autoscaler will get its input from two topics. One topic is
>>>>>> responsible for passing summarized statistics like cartridge health and LB
>>>>>> statistics sent from Event Processing Engine. Other topic is
>>>>>> for receiving Topology information.
>>>>>>
>>>>>> Here is the architecture diagram,
>>>>>>
>>>>>>
>>>>>> POJOs
>>>>>>
>>>>>> Maintain a Java object model(POJOs) for keeping updated topology
>>>>>> state and autoscaling policies. Clusters and its instances will get updated
>>>>>> with every event received. Deployed policies are also kept as POJOs.
>>>>>> Serialize POJOs if required.
>>>>>> Autoscaling Policy
>>>>>>
>>>>>> Have a deployable xml model to keep High Availability policy and load
>>>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>>>> hot deploy.
>>>>>>
>>>>>> <AutoscalePolicy>
>>>>>>
>>>>>> <LoadThresholds>
>>>>>>
>>>>>> <RequestsInFlight>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </RequestsInFlight>
>>>>>>
>>>>>> <MemoryConsumption>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </MemoryConsumption>
>>>>>>
>>>>>> <LoadAverage>
>>>>>>
>>>>>> <UpperLimit  value="6000"/>
>>>>>>
>>>>>> <LowerLimit  value="1000"/>
>>>>>>
>>>>>> <IdealGraidient value="0"/>
>>>>>>
>>>>>> </LoadAverage>
>>>>>>
>>>>>> </LoadThresholds>
>>>>>>
>>>>>> <HAPolicy>
>>>>>>
>>>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>>>
>>>>>>  <Iaas name=Openstack/>
>>>>>>
>>>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>>>
>>>>>>      <IaaSMax>10</IaaSMax>
>>>>>>
>>>>>>    <IaaSMin>1</IaaSMin>
>>>>>>
>>>>>>      <Zone name=X max=5 min=1/>
>>>>>>
>>>>>>      <Zone name=Y max=5 min=0/>
>>>>>>
>>>>>> </Iaas>
>>>>>>
>>>>>>      <Iaas name=EC2/>
>>>>>>
>>>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>>>
>>>>>>      <IaaSMax>7</IaaSMax>
>>>>>>
>>>>>>      <IaaSMin>0</IaaSMin>
>>>>>>
>>>>>>      <Zone name=A max=5 min=0/>
>>>>>>
>>>>>>      <Zone name=B max=2 min=0/>
>>>>>>
>>>>>> </Iaas>
>>>>>>
>>>>>> </HAPolicy>
>>>>>>
>>>>>> </AutoscalePolicy>
>>>>>> Rules Engine
>>>>>>
>>>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>>>> decisions.
>>>>>>
>>>>>> Please send your feedback on this,
>>>>>>
>>>>>> Thanks.
>>>>>> --
>>>>>>  --
>>>>>> Lahiru Sandaruwan
>>>>>> Software Engineer,
>>>>>> Platform Technologies,
>>>>>> WSO2 Inc., http://wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> email: lahirus@wso2.com 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
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Lahiru Sandaruwan
>>>>> Software Engineer,
>>>>> Platform Technologies,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: lahirus@wso2.com 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
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com 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
>>
>>
>
>
> --
> --
> Lahiru Sandaruwan
> Software Engineer,
> Platform Technologies,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com 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
>
>


-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Lahiru Sandaruwan <la...@wso2.com>.
On Tue, Nov 12, 2013 at 10:32 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:

>
>
>
> On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Also, IMO /s/PartitionMax/max and same for min.
>>
>
>
> +1. 'partition' part is redundant.
>
>
>>  Also why are these starts with upper-case letters? I think we should
>> lower the case of the starting letter (eg: haPolicy).
>>
>
> Any reason?
>

Ahh.. seems this is a good practice. It improves the clarity as well.. So
+1.

>
>>
>>
>>
>> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> Hi Lahiru,
>>>
>>> How does partitions and Cartridges relates?
>>>
>>>
>>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>
>>>> Hi all,
>>>>
>>>> Here is a update/change about how we are going to handle Scale up/
>>>> Scale down algorithms.
>>>>
>>>> These algorithms will apply on cloud partitions. Cloud partition can be
>>>> any scope of a cloud.
>>>>
>>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region,
>>>> 1b Zone etc.
>>>> It is also enough to specify upto IaaS level and further fine grained
>>>> levels are optional.
>>>>
>>>> Partitions are grouped and it should specify an algorithm per group.
>>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>>
>>>> 1. One after another
>>>>
>>>> This means it will start scaling up in the next partition after
>>>> reaching maximum number specified in the current partition.
>>>>
>>>> 2. Round robin
>>>>
>>>> This option will spawn instances among all the partitions Round robin
>>>> manner until maximum is reached.
>>>>
>>>> See a sample HA policy at[1]
>>>>
>>>> Thanks.
>>>>
>>>> [1]
>>>>
>>>>
>>>>  <HAPolicy>
>>>>
>>>>  <PartitionGroups>
>>>>
>>>>   <PartitionGroup>
>>>>
>>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>>
>>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>>
>>>>   <PartitionMax>3</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>>
>>>>   <PartitionMax>5</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>>
>>>>   <PartitionMax>20</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>> </PartitionGroup>
>>>>
>>>>  <PartitionGroup>
>>>>
>>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>>
>>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>>
>>>>   <PartitionMax>3</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>>
>>>>   <PartitionMax>5</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>>
>>>>   <PartitionMax>20</PartitionMax>
>>>>
>>>>   <PartitionMin>1</PartitionMin>
>>>>
>>>>  </Partition>
>>>>
>>>> </PartitionGroup>
>>>>
>>>>  </PartitionGroups>
>>>>
>>>> </HAPolicy>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Here is the plan for autoscaling component implementation. As per the
>>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>>> from cloud controller and load balancer and established separately.
>>>>>
>>>>> Autoscaler will get its input from two topics. One topic is
>>>>> responsible for passing summarized statistics like cartridge health and LB
>>>>> statistics sent from Event Processing Engine. Other topic is
>>>>> for receiving Topology information.
>>>>>
>>>>> Here is the architecture diagram,
>>>>>
>>>>>
>>>>> POJOs
>>>>>
>>>>> Maintain a Java object model(POJOs) for keeping updated topology state
>>>>> and autoscaling policies. Clusters and its instances will get updated with
>>>>> every event received. Deployed policies are also kept as POJOs. Serialize
>>>>> POJOs if required.
>>>>> Autoscaling Policy
>>>>>
>>>>> Have a deployable xml model to keep High Availability policy and load
>>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>>> hot deploy.
>>>>>
>>>>> <AutoscalePolicy>
>>>>>
>>>>> <LoadThresholds>
>>>>>
>>>>> <RequestsInFlight>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </RequestsInFlight>
>>>>>
>>>>> <MemoryConsumption>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </MemoryConsumption>
>>>>>
>>>>> <LoadAverage>
>>>>>
>>>>> <UpperLimit  value="6000"/>
>>>>>
>>>>> <LowerLimit  value="1000"/>
>>>>>
>>>>> <IdealGraidient value="0"/>
>>>>>
>>>>> </LoadAverage>
>>>>>
>>>>> </LoadThresholds>
>>>>>
>>>>> <HAPolicy>
>>>>>
>>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>>
>>>>>  <Iaas name=Openstack/>
>>>>>
>>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>>
>>>>>      <IaaSMax>10</IaaSMax>
>>>>>
>>>>>    <IaaSMin>1</IaaSMin>
>>>>>
>>>>>      <Zone name=X max=5 min=1/>
>>>>>
>>>>>      <Zone name=Y max=5 min=0/>
>>>>>
>>>>> </Iaas>
>>>>>
>>>>>      <Iaas name=EC2/>
>>>>>
>>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>>
>>>>>      <IaaSMax>7</IaaSMax>
>>>>>
>>>>>      <IaaSMin>0</IaaSMin>
>>>>>
>>>>>      <Zone name=A max=5 min=0/>
>>>>>
>>>>>      <Zone name=B max=2 min=0/>
>>>>>
>>>>> </Iaas>
>>>>>
>>>>> </HAPolicy>
>>>>>
>>>>> </AutoscalePolicy>
>>>>> Rules Engine
>>>>>
>>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>>> decisions.
>>>>>
>>>>> Please send your feedback on this,
>>>>>
>>>>> Thanks.
>>>>> --
>>>>>  --
>>>>> Lahiru Sandaruwan
>>>>> Software Engineer,
>>>>> Platform Technologies,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: lahirus@wso2.com 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
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Lahiru Sandaruwan
>>>> Software Engineer,
>>>> Platform Technologies,
>>>> WSO2 Inc., http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> email: lahirus@wso2.com 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
>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> --
> Lahiru Sandaruwan
> Software Engineer,
> Platform Technologies,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com 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
>
>


-- 
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com 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

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Lahiru Sandaruwan <la...@wso2.com>.
On Tue, Nov 12, 2013 at 9:38 AM, Nirmal Fernando <ni...@gmail.com>wrote:

> Also, IMO /s/PartitionMax/max and same for min.
>


+1. 'partition' part is redundant.


> Also why are these starts with upper-case letters? I think we should lower
> the case of the starting letter (eg: haPolicy).
>

Any reason?

>
>
>
>
> On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Hi Lahiru,
>>
>> How does partitions and Cartridges relates?
>>
>>
>> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>> Hi all,
>>>
>>> Here is a update/change about how we are going to handle Scale up/ Scale
>>> down algorithms.
>>>
>>> These algorithms will apply on cloud partitions. Cloud partition can be
>>> any scope of a cloud.
>>>
>>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region,
>>> 1b Zone etc.
>>> It is also enough to specify upto IaaS level and further fine grained
>>> levels are optional.
>>>
>>> Partitions are grouped and it should specify an algorithm per group.
>>> There are two algorithm that we are going to ship with Stratos 4.0.
>>>
>>> 1. One after another
>>>
>>> This means it will start scaling up in the next partition after reaching
>>> maximum number specified in the current partition.
>>>
>>> 2. Round robin
>>>
>>> This option will spawn instances among all the partitions Round robin
>>> manner until maximum is reached.
>>>
>>> See a sample HA policy at[1]
>>>
>>> Thanks.
>>>
>>> [1]
>>>
>>>
>>>  <HAPolicy>
>>>
>>>  <PartitionGroups>
>>>
>>>   <PartitionGroup>
>>>
>>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>>
>>>  <Partition id="partition1" iaas="EC2" zone="A">
>>>
>>>   <PartitionMax>3</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition2" iaas="EC2" zone="B">
>>>
>>>   <PartitionMax>5</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition3" iaas="EC2" zone="B">
>>>
>>>   <PartitionMax>20</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>> </PartitionGroup>
>>>
>>>  <PartitionGroup>
>>>
>>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>>
>>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>>
>>>   <PartitionMax>3</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>>
>>>   <PartitionMax>5</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>>
>>>   <PartitionMax>20</PartitionMax>
>>>
>>>   <PartitionMin>1</PartitionMin>
>>>
>>>  </Partition>
>>>
>>> </PartitionGroup>
>>>
>>>  </PartitionGroups>
>>>
>>> </HAPolicy>
>>>
>>>
>>>
>>>
>>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>
>>>> Hi all,
>>>>
>>>> Here is the plan for autoscaling component implementation. As per the
>>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>>> from cloud controller and load balancer and established separately.
>>>>
>>>> Autoscaler will get its input from two topics. One topic is responsible
>>>> for passing summarized statistics like cartridge health and LB statistics
>>>> sent from Event Processing Engine. Other topic is for receiving Topology
>>>> information.
>>>>
>>>> Here is the architecture diagram,
>>>>
>>>>
>>>> POJOs
>>>>
>>>> Maintain a Java object model(POJOs) for keeping updated topology state
>>>> and autoscaling policies. Clusters and its instances will get updated with
>>>> every event received. Deployed policies are also kept as POJOs. Serialize
>>>> POJOs if required.
>>>> Autoscaling Policy
>>>>
>>>> Have a deployable xml model to keep High Availability policy and load
>>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>>> hot deploy.
>>>>
>>>> <AutoscalePolicy>
>>>>
>>>> <LoadThresholds>
>>>>
>>>> <RequestsInFlight>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </RequestsInFlight>
>>>>
>>>> <MemoryConsumption>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </MemoryConsumption>
>>>>
>>>> <LoadAverage>
>>>>
>>>> <UpperLimit  value="6000"/>
>>>>
>>>> <LowerLimit  value="1000"/>
>>>>
>>>> <IdealGraidient value="0"/>
>>>>
>>>> </LoadAverage>
>>>>
>>>> </LoadThresholds>
>>>>
>>>> <HAPolicy>
>>>>
>>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>>
>>>>  <Iaas name=Openstack/>
>>>>
>>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>>
>>>>      <IaaSMax>10</IaaSMax>
>>>>
>>>>    <IaaSMin>1</IaaSMin>
>>>>
>>>>      <Zone name=X max=5 min=1/>
>>>>
>>>>      <Zone name=Y max=5 min=0/>
>>>>
>>>> </Iaas>
>>>>
>>>>      <Iaas name=EC2/>
>>>>
>>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>>
>>>>      <IaaSMax>7</IaaSMax>
>>>>
>>>>      <IaaSMin>0</IaaSMin>
>>>>
>>>>      <Zone name=A max=5 min=0/>
>>>>
>>>>      <Zone name=B max=2 min=0/>
>>>>
>>>> </Iaas>
>>>>
>>>> </HAPolicy>
>>>>
>>>> </AutoscalePolicy>
>>>> Rules Engine
>>>>
>>>> Input the POJOs periodically to rules engine and get the autoscaling
>>>> decisions.
>>>>
>>>> Please send your feedback on this,
>>>>
>>>> Thanks.
>>>> --
>>>>  --
>>>> Lahiru Sandaruwan
>>>> Software Engineer,
>>>> Platform Technologies,
>>>> WSO2 Inc., http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> email: lahirus@wso2.com 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
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Software Engineer,
>>> Platform Technologies,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahirus@wso2.com 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
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com 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

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Nirmal Fernando <ni...@gmail.com>.
Also, IMO /s/PartitionMax/max and same for min. Also why are these starts
with upper-case letters? I think we should lower the case of the starting
letter (eg: haPolicy).




On Tue, Nov 12, 2013 at 9:32 AM, Nirmal Fernando <ni...@gmail.com>wrote:

> Hi Lahiru,
>
> How does partitions and Cartridges relates?
>
>
> On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>> Hi all,
>>
>> Here is a update/change about how we are going to handle Scale up/ Scale
>> down algorithms.
>>
>> These algorithms will apply on cloud partitions. Cloud partition can be
>> any scope of a cloud.
>>
>> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region,
>> 1b Zone etc.
>> It is also enough to specify upto IaaS level and further fine grained
>> levels are optional.
>>
>> Partitions are grouped and it should specify an algorithm per group.
>> There are two algorithm that we are going to ship with Stratos 4.0.
>>
>> 1. One after another
>>
>> This means it will start scaling up in the next partition after reaching
>> maximum number specified in the current partition.
>>
>> 2. Round robin
>>
>> This option will spawn instances among all the partitions Round robin
>> manner until maximum is reached.
>>
>> See a sample HA policy at[1]
>>
>> Thanks.
>>
>> [1]
>>
>>
>>  <HAPolicy>
>>
>>  <PartitionGroups>
>>
>>   <PartitionGroup>
>>
>>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>>
>>  <Partition id="partition1" iaas="EC2" zone="A">
>>
>>   <PartitionMax>3</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>>  <Partition id="partition2" iaas="EC2" zone="B">
>>
>>   <PartitionMax>5</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>>  <Partition id="partition3" iaas="EC2" zone="B">
>>
>>   <PartitionMax>20</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>> </PartitionGroup>
>>
>>  <PartitionGroup>
>>
>>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>>
>>  <Partition id="partition4" iaas="Openstack" zone="A">
>>
>>   <PartitionMax>3</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>>  <Partition id="partition5" iaas="Openstack" zone="B">
>>
>>   <PartitionMax>5</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>>  <Partition id="partition6" iaas="Openstack" zone="B">
>>
>>   <PartitionMax>20</PartitionMax>
>>
>>   <PartitionMin>1</PartitionMin>
>>
>>  </Partition>
>>
>> </PartitionGroup>
>>
>>  </PartitionGroups>
>>
>> </HAPolicy>
>>
>>
>>
>>
>> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>> Hi all,
>>>
>>> Here is the plan for autoscaling component implementation. As per the
>>> proposed 4.0 architecture, autoscaling decisions making will be separated
>>> from cloud controller and load balancer and established separately.
>>>
>>> Autoscaler will get its input from two topics. One topic is responsible
>>> for passing summarized statistics like cartridge health and LB statistics
>>> sent from Event Processing Engine. Other topic is for receiving Topology
>>> information.
>>>
>>> Here is the architecture diagram,
>>>
>>>
>>> POJOs
>>>
>>> Maintain a Java object model(POJOs) for keeping updated topology state
>>> and autoscaling policies. Clusters and its instances will get updated with
>>> every event received. Deployed policies are also kept as POJOs. Serialize
>>> POJOs if required.
>>> Autoscaling Policy
>>>
>>> Have a deployable xml model to keep High Availability policy and load
>>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>>> hot deploy.
>>>
>>> <AutoscalePolicy>
>>>
>>> <LoadThresholds>
>>>
>>> <RequestsInFlight>
>>>
>>> <UpperLimit  value="6000"/>
>>>
>>> <LowerLimit  value="1000"/>
>>>
>>> <IdealGraidient value="0"/>
>>>
>>> </RequestsInFlight>
>>>
>>> <MemoryConsumption>
>>>
>>> <UpperLimit  value="6000"/>
>>>
>>> <LowerLimit  value="1000"/>
>>>
>>> <IdealGraidient value="0"/>
>>>
>>> </MemoryConsumption>
>>>
>>> <LoadAverage>
>>>
>>> <UpperLimit  value="6000"/>
>>>
>>> <LowerLimit  value="1000"/>
>>>
>>> <IdealGraidient value="0"/>
>>>
>>> </LoadAverage>
>>>
>>> </LoadThresholds>
>>>
>>> <HAPolicy>
>>>
>>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>>
>>>  <Iaas name=Openstack/>
>>>
>>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>>
>>>      <IaaSMax>10</IaaSMax>
>>>
>>>    <IaaSMin>1</IaaSMin>
>>>
>>>      <Zone name=X max=5 min=1/>
>>>
>>>      <Zone name=Y max=5 min=0/>
>>>
>>> </Iaas>
>>>
>>>      <Iaas name=EC2/>
>>>
>>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>>
>>>      <IaaSMax>7</IaaSMax>
>>>
>>>      <IaaSMin>0</IaaSMin>
>>>
>>>      <Zone name=A max=5 min=0/>
>>>
>>>      <Zone name=B max=2 min=0/>
>>>
>>> </Iaas>
>>>
>>> </HAPolicy>
>>>
>>> </AutoscalePolicy>
>>> Rules Engine
>>>
>>> Input the POJOs periodically to rules engine and get the autoscaling
>>> decisions.
>>>
>>> Please send your feedback on this,
>>>
>>> Thanks.
>>> --
>>>  --
>>> Lahiru Sandaruwan
>>> Software Engineer,
>>> Platform Technologies,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahirus@wso2.com 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
>>>
>>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com 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
>>
>>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Nirmal Fernando <ni...@gmail.com>.
Hi Lahiru,

How does partitions and Cartridges relates?


On Thu, Nov 7, 2013 at 11:42 PM, Lahiru Sandaruwan <la...@wso2.com> wrote:

> Hi all,
>
> Here is a update/change about how we are going to handle Scale up/ Scale
> down algorithms.
>
> These algorithms will apply on cloud partitions. Cloud partition can be
> any scope of a cloud.
>
> E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region, 1b
> Zone etc.
> It is also enough to specify upto IaaS level and further fine grained
> levels are optional.
>
> Partitions are grouped and it should specify an algorithm per group.
> There are two algorithm that we are going to ship with Stratos 4.0.
>
> 1. One after another
>
> This means it will start scaling up in the next partition after reaching
> maximum number specified in the current partition.
>
> 2. Round robin
>
> This option will spawn instances among all the partitions Round robin
> manner until maximum is reached.
>
> See a sample HA policy at[1]
>
> Thanks.
>
> [1]
>
>
>  <HAPolicy>
>
>  <PartitionGroups>
>
>   <PartitionGroup>
>
>  <PartitionAlgo>OneAfterAnother</PartitionAlgo>
>
>  <Partition id="partition1" iaas="EC2" zone="A">
>
>   <PartitionMax>3</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
>  <Partition id="partition2" iaas="EC2" zone="B">
>
>   <PartitionMax>5</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
>  <Partition id="partition3" iaas="EC2" zone="B">
>
>   <PartitionMax>20</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
> </PartitionGroup>
>
>  <PartitionGroup>
>
>   <PartitionAlgo>RoundRobin</PartitionAlgo>
>
>  <Partition id="partition4" iaas="Openstack" zone="A">
>
>   <PartitionMax>3</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
>  <Partition id="partition5" iaas="Openstack" zone="B">
>
>   <PartitionMax>5</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
>  <Partition id="partition6" iaas="Openstack" zone="B">
>
>   <PartitionMax>20</PartitionMax>
>
>   <PartitionMin>1</PartitionMin>
>
>  </Partition>
>
> </PartitionGroup>
>
>  </PartitionGroups>
>
> </HAPolicy>
>
>
>
>
> On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>> Hi all,
>>
>> Here is the plan for autoscaling component implementation. As per the
>> proposed 4.0 architecture, autoscaling decisions making will be separated
>> from cloud controller and load balancer and established separately.
>>
>> Autoscaler will get its input from two topics. One topic is responsible
>> for passing summarized statistics like cartridge health and LB statistics
>> sent from Event Processing Engine. Other topic is for receiving Topology
>> information.
>>
>> Here is the architecture diagram,
>>
>>
>> POJOs
>>
>> Maintain a Java object model(POJOs) for keeping updated topology state
>> and autoscaling policies. Clusters and its instances will get updated with
>> every event received. Deployed policies are also kept as POJOs. Serialize
>> POJOs if required.
>> Autoscaling Policy
>>
>> Have a deployable xml model to keep High Availability policy and load
>> thresholds. Possibly those will be deployed by Dev-ops at start or may be
>> hot deploy.
>>
>> <AutoscalePolicy>
>>
>> <LoadThresholds>
>>
>> <RequestsInFlight>
>>
>> <UpperLimit  value="6000"/>
>>
>> <LowerLimit  value="1000"/>
>>
>> <IdealGraidient value="0"/>
>>
>> </RequestsInFlight>
>>
>> <MemoryConsumption>
>>
>> <UpperLimit  value="6000"/>
>>
>> <LowerLimit  value="1000"/>
>>
>> <IdealGraidient value="0"/>
>>
>> </MemoryConsumption>
>>
>> <LoadAverage>
>>
>> <UpperLimit  value="6000"/>
>>
>> <LowerLimit  value="1000"/>
>>
>> <IdealGraidient value="0"/>
>>
>> </LoadAverage>
>>
>> </LoadThresholds>
>>
>> <HAPolicy>
>>
>>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>>
>>  <Iaas name=Openstack/>
>>
>>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>>
>>      <IaaSMax>10</IaaSMax>
>>
>>    <IaaSMin>1</IaaSMin>
>>
>>      <Zone name=X max=5 min=1/>
>>
>>      <Zone name=Y max=5 min=0/>
>>
>> </Iaas>
>>
>>      <Iaas name=EC2/>
>>
>>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>>
>>      <IaaSMax>7</IaaSMax>
>>
>>      <IaaSMin>0</IaaSMin>
>>
>>      <Zone name=A max=5 min=0/>
>>
>>      <Zone name=B max=2 min=0/>
>>
>> </Iaas>
>>
>> </HAPolicy>
>>
>> </AutoscalePolicy>
>> Rules Engine
>>
>> Input the POJOs periodically to rules engine and get the autoscaling
>> decisions.
>>
>> Please send your feedback on this,
>>
>> Thanks.
>> --
>>  --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com 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
>>
>>
>
>
> --
> --
> Lahiru Sandaruwan
> Software Engineer,
> Platform Technologies,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com 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
>
>


-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: Autoscaler component architecture proposal for 4.0 version

Posted by Lahiru Sandaruwan <la...@wso2.com>.
Hi all,

Here is a update/change about how we are going to handle Scale up/ Scale
down algorithms.

These algorithms will apply on cloud partitions. Cloud partition can be any
scope of a cloud.

E.g. A cloud partition can be belong to EC2 Iaas, ap-southeast Region, 1b
Zone etc.
It is also enough to specify upto IaaS level and further fine grained
levels are optional.

Partitions are grouped and it should specify an algorithm per group.
There are two algorithm that we are going to ship with Stratos 4.0.

1. One after another

This means it will start scaling up in the next partition after reaching
maximum number specified in the current partition.

2. Round robin

This option will spawn instances among all the partitions Round robin
manner until maximum is reached.

See a sample HA policy at[1]

Thanks.

[1]


 <HAPolicy>

 <PartitionGroups>

  <PartitionGroup>

 <PartitionAlgo>OneAfterAnother</PartitionAlgo>

 <Partition id="partition1" iaas="EC2" zone="A">

  <PartitionMax>3</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

 <Partition id="partition2" iaas="EC2" zone="B">

  <PartitionMax>5</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

 <Partition id="partition3" iaas="EC2" zone="B">

  <PartitionMax>20</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

</PartitionGroup>

 <PartitionGroup>

  <PartitionAlgo>RoundRobin</PartitionAlgo>

 <Partition id="partition4" iaas="Openstack" zone="A">

  <PartitionMax>3</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

 <Partition id="partition5" iaas="Openstack" zone="B">

  <PartitionMax>5</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

 <Partition id="partition6" iaas="Openstack" zone="B">

  <PartitionMax>20</PartitionMax>

  <PartitionMin>1</PartitionMin>

 </Partition>

</PartitionGroup>

 </PartitionGroups>

</HAPolicy>




On Thu, Oct 10, 2013 at 3:17 PM, Lahiru Sandaruwan <la...@wso2.com> wrote:

> Hi all,
>
> Here is the plan for autoscaling component implementation. As per the
> proposed 4.0 architecture, autoscaling decisions making will be separated
> from cloud controller and load balancer and established separately.
>
> Autoscaler will get its input from two topics. One topic is responsible
> for passing summarized statistics like cartridge health and LB statistics
> sent from Event Processing Engine. Other topic is for receiving Topology
> information.
>
> Here is the architecture diagram,
>
>
> POJOs
>
> Maintain a Java object model(POJOs) for keeping updated topology state and
> autoscaling policies. Clusters and its instances will get updated with
> every event received. Deployed policies are also kept as POJOs. Serialize
> POJOs if required.
> Autoscaling Policy
>
> Have a deployable xml model to keep High Availability policy and load
> thresholds. Possibly those will be deployed by Dev-ops at start or may be
> hot deploy.
>
> <AutoscalePolicy>
>
> <LoadThresholds>
>
> <RequestsInFlight>
>
> <UpperLimit  value="6000"/>
>
> <LowerLimit  value="1000"/>
>
> <IdealGraidient value="0"/>
>
> </RequestsInFlight>
>
> <MemoryConsumption>
>
> <UpperLimit  value="6000"/>
>
> <LowerLimit  value="1000"/>
>
> <IdealGraidient value="0"/>
>
> </MemoryConsumption>
>
> <LoadAverage>
>
> <UpperLimit  value="6000"/>
>
> <LowerLimit  value="1000"/>
>
> <IdealGraidient value="0"/>
>
> </LoadAverage>
>
> </LoadThresholds>
>
> <HAPolicy>
>
>   <IaasAlgo>OneAfterAnother</IaasAlgo>
>
>  <Iaas name=Openstack/>
>
>      <ZoneAlgo>RoundRobin</ZoneAlgo>
>
>      <IaaSMax>10</IaaSMax>
>
>    <IaaSMin>1</IaaSMin>
>
>      <Zone name=X max=5 min=1/>
>
>      <Zone name=Y max=5 min=0/>
>
> </Iaas>
>
>      <Iaas name=EC2/>
>
>            <ZoneAlgo>OneAfterAnother</ZoneAlgo>
>
>      <IaaSMax>7</IaaSMax>
>
>      <IaaSMin>0</IaaSMin>
>
>      <Zone name=A max=5 min=0/>
>
>      <Zone name=B max=2 min=0/>
>
> </Iaas>
>
> </HAPolicy>
>
> </AutoscalePolicy>
> Rules Engine
>
> Input the POJOs periodically to rules engine and get the autoscaling
> decisions.
>
> Please send your feedback on this,
>
> Thanks.
> --
>  --
> Lahiru Sandaruwan
> Software Engineer,
> Platform Technologies,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com 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
>
>


-- 
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com 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