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 <[email protected]> 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: [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 > > -- -- 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
