stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lahiru Sandaruwan <lahi...@wso2.com>
Subject Re: Autoscaler component architecture proposal for 4.0 version
Date Thu, 07 Nov 2013 18:12:42 GMT
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 <lahirus@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

Mime
View raw message