Improving Service Availabiliy with Rule-Based Adaptation SSP 2018, Hildesheim Marc Adolf Reiner Jung & Lars Blümke 8 th November 2018
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
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 10.10.1.4 Reiner Jung 3 / 10
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 deploy Cart B, configure Database Reiner Jung 3 / 10
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 transfer state Reiner Jung 3 / 10
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 connect Cart B, update state Reiner Jung 3 / 10
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 disconnect Cart A Reiner Jung 3 / 10
Example Scenarios System Border Cart A EasyPay Frontend 10.10.1.3 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 Reiner Jung 3 / 10
Example Scenarios System Border EasyPay Frontend 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 10.10.1.7 undeploy Cart A Reiner Jung 3 / 10
Example Scenarios System Border EasyPay Frontend 134.2.5.125 Database 10.10.1.2 Cart B 10.10.1.4 SecuPay 10.10.1.7 104.9.4.22 configure Cart B to use SecuPay Reiner Jung 3 / 10
Example Scenarios System Border EasyPay Frontend 134.2.5.125 Database 10.10.1.2 10.10.1.4 Cart B SecuPay 10.10.1.7 104.9.4.22 confiugure Cart B to no longer use EasyPay Reiner Jung 3 / 10
Solution Divide adaptions actions in smaller execution actions Reiner Jung 4 / 10
iObserve Application Reiner Jung 5 / 10
iObserve <<service>> <<service>> Monitoring Analysis Monitoring Events TCP Application Reiner Jung 5 / 10
iObserve Planning <<service>> <<service>> <<service>> <<service>> PAM PAM Monitoring Analysis Candidate Adaptation Architecture HTTP Planning Selection HTTP CAM Monitoring Events TCP Application Reiner Jung 5 / 10
iObserve Planning <<service>> <<service>> <<service>> <<service>> PAM PAM Monitoring Analysis Candidate Adaptation Architecture HTTP Planning Selection HTTP CAM HTTP Ex.- CAM PAM Monitoring Events TCP Plan <<service>> Execution Application Reiner Jung 5 / 10
iObserve Planning <<service>> <<service>> <<service>> <<service>> PAM PAM Monitoring Analysis Candidate Adaptation Architecture HTTP Planning Selection HTTP CAM HTTP Ex.- CAM PAM Monitoring Events TCP Plan <<service>> Execution Execute Adaptations Application Reiner Jung 5 / 10
Planning Candidate Architecutre Selection PerOpteryx Model Model Runner Receiver Selection PerOpteryx Model Sender Adaptation Planning Model Palladio Execution Receiver Model Planner Model Send Reiner Jung 6 / 10
Adaptation Planning Compute composed adaptation actions A B C ‚ Difference B' C' PAM vs. CAM ‚ Consider data B B B B B B C' dependencies B' B' C C C' C' B' ‚ Consider state ... C C' B' C' B' C B C' C C' B' C B' C 4! = 24 options, only two safe Reiner Jung 7 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' deploy B' start state sync B B' connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync start state sync B B' connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B B' connect B' -> C' connect B' -> C' connect A -> B' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B B' connect B' -> C' connect A -> B' disallow new sessions from A -> B disallow new sessions from A -> B wait for session completion wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B B' connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync complete sync disconnect A -> B disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B B' connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect A -> B disconnect B -> C disconnect B -> C undeploy B Reiner Jung 8 / 10
Generating atomic actions Migration of B to B' A deploy B' start state sync B' connect B' -> C' connect A -> B' disallow new sessions from A -> B wait for session completion C C' complete sync disconnect A -> B disconnect B -> C undeploy B undeploy B Reiner Jung 8 / 10
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
https://github.com/research-iobserve/iobserve-analysis Conclusion Summary ‚ Introduced iObserve services for MAPE-K ‚ Candidate Selection ‚ Planning ‚ Execution ‚ Rule-based adaption with Drools Code Outlook ‚ Concurrent execution ‚ Additional atomic actions ‚ More executors supporting different techologies ‚ Use of Kieker probes to check availability of services Reiner Jung 10 / 10
Recommend
More recommend