25
Envisage: Engineering Virtualized Services D1.3.1 — Modeling of Deployment (Initial Report) Presenter: Behrooz Nobakht [email protected] Envisage Year 2 Project Review Brussels, Dec. 1, 2015 http://www.envisage-project.eu Deliverable responsibility: BOL (Gianluigi Zavattaro) [email protected]

Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Presenter: !Behrooz Nobakht���[email protected]

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

http://www.envisage-project.eu

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

[email protected]

Page 2: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 3: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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”)

Page 4: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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)

Page 5: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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)

Page 6: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 7: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 8: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 9: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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]);

Page 10: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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]);

Page 11: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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]);

Page 12: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 13: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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)

Page 14: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 15: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 16: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 17: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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 } }

Page 18: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 19: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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);

Page 20: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 21: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 22: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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)

Page 23: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 24: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

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

Page 25: Envisage: Engineering Virtualized Servicesenvisage-project.eu/.../WP1-T1.3-Review_Zavattaro.pdf · - Given a set of ABS classes (enriched with deployment information)- Given a “declarative”

Behrooz Nobakht (FRH) Envisage Brussels 1.12.2015

D1.3.1 – Modeling of Deployment

QUESTIONS

25