Rhizoma: A Runtime for Self-deploying, Self-managing Overlays Qin Yin * , Adrian Schüpbach * , Justin Cappos + , Andrew Baumann * , Timothy Roscoe * * Systems Group, Department of Computer Science, ETH Zurich + Dept. of Computer Science and Engineering, University of Washington Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 1
Cloud computing infrastructures are emerging Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 2
Deploying an online service vCloud™ Challenge 1: Selecting appropriate providers and resources Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 3
Service deployed with one provider ACME ACME Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 4
Service gains popularity Challenge 2: Adapting to changes in application load Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 5
Provider outage Challenge 3: Responding to provider outage Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 6
Problem summary � Challenges � Changing resource availability � Changing application requirements Changing pricing policies � � Current solutions Human-in-the-loop � � Separate management console (e.g. Rightscale) Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 7
Alternative approach: bundle management � Management logic integrated with application instances Instances use P2P-style self-organization � � Application “deploys itself” Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 8
Related work � We build on existing work � Early PARC “worm” programs (1982) � Intelligent and mobile agents (1990s) Autonomic computing (2000-) � � Apply the ideas to cloud environments… Span multiple providers and configurations � � Application controls resource allocation Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 9
Example application requirements (PsEPR) � Planetary Scale Event Propagation and Router (PsEPR) A unified reporting and event service for PlanetLab � P.Brett et al., “A Shared Global Event Propagation System to Enable Next Generation Distributed Services”, WORLDS’04. � Requirements 6-10 well-connected nodes � � Lightly-loaded � Geographically distributed � Maximize CPU cycles � Minimize network diameter � Reduce budget and migration cost Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 10
Example application requirements (PsEPR) � 6-10 well-connected nodes � Lightly-loaded Geographically distributed � � Maximize CPU cycles Minimize network diameter � � Reduce budget and migration cost Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 11
Example application requirements (PsEPR) � Constraints � 6-10 well-connected nodes � Lightly-loaded Geographically distributed � � Maximize CPU cycles Minimize network diameter � � Reduce budget and migration cost Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 12
Example application requirements (PsEPR) � Constraints � 6-10 well-connected nodes � Lightly-loaded Geographically distributed � � Objective � Maximize CPU cycles Minimize network diameter � � Reduce budget and migration cost Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 13
Example application requirements (PsEPR) � Constraints � 6-10 well-connected nodes � Lightly-loaded Geographically distributed � � Objective � Maximize CPU cycles Minimize network diameter � � Reduce budget and migration cost � Constraint Optimization Problem Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 14
Idea: Apply constraint logic programming (CLP) � Constraint Programming � Constraints � Objective function = Utility function - Cost function Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 15
Idea: Apply constraint logic programming (CLP) � Constraint Programming � Constraints � Objective function = Utility function - Cost function Utility function: value of a given configuration Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 16
Idea: Apply constraint logic programming (CLP) � Constraint Programming � Constraints � Objective function = Utility function - Cost function Cost function: cost of moving to a new configuration Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 17
Idea: Apply constraint logic programming (CLP) � Constraint Programming � Constraints � Objective function = Utility function - Cost function � Logic Programming � Heterogeneous resource information � Inference rules Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 18
PsEPR requirements in CLP CONSTRAINTS UTILITY FUNCTION node_constraint (Host) :- util_function (NodeList, Util, Params) :- comonnode{hostname: Host}, alive (Host), % Compute utility values for different node attributes light_loaded (Host), fiveminloadUtil (LoadMin, LoadMax, LoadWeight), is_avail (Host), assemble_values (NodeList, fiveminload, LoadList), get_node_attr(Host, cpuspeed, Cpuspeed), util_value ("<", LoadList, LoadMin, LoadMax, LoadUtil), get_node_attr(Host, freecpu, Freecpu), Cpuspeed*Freecpu/100 > 1.5. % Omitting utility values for liveslices and freecpu, the same as above group_constraint (NodeList) :- % Utility of max distance from fixed nodes to the overlay assemble_values (NodeList, location, Locs), findall(P, fixednode(P), Fixed), length(NodeList, Len), minlatency (MinLat), Max is ((Len-1)//4)+1, maxneighUtil (_, NeighMax, NeighWeight), ( for(I, 1, 4), param(Locs, Max) do get_nearest_neighbor_list (Fixed, NodeList, NeighList), count_element (I, Locs, Num), max(NeighList, MaxDist), Num =< Max ). util_value ("<", [MaxDist], MinLat, NeighMax, NeighUtil), path_constraint (LenList, Max) : − % Utility of overlay network diameter max(LenList, Max), diameterUtil (_, DiamMax, DiamWeight), diameterUtil (_, DiameterMax, _), util_value ("<", Params, MinLat, DiamMax, DiamUtil), Max < DiameterMax. % Weighted average of the utilities above COST FUNCTION weighted_avg ([LoadUtil, SliceUtil, CpuUtil, NeighUtil, DiamUtil], [LoadWeight, SliceWeight, CpuWeight, NeighWeight, DiamWeight], Util). migration_cost (Actions, MigrateCost) :- count_element(add, Actions, AddLen), count_element(remove, Actions, RmvLen), Definition of util_value: addCostParam (AddParam), util_value < = avg i ((x max − bound(x i ))/(x max − x min )) removeCostParam (RmvParam), util_value > = avg i ((bound(x i ) − x min )/(x max − x min )) MigrateCost is AddParam*AddLen + bound(x) = max(min(x, x max ), x min ) RmvParam*RmvLen. CONFIGURATIONS fiveminloadUtil (0, 10, 2). liveslicesUtil (0, 10, 1). freecpuUtil (1, 4, 3). maxneighUtil (0, 500, 2). diameterUtil (0, 1000, 2). addCostParam ( 0.012 ). removeCostParam (0). Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 19
Our system: Rhizoma • Application is a self-organizing overlay Rhizoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 20
Our system: Rhizoma • Rhizoma runtime runs alongside application Rhizoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 21
Our system: Rhizoma • One node is elected as coordinator and runs CLP solver Rihzoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 22
Our system: Rhizoma • Sensors gather info from overlay and external service Rihzoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 23
Our system: Rhizoma • CLP solver calculates better deployment Rihzoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 24
Our system: Rhizoma • Actuator acquires/releases VMs, starts/stops application Rihzoma runtime Application interface Constraints Application Actuator Sensors KB Overlay CLP Overlay Solver Comm. Thursday, 03 December 2009 Rhizoma: A Runtime for Self-deploying, Self-managing Overlays 25
Recommend
More recommend