Constrained Optimization Benchmark for Optimization Modulo Theories: a Cloud Resource Management Problem scu 12 s 1 M˘ ad˘ alina Era¸ R˘ azvan Mete¸ 1West University of Timi¸ soara, Romania 2Institute e-Austria Timi¸ soara, Romania madalina.erascu@e-uvt.ro July 7th, 2019
Outline Motivation Problem Solution Solution Approaches Variables Encoding OMT Tools Experimental Results Discussion and Future Work
Contents Motivation Problem Solution Solution Approaches Variables Encoding OMT Tools Experimental Results Discussion and Future Work
Motivation Problem: finding the best offer for a secure web container Components ◮ two Web Containers (e.g. Apache Tomcat or Nginx) ◮ a Balancer ◮ an IDSServer (Intrusion Detection System) ◮ an IDS Agent
Motivation Problem: finding the best offer for a secure web container Components ◮ two Web Containers (e.g. Apache Tomcat or Nginx) ◮ a Balancer ◮ an IDSServer (Intrusion Detection System) ◮ an IDS Agent Constraints ◮ Conflicts: Balancer, Apache and Nginx cannot be deployed on the same VM ◮ Conflicts: Balancer and IDSServer needs exclusive use of machines ◮ Equal bound: exactly one Balancer has to be instantiated ◮ Lower bound: at least 3 instances of Apache and/or Nginx are required ◮ Require-provides: one IDSServer for 10 IDS Agents ◮ Full deployment: one instance of the IDS Agent on all VMs except for those containing the IDSServer and the Balancer ◮ Hardware constraints: components hardware requirements
Motivation Problem: finding the best offer for a secure web container Components ◮ two Web Containers (e.g. Apache Tomcat or Nginx) ◮ a Balancer ◮ an IDSServer (Intrusion Detection System) ◮ an IDS Agent Constraints ◮ Conflicts: Balancer, Apache and Nginx cannot be deployed on the same VM ◮ Conflicts: Balancer and IDSServer needs exclusive use of machines ◮ Equal bound: exactly one Balancer has to be instantiated ◮ Lower bound: at least 3 instances of Apache and/or Nginx are required ◮ Require-provides: one IDSServer for 10 IDS Agents ◮ Full deployment: one instance of the IDS Agent on all VMs except for those containing the IDSServer and the Balancer ◮ Hardware constraints: components hardware requirements Aim: find a set of virtual machines (VMs) which satisfy the components’ requirements and lead to the minimum cost.
Cloud provider offers Remark: [snapshot from https://aws.amazon.com/ec2/] tens of thousands of price offers corresponding to different configurations and zones
Secure Web Container Use Case Example of a solution ◮ VM 1 (CPU:8, RAM: 15 GB, Storage: 2000 GB, Price: 0.0526 $/hour): Nginx + IDS Agent ◮ VM 2 (CPU:4, RAM: 7.5 GB, Storage: 2000 GB, Price: 0.0283 $/hour): Balancer ◮ VM 3 (CPU:4, RAM: 30 GB, Storage: 2000 GB, Price: 0.0644 $/hour): IDSServer ◮ VM 4 (CPU:4, RAM: 7.5 GB, Storage: 2000 GB, Price: 0.0283 $/hour): Apache + IDS Agent ◮ VM 5 (CPU:4, RAM: 7.5 GB, Storage: 2000 GB, Price: 0.0283 $/hour): Apache + IDS Agent
Other use-cases considered Oryx2 application Wordpress application
Contents Motivation Problem Solution Solution Approaches Variables Encoding OMT Tools Experimental Results Discussion and Future Work
Problem Formalization Input ◮ A set of N components ( { C 1 , ..., C N } ) satisfying: ◮ A set of M VMs ( { V 1 , ..., V M } )
Problem Formalization Input ◮ A set of N components ( { C 1 , ..., C N } ) satisfying: ◮ Hardware constraints ◮ Structural constraints ◮ A set of M VMs ( { V 1 , ..., V M } )
Problem Formalization Input ◮ A set of N components ( { C 1 , ..., C N } ) satisfying: ◮ Hardware constraints ◮ Structural constraints ◮ A set of M VMs ( { V 1 , ..., V M } ) Output ◮ A mapping a of components to VMs � 1 if C i is assigned to V k a ik = 0 if C i is not assigned to V k
Problem Formalization Input ◮ A set of N components ( { C 1 , ..., C N } ) satisfying: ◮ Hardware constraints ◮ Structural constraints ◮ A set of M VMs ( { V 1 , ..., V M } ) Output ◮ A mapping a of components to VMs � 1 if C i is assigned to V k a ik = 0 if C i is not assigned to V k ◮ which: ◮ Satisfies the constraints induced by the interactions between components (structural constraints) ◮ Satisfies the hardware requirements of all components (hardware constraints) ◮ Minimizes the purchasing price
Problem Formalization (cont’d) Default Constraints: � N i =1 a ik ≥ 1 k = 1 , M
Problem Formalization (cont’d) Default Constraints: � N i =1 a ik ≥ 1 k = 1 , M Hardware Constraints ◮ H res – required amount of N ≤ H res prov � a ik H res k = 1 , M , resource (CPU/Memory/Storage) i k i =1 ◮ H res prov – the corresponding characteristic of a VM included in an existing Cloud Provider offer.
Problem Formalization (cont’d) Default Constraints: � N i =1 a ik ≥ 1 k = 1 , M Hardware Constraints ◮ H res – required amount of N ≤ H res prov � a ik H res k = 1 , M , resource (CPU/Memory/Storage) i k i =1 ◮ H res prov – the corresponding characteristic of a VM included in an existing Cloud Provider offer. Structural Constraints ◮ Conflicts: two or more lin : a ik + a jk ≤ 1 , k =1 , M , ∀ ( i , j )s.t. R ij = 1 components cannot be deployed nonlin : a ik a jk ≤ 1 on the same VM
Problem Formalization (cont’d) Default Constraints: � N i =1 a ik ≥ 1 k = 1 , M Hardware Constraints ◮ H res – required amount of N ≤ H res prov � a ik H res k = 1 , M , resource (CPU/Memory/Storage) i k i =1 ◮ H res prov – the corresponding characteristic of a VM included in an existing Cloud Provider offer. Structural Constraints ◮ Conflicts: two or more lin : a ik + a jk ≤ 1 , k =1 , M , ∀ ( i , j )s.t. R ij = 1 components cannot be deployed nonlin : a ik a jk ≤ 1 on the same VM ◮ Co-location: two or more a ik = a jk , k = 1 , M , ∀ ( i , j ) s.t. D ij = 1 components should be deployed on the same VM
Problem Formalization (cont’d) Default Constraints: � N i =1 a ik ≥ 1 k = 1 , M Hardware Constraints ◮ H res – required amount of N ≤ H res prov � a ik H res k = 1 , M , resource (CPU/Memory/Storage) i k i =1 ◮ H res prov – the corresponding characteristic of a VM included in an existing Cloud Provider offer. Structural Constraints ◮ Conflicts: two or more lin : a ik + a jk ≤ 1 , k =1 , M , ∀ ( i , j )s.t. R ij = 1 components cannot be deployed nonlin : a ik a jk ≤ 1 on the same VM ◮ Co-location: two or more a ik = a jk , k = 1 , M , ∀ ( i , j ) s.t. D ij = 1 components should be deployed on the same VM M M M ◮ Exclusive deployment: when from � � � H ( a i 1 k )+ H ( a i 2 k )+ ... + H ( a i q k )=1 a set of q components only one k =1 k =1 k =1 should be deployed in a deployment plan � 0 if u = 0 H ( u ) = 1 if u > 0
Problem Formalization (cont’d) Structural Constraints (cont’d) M M ◮ Require-provides 1: C i requires � � a ik ≤ m ij a jk , n ij , m ij ∈ N . n ij (consumes) at least n ij instances k =1 k =1 of C j and C j can serve (provides) at most m ij instances of C i .
Problem Formalization (cont’d) Structural Constraints (cont’d) M M ◮ Require-provides 1: C i requires � � a ik ≤ m ij a jk , n ij , m ij ∈ N . n ij (consumes) at least n ij instances k =1 k =1 of C j and C j can serve (provides) at most m ij instances of C i . M M ◮ Require-provides 2: for each set of � � 0 < n a ik − a jk ≤ n , n ∈ N n instances of component C j a new k =1 k =1 instance of C i should be deployed
Problem Formalization (cont’d) Structural Constraints (cont’d) M M ◮ Require-provides 1: C i requires � � a ik ≤ m ij a jk , n ij , m ij ∈ N . n ij (consumes) at least n ij instances k =1 k =1 of C j and C j can serve (provides) at most m ij instances of C i . M M ◮ Require-provides 2: for each set of � � 0 < n a ik − a jk ≤ n , n ∈ N n instances of component C j a new k =1 k =1 instance of C i should be deployed M ◮ Full deployment: a component C i � � ( a ik + H ( a jk )) = M must be deployed on all VMs k =1 j , R ij =1 (except on those which would induce conflicts)
Problem Formalization (cont’d) Structural Constraints (cont’d) M M ◮ Require-provides 1: C i requires � � a ik ≤ m ij a jk , n ij , m ij ∈ N . n ij (consumes) at least n ij instances k =1 k =1 of C j and C j can serve (provides) at most m ij instances of C i . M M ◮ Require-provides 2: for each set of � � 0 < n a ik − a jk ≤ n , n ∈ N n instances of component C j a new k =1 k =1 instance of C i should be deployed M ◮ Full deployment: a component C i � � ( a ik + H ( a jk )) = M must be deployed on all VMs k =1 j , R ij =1 (except on those which would induce conflicts) M ◮ Deployment with bounded number � � a ik � op � n , of instances: the number of k =1 instances corresponding to a set of i ∈ C deployed components, C , should � op � ∈ { = , ≤ , ≥} , n ∈ N be equal, greater or less than some values
Problem Formalization (cont’d) Constraints which encode the CPs offers and their link with the components hardware constraints
Problem Formalization (cont’d) Constraints which encode the CPs offers and their link with the components hardware constraints ◮ ON � vmType k = h h =1 where vmType identifies CPs offers ( vmType k ∈ { 1 , . . . , ON } , where ON is the number of CP offers).
Recommend
More recommend