Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf ·...

Preview:

Citation preview

Envisage: Engineering Virtualized ServicesD1.3.1 — Modeling of Deployment (Initial Report)

Presenter: !Behrooz Nobakht���bnobakht@sdl.com

Envisage Year 2 Project Review Brussels, Dec. 1, 2015

http://www.envisage-project.eu

Deliverable responsibility: ���BOL (Gianluigi Zavattaro) ���

gianluigi.zavattaro@unibo.it

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

T1.3 – from the DoW

2

This task formalizes deployment models for virtualized architectures and addresses objective O1.3

O1.3: Formal models of virtualized architectures !

These models will be described in terms of combinations of several features: the amount of processing or memory resources allocated to abstract virtual machines, best and worst execution times, the choice of application-level scheduling policies for client requests, and the distribution over different abstract virtual machines

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

T1.3 – from the DoW

This task formalizes deployment models for virtualized architectures and addresses objective O1.3

O1.3: Formal models of virtualized architectures !

These models will be described in terms of combinations of several features: the amount of processing or memory resources allocated to abstract virtual machines, best and worst execution times, the choice of application-level scheduling policies for client requests, and the distribution over different abstract virtual machines

3

Done in collaboration with T1.2 ���(see D1.2.1 “modeling of resources”)

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

T1.3 – from the DoW

This task formalizes deployment models for virtualized architectures and addresses objective O1.3

O1.3: Formal models of virtualized architectures !

These models will be described in terms of combinations of several features: the amount of processing or memory resources allocated to abstract virtual machines, best and worst execution times, the choice of application-level scheduling policies for client requests, and the distribution over different abstract virtual machines

4

This deliverable ���(see the remainder of this presentation)

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

T1.3 – from the DoW

This task formalizes deployment models for virtualized architectures and addresses objective O1.3

O1.3: Formal models of virtualized architectures !

These models will be described in terms of combinations of several features: the amount of processing or memory resources allocated to abstract virtual machines, best and worst execution times, the choice of application-level scheduling policies for client requests, and the distribution over different abstract virtual machines

5

Initiated in this deliverable ���(to be completed in D1.3.2… see next review)

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem”

-  When a cloud application must be deployed it is necessary to:

1.  Select the software components to be used

6

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem”

-  When a cloud application must be deployed it is necessary to:

2.  Define the software architecture (relationships among components)

7

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem”

-  When a cloud application must be deployed it is necessary to:

3.  Acquire the virtual machines to realize the software architecture

8

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

A “deployed application” in ABS

-  Virtual machines deployment components ���(small and large with their type/memory/CPU in the example)

9

DeploymentComponent small = new DeploymentComponent ("m1”,map[Pair(Memory,500), Pair(CPU,1)]);DeploymentComponent large = new DeploymentComponent ("m2”,map[Pair(Memory,1500), Pair(CPU,4)]);[DC: large] Service s1 = new Service();[DC: large] Service s2 = new Service();[DC: small] Balancer b = new Balancer(list[s1,s2]);

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

A “deployed application” in ABS

-  Virtual machines deployment components ���(small and large with their type/memory/CPU in the example)

-  Software components objects to be initially instantiated ���(s1, s2 and b in the example)

10

DeploymentComponent small = new DeploymentComponent ("m1”,map[Pair(Memory,500), Pair(CPU,1)]);DeploymentComponent large = new DeploymentComponent ("m2”,map[Pair(Memory,1500), Pair(CPU,4)]);[DC: large] Service s1 = new Service();[DC: large] Service s2 = new Service();[DC: small] Balancer b = new Balancer(list[s1,s2]);

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

A “deployed application” in ABS

-  Virtual machines deployment components ���(small and large with their type/memory/CPU in the example)

-  Software components objects to be initially instantiated ���(s1, s2 and b in the example)

-  Relationships the instantiation parameters ���(b is the balancer of the s1 and s2 services)

11

DeploymentComponent small = new DeploymentComponent ("m1”,map[Pair(Memory,500), Pair(CPU,1)]);DeploymentComponent large = new DeploymentComponent ("m2”,map[Pair(Memory,1500), Pair(CPU,4)]);[DC: large] Service s1 = new Service();[DC: large] Service s2 = new Service();[DC: small] Balancer b = new Balancer(list[s1,s2]);

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Current approach in ABS specifications :

-  manually write the “deployed application” in a main procedure

-  Main contribution of this deliverable:

-  incorporation inside ABS of state-of-the-art approaches to automatically generate the main procedure

12

John A. Hewson, Paul Anderson, Andrew D. Gordon: ��� A Declarative Approach to Automated Configuration. LISA 2012: 51-66

Jeffrey Fischer, Rupak Majumdar, Shahram Esmaeilsabzali: ��� Engage: a deployment management system. PLDI 2012: 263-274

Roberto Di Cosmo, Michael Lienhardt, Ralf Treinen, Stefano Zacchiroli, Jakub Zwolakowski, ��� Antoine Eiche, Alexis Agahi: ��� Automated synthesis and deployment of cloud applications. ASE 2014: 211-222

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

13

[Deploy: scenario[ MaxUse(1), Cost("CPU", 1), Cost("Memory", 400), Param("c", Default("CustomerX")), Param("ds", Req)]]class QueryServiceImpl (DeploymentService ds, Customer c)

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

14

[Deploy: scenario[ MaxUse(1), Cost("CPU", 1), Cost("Memory", 400), Param("c", Default("CustomerX")), Param("ds", Req)]]class QueryServiceImpl (DeploymentService ds, Customer c)

Resource consumptionFunctional dependencies

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

15

INTERFACE[IQueryService] >= 2 and CLASS[PlatformServiceImpl] = 1 and

DC[ CLASS[QueryServiceImpl] > 0 and CLASS[DeploymentServiceImpl] = 0 ] = 0

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

16

INTERFACE[IQueryService] >= 2 and CLASS[PlatformServiceImpl] = 1 and

DC[ CLASS[QueryServiceImpl] > 0 and CLASS[DeploymentServiceImpl] = 0 ] = 0

Constraints on the initial objects

Co-installability requirement

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

-  Given a set of available virtual machines!

!

17

{ "DC_description": [ { "name" : "c3.large", "cost" : 105, "provide_resources" : {"CPU" : 2, "Memory" : 375} }, { "name" : "c3.xlarge", "cost" : 210 "provide_resources" : {"CPU" : 4, "Memory" : 750} } ], "DC_availability": { "c3.large" : 5, "c3.xlarge" : 3 } }

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

-  Given a set of available virtual machines!

!

18

{ "DC_description": [ { "name" : "c3.large", "cost" : 105, "provide_resources" : {"CPU" : 2, "Memory" : 375} }, { "name" : "c3.xlarge", "cost" : 210 "provide_resources" : {"CPU" : 4, "Memory" : 750} } ], "DC_availability": { "c3.large" : 5, "c3.xlarge" : 3 } }

Types of machines

Maximal amount of available instances

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

-  Given a set of available virtual machines!

Compute the “optimal” deployment !

19

DeploymentComponent m1.large_1 = new DeploymentComponent("m1.large_1", map[Pair(Memory,750), Pair(CPU,2)]);DeploymentComponent m1.large_2 = new DeploymentComponent("m1.large_2", map[Pair(Memory,750), Pair(CPU,2)]);DeploymentComponent m1.xlarge_1 = new DeploymentComponent("m1.xlarge_1", map[Pair(Memory,1500), Pair(CPU,4)]);DeploymentComponent m1.xlarge_2 = new DeploymentComponent("m1.xlarge_2", map[Pair(Memory,1500), Pair(CPU,4)]);DeploymentComponent amazon_internals = new DeploymentComponent("amazon_internals", map[]);

[DC: amazon_internals] InfrastructureService o1 = new InfrastructureServiceImpl();[DC: m1.xlarge_1] LoadBalancerService o2 = new LoadBalancerServiceImpl();[DC: m1.large_1] DeploymentService o3 = new DeploymentServiceImpl(o1);[DC: m1.large_2] DeploymentService o4 = new DeploymentServiceImpl(o1);[DC: m1.xlarge_2] MonitorPlatformService o5 = new PlatformServiceImpl(list[o3,o4], o2);[DC: m1.large_2] IQueryService o6 = new QueryServiceImpl(o4, CustomerX);[DC: m1.large_1] IQueryService o7 = new QueryServiceImpl(o3, CustomerX);[DC: m1.xlarge_2] ServiceProvider o8 = new ServiceProviderImpl(o5, o2);

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in ABS

-  Given a set of ABS classes (enriched with deployment information)

-  Given a “declarative” specification of the desired application

-  Given a set of available virtual machines!

Compute the “optimal” deployment !

20

DeploymentComponent m1.large_1 = new DeploymentComponent("m1.large_1", map[Pair(Memory,750), Pair(CPU,2)]);DeploymentComponent m1.large_2 = new DeploymentComponent("m1.large_2", map[Pair(Memory,750), Pair(CPU,2)]);DeploymentComponent m1.xlarge_1 = new DeploymentComponent("m1.xlarge_1", map[Pair(Memory,1500), Pair(CPU,4)]);DeploymentComponent m1.xlarge_2 = new DeploymentComponent("m1.xlarge_2", map[Pair(Memory,1500), Pair(CPU,4)]);DeploymentComponent amazon_internals = new DeploymentComponent("amazon_internals", map[]);

[DC: amazon_internals] InfrastructureService o1 = new InfrastructureServiceImpl();[DC: m1.xlarge_1] LoadBalancerService o2 = new LoadBalancerServiceImpl();[DC: m1.large_1] DeploymentService o3 = new DeploymentServiceImpl(o1);[DC: m1.large_2] DeploymentService o4 = new DeploymentServiceImpl(o1);[DC: m1.xlarge_2] MonitorPlatformService o5 = new PlatformServiceImpl(list[o3,o4], o2);[DC: m1.large_2] IQueryService o6 = new QueryServiceImpl(o4, CustomerX);[DC: m1.large_1] IQueryService o7 = new QueryServiceImpl(o3, CustomerX);[DC: m1.xlarge_2] ServiceProvider o8 = new ServiceProviderImpl(o5, o2);

Application to the FRH case study

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in FRH case study

-  Fredhopper Cloud Services: customizable web shop platform!

-  Considered problem: deploy an appropriate number of service instances, on cloud premises, minimasing the total cost

21

Service EndpointService Endpoint

Infrastructure

Platform Service

Service Instance

Load Balancing Service

Monitoring/AlertingService

Service Endpoint

Service Instance

Service Instance

Service Instance

Deployment Service

Service APIs

Fredhopper Cloud Service

Cloud Provider

Consumes Provides

CustomersCustomers

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in FRH case study

22

INPUT: !

-  Specification in ABS already available: ���

Class declarations annotated !with deployment information

-  Declarative description of the desired deployment

-  Description of the available machines (enriched with costs)

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

The “deployment problem” in FRH case study

23

OUTPUT: !

-  An optimal deployment (minimize the costs) modeled in ABS

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

Conclusion-  We are now able to automatically generate the typical deployment ���

manually realised by the operation teams at Fredhopper Cloud Services

-  Deployment tool integrated inside the ABS tools platform:

24

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

D1.3.1 – Modeling of Deployment

QUESTIONS

25

Recommended