Deployment Model Evolution

31
Institute of Architecture of Application Systems Pattern - based Deployment Models Revisited: Automated Pattern - driven Deployment Configuration Lukas Harzenetter 1 , Uwe Breitenbücher, Michael Falkenthal, Jasmin Guth, and Frank Leymann 1 [email protected]

Transcript of Deployment Model Evolution

Page 1: Deployment Model Evolution

Institute of Architecture of Application Systems

Pattern-based Deployment Models Revisited:Automated Pattern-driven Deployment Configuration

Lukas Harzenetter1, Uwe Breitenbücher, Michael Falkenthal, Jasmin Guth, and Frank Leymann

1 [email protected]

Page 2: Deployment Model Evolution

Research

About me: Lukas Harzenetter

▪ Research associate at the University of Stuttgart, Institute of Architecture of Application Systems (IAAS)

▪ Master of Science in Software Engineering, 2018

▪ Funded by the German Research Foundation(DFG) project SustainLife

▪ Enhancing the sustainability and longevity ofresearch applications in the domain ofdigital humanities

▪ Research interests:

▪ Cloud Computing

▪ Deployment Automation

▪ Deployment Models

2

Page 3: Deployment Model Evolution

Research

Deployment and Configuration Automation

3

Page 4: Deployment Model Evolution

Research

Example Deployment Model

4

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

Region: EU[…]

Public Cloud(AWS)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Order PaaS(AWS Webserver Env)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Processor PaaS(AWS Worker Env)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-ConProvider lock-in

Technology lock-insRequires immense

expertise to create…

Page 5: Deployment Model Evolution

Research

Patterns

▪ Pattern: Proven concept & solution to a recurring problem

▪ Context & problem description

▪ Abstract solution

▪ Icon

▪ Domain specific:

▪ Cloud Computing Patterns by Fehling et al. [1]

▪ Enterprise Integration Patterns by Hohpe and Woolf [2]

▪ Security Patterns by Schumacher et al. [3]

5

(1) C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter: Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer, Jan. 2014

(2) G. Hohpe and B. Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley, 2004(3) M. Schumacher, E. Fernandez-Buglioni, D. Hybertson, F. Buschmann, and P. Sommerlad: Security Patterns: Integrating Security and Systems

Engineering. John Wiley & Sons, Inc., Jan. 2006

Public Cloud [1]

Relational Database [1]

Page 6: Deployment Model Evolution

Research

Example Deployment Model

6

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

Region: EU[…]

Public Cloud(AWS)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Order PaaS(AWS Webserver Env)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Processor PaaS(AWS Worker Env)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Page 7: Deployment Model Evolution

Research

Example Deployment Model

7

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Order PaaS(AWS Webserver Env)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Processor PaaS(AWS Worker Env)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Page 8: Deployment Model Evolution

Research

Example Deployment Model

8

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Processor PaaS(AWS Worker Env)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Platform as a Service

Page 9: Deployment Model Evolution

Research

Example Deployment Model

9

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Platform as a Service

Page 10: Deployment Model Evolution

Research

Example Deployment Model

10

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Platform as a Service

Point-to-Point Channel

Page 11: Deployment Model Evolution

Research

Example Deployment Model

11

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Platform as a Service

Point-to-Point Channel

Message-oriented

Middleware

Page 12: Deployment Model Evolution

Research

Example Deployment Model

12

Port: 80[…]

Order App(Java 8 Web App)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

= hostedOn

= JmsQueueCon_1.1

= SQL-Con

Public Cloud

Platform as a Service

Point-to-Point Channel

Message-oriented

Middleware

Relational Database

Page 13: Deployment Model Evolution

Research

Pattern-based Deployment Models [4]

13

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

Order Processor(Java 8 App)

Point-to-Point Channel

Message-oriented

Middleware

Platform as a Service

Public Cloud

Relational Database

(4) Harzenetter, Lukas; Breitenbücher, Uwe; Michael, Falkenthal; Guth, Jasmin; Krieger, Christoph; Leymann, Frank: Pattern-based Deployment Models and Their Automatic Execution. In: 11th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2018), IEEE Computer Society, 2018

Describing semantics rather than technologies

However, behavior cannot be described using patterns…

Page 14: Deployment Model Evolution

Pattern-based Deployment and Configuration Models

Page 15: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models (PbDCMs)

15

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

Order Processor(Java 8 App)

Point-to-Point Channel

Message-oriented

Middleware

Platform as a Service

Public Cloud

Relational Database

Secure Channel

Unpredictable Workload

Stateless Component

Exactly-once Delivery

Information Obscurity

Processing Component

UI Com-ponent

Page 16: Deployment Model Evolution

How to deploy an application that is modelled in the form of a PbDCM?

Page 17: Deployment Model Evolution

Research

Pattern-based Deployment Modelling Method

17

Software Artifacts,Architecture Models,

Applied Patterns

Pattern-based Deployment Model

A

Deployment ModelCandidate

PRMsRepository

ExecutableDeployment Model

DeriveRefine

(optional)

Vendor & Technology Agnostic Modeling (Semi-) Automatic Refinement Vendor & Technology Specific Modeling

B

(4) Harzenetter, Lukas; Breitenbücher, Uwe; Michael, Falkenthal; Guth, Jasmin; Krieger, Christoph; Leymann, Frank: Pattern-based Deployment Models and Their Automatic Execution. In: 11th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2018), IEEE Computer Society, 2018

Page 18: Deployment Model Evolution

Research

CBPRM Extensions

Component and Behavior Pattern Refinement Model (CBPRM)

18

(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

(Java 8 Web App)

RelationType: hostedOnDirection: ingoingSourceType: *

RelationMapping

Stay

MappingsRefinement

Structure

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Detector

Page 19: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

19

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

Order Processor(Java 8 App)

Page 20: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

20

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

(Java 8 Web App)

RelationType: hostedOnDirection: ingoingSourceType: *

RelationMapping

Stay

MappingsRefinement

Structure

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Detector

Page 21: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

21

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

(Java 8 Web App)

RelationType: hostedOnDirection: ingoingSourceType: *

RelationMapping

Stay

MappingsRefinement

Structure

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Detector

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Page 22: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

22

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

(Java 8 Web App)

RelationType: hostedOnDirection: ingoingSourceType: *

RelationMapping

Stay

MappingsRefinement

Structure

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Detector

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Page 23: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

23

= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

(Java 8 Web App)

RelationType: hostedOnDirection: ingoingSourceType: *

RelationMapping

Stay

MappingsRefinement

Structure

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Detector

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Page 24: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

25= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Order Processor(Java 8 App)

But how to refine relations that are annotated with patterns?

Page 25: Deployment Model Evolution

Research

Component and Behavior Pattern Refinement Model (CBPRM)

26

= Secure-SQL-Connection= SQL-Connection

Detector MappingsRefinement

Structure

(Application)(Application) Stay

Stay

Page 26: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

27= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Order Processor(Java 8 App)

Page 27: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

28= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order Processor(Java 8 App)

Detector MappingsRefinement

Structure

(Application)(Application) Stay

Stay

Page 28: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

29= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order Processor(Java 8 App)

Detector MappingsRefinement

Structure

(Application)(Application) Stay

Stay

Page 29: Deployment Model Evolution

Research

Pattern-based Deployment and Configuration Models – Refinement

30= hostedOn= JMS-2.0-Queue-Connection = SQL-Connection

Order App(Java 8 Web App)

[…]

PaaS Provider(Elastic Beanstalk)

[…]

Public Cloud(AWS)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

PaaS(AWS Webserver Env)

Order Processor(Java 8 App)

Page 30: Deployment Model Evolution

Research

One of Many Refinement Result

31

Port: 80[…]

Order App(Java 8 Web App)

DB-Name: webshop[…]

Database(MySQL Database 5.7)

MaxHeap: 6GB[…]

Order Processor(Java 8 App)

Type: FIFOServer-SideEncryption: YesMaster-Key: Default

Queue(SQS Queue)

= hostedOn

= Secure-JMS-Queue-Connection

= Secure-SQL-Connection

Region: EU[…]

Public Cloud(AWS)

Server-SideEncryption: YesMaster-Key: Default[…]

DBMS(MySQL DBMS 5.7)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Order PaaS(AWS Webserver Env)

AutoScaling: trueScalingMetric: NetOutTimeSpan: 5min[…]

Processor PaaS(AWS Worker Env)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

PaaS Provider(Elastic Beanstalk)

Account: ust-iaas[…]

DBMS Provider(Relational Database Service)

Account: ust-iaas[…]

MoM Provider(Simple Queue Serivce)

Page 31: Deployment Model Evolution

Research

Conclusion & Future Work

▪ Open-source implementation based on Eclipse Winery

▪ Demo video available on YouTube

▪ Pattern-based Deployment and Configuration Models

▪ Less technology-specific knowledge needed

▪ Avoid vendor and technology lock-ins

▪ Component and Behavior Pattern Refinement Models

▪ Rules how refinement can be done (semi-) automatically

▪ Limitation: assumption that Deployment Models are correct

▪ Close gap between architecture and deployment models

▪ Extend approach to automatically generate CBPRM permutations

32

Thank you! ☺