Improving Service Availabiliy with Rule-Based Adaptation SSP 2018, - - PowerPoint PPT Presentation

improving service availabiliy with rule based adaptation
SMART_READER_LITE
LIVE PREVIEW

Improving Service Availabiliy with Rule-Based Adaptation SSP 2018, - - PowerPoint PPT Presentation

Improving Service Availabiliy with Rule-Based Adaptation SSP 2018, Hildesheim Marc Adolf Reiner Jung & Lars Blmke 8 th November 2018 Introduction Cloud application rely on adaptation Up- and Down-Scaling (De-)Replication


slide-1
SLIDE 1

Improving Service Availabiliy with Rule-Based Adaptation

SSP 2018, Hildesheim Marc Adolf Reiner Jung & Lars Blümke 8th November 2018

slide-2
SLIDE 2

Introduction

Cloud application rely on adaptation ‚ Up- and Down-Scaling ‚ (De-)Replication ‚ Migration ‚ Reconfiguration ñ Potential information loss during scaling and reconfiguration

Reiner Jung 2 / 10

slide-3
SLIDE 3

Example Scenarios

EasyPay

134.2.5.125

Cart A

10.10.1.3

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-4
SLIDE 4

Example Scenarios

deploy Cart B, configure Database

EasyPay

134.2.5.125

Cart A

10.10.1.3

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-5
SLIDE 5

Example Scenarios

transfer state

EasyPay

134.2.5.125

Cart A

10.10.1.3

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-6
SLIDE 6

Example Scenarios

connect Cart B, update state

EasyPay

134.2.5.125

Cart A

10.10.1.3

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-7
SLIDE 7

Example Scenarios

disconnect Cart A

EasyPay

134.2.5.125

Cart A

10.10.1.3

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-8
SLIDE 8

Example Scenarios

EasyPay

134.2.5.125

Cart A

10.10.1.3

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-9
SLIDE 9

Example Scenarios

undeploy Cart A

EasyPay

134.2.5.125

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-10
SLIDE 10

Example Scenarios

configure Cart B to use SecuPay

SecuPay

104.9.4.22

EasyPay

134.2.5.125

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-11
SLIDE 11

Example Scenarios

confiugure Cart B to no longer use EasyPay

SecuPay

104.9.4.22

EasyPay

134.2.5.125

Cart B

10.10.1.7

Frontend

10.10.1.2

Database

10.10.1.4

System Border

Reiner Jung 3 / 10

slide-12
SLIDE 12

Solution

Divide adaptions actions in smaller execution actions

Reiner Jung 4 / 10

slide-13
SLIDE 13

iObserve

Application

Reiner Jung 5 / 10

slide-14
SLIDE 14

iObserve

Application

Monitoring <<service>>

Analysis <<service>>

Monitoring Events TCP

Reiner Jung 5 / 10

slide-15
SLIDE 15

iObserve

Application Candidate Architecture Selection Adaptation Planning

HTTP

Planning <<service>> <<service>>

PAM CAM

HTTP

PAM Monitoring <<service>>

Analysis <<service>>

Monitoring Events TCP

Reiner Jung 5 / 10

slide-16
SLIDE 16

iObserve

Application Candidate Architecture Selection Adaptation Planning

HTTP

Planning <<service>> <<service>>

PAM CAM

HTTP

PAM Monitoring <<service>>

Analysis <<service>>

Monitoring Events TCP

PAM Ex.- Plan

Execution <<service>>

HTTP

CAM

Reiner Jung 5 / 10

slide-17
SLIDE 17

iObserve

Application Candidate Architecture Selection Adaptation Planning

HTTP

Planning <<service>> <<service>>

PAM CAM

HTTP

PAM Monitoring <<service>>

Analysis <<service>>

Monitoring Events TCP

PAM Ex.- Plan

Execution <<service>>

HTTP

CAM

Execute Adaptations

Reiner Jung 5 / 10

slide-18
SLIDE 18

Planning

Candidate Architecutre Selection

PerOpteryx Runner PerOpteryx Model Receiver Model Sender Model Selection

Adaptation Planning

Model Receiver Palladio Model Model Send Execution Planner

Reiner Jung 6 / 10

slide-19
SLIDE 19

Adaptation Planning

Compute composed adaptation actions ‚ Difference PAM vs. CAM ‚ Consider data dependencies ‚ Consider state

B B' C C' B B' C' C B C' B' C B C B' C' B C C' B' B C' C B' C' B' B C

... 4! = 24 options, only two safe

A C B C' B'

Reiner Jung 7 / 10

slide-20
SLIDE 20

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B

B

Reiner Jung 8 / 10

slide-21
SLIDE 21

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B deploy B'

B B'

Reiner Jung 8 / 10

slide-22
SLIDE 22

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B start state sync

B B'

Reiner Jung 8 / 10

slide-23
SLIDE 23

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B connect B' -> C' connect A -> B'

B B'

Reiner Jung 8 / 10

slide-24
SLIDE 24

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B disallow new sessions from A -> B wait for session completion

B B'

Reiner Jung 8 / 10

slide-25
SLIDE 25

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B complete sync

B B'

Reiner Jung 8 / 10

slide-26
SLIDE 26

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B disconnect A -> B disconnect B -> C

B B'

Reiner Jung 8 / 10

slide-27
SLIDE 27

Generating atomic actions

Migration of B to B'

A C C'

deploy B' start state sync complete sync connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion disconnect A -> B disconnect B -> C undeploy B undeploy B

B'

Reiner Jung 8 / 10

slide-28
SLIDE 28

Execution

Service ‚ Map atomic action to cloud API calls ‚ Execute actions without violating data constraints ‚ Currently sequential execution ‚ Future concurrent execution Mapping ‚ Depends on cloud API ‚ Depends on service features ‚ State transfer ‚ Availability checks

Reiner Jung 9 / 10

slide-29
SLIDE 29

Conclusion

Summary ‚ Introduced iObserve services for MAPE-K ‚ Candidate Selection ‚ Planning ‚ Execution ‚ Rule-based adaption with Drools Code

https://github.com/research-iobserve/iobserve-analysis

Outlook ‚ Concurrent execution ‚ Additional atomic actions ‚ More executors supporting different techologies ‚ Use of Kieker probes to check availability of services

Reiner Jung 10 / 10