Self-adaptive cloud-based applications Alessandro Rossini Future Internet Assembly, Athens 17 March 2014
Challenge
Wed, 19 Feb Facebook acquires WhatsApp
Wed, 19 Feb Facebook acquires WhatsApp Sat, 22 Feb 1.8 million users register to Telegram
Wed, 19 Feb Facebook acquires WhatsApp Sat, 22 Feb 1.8 million users register to Telegram and Telegram crashes
Self-adaptive cloud-based applications Cloud-based applications that self-adapt to changes in environment and requirements
Self-adaptive cloud-based applications Cloud-based applications that self-adapt to changes in environment and requirements
Dynamically adaptive systems Continuous design and adaptation Short-term changes in execution environment Long-term changes in system requirements
Cloud-based applications
Cloud-based applications Virtualisation IaaS Servers Storage Network
Cloud-based applications Run-time OS PaaS IaaS Virtualisation Servers Storage Network
Cloud-based applications Applications Data Run-time SaaS PaaS IaaS OS Virtualisation Servers Storage Network
SensApp example
Design-time deployment model Notifier [elasticity: 1..4 response time < 50ms] Tomcat:SC SL:VM Flexiant [location: UK] Dispatcher Tomcat:SC [elasticity: 1..8] LL:VM MongoDB [elasticity: 1..8] VM: Virtual machine SC: Servlet container LB: Load balancer SL: Small GNU/Linux ML: Medium GNU/Linux LL: Large GNU/Linux SINTEF (OpenStack) [location: NO]
Run-time deployment model 1:Notifier 2:Tomcat LB [response time = 20ms] 1:SL Flexiant [location: UK] 1:Dispatcher 1:Tomcat LB 1:LL 1:MongoDB LB 2:MongoDB VM: Virtual machine SC: Servlet container LB: Load balancer SL: Small GNU/Linux ML: Medium GNU/Linux LL: Large GNU/Linux SINTEF (OpenStack) [location: NO]
Run-time deployment model 1:Notifier 2:Tomcat LB [response time = 80ms] 1:SL Flexiant [location: UK] 1:Dispatcher 1:Tomcat LB 1:LL 1:MongoDB LB 2:MongoDB VM: Virtual machine SC: Servlet container LB: Load balancer SL: Small GNU/Linux ML: Medium GNU/Linux LL: Large GNU/Linux SINTEF (OpenStack) [location: NO]
Run-time deployment model 1:Notifier 2:Tomcat LB [response time = 80ms] 1:SL Flexiant [location: UK] 1:Dispatcher 1:Tomcat LB 2:Dispatcher 3:Tomcat 1:LL 1:MongoDB LB 2:MongoDB VM: Virtual machine SC: Servlet container LB: Load balancer SL: Small GNU/Linux ML: Medium GNU/Linux LL: Large GNU/Linux SINTEF (OpenStack) [location: NO]
Run-time deployment model 1:Notifier 2:Tomcat LB 2:Notifier 4:Tomcat [response time = 20ms] 1:SL Flexiant [location: UK] 1:Dispatcher 1:Tomcat LB 2:Dispatcher 3:Tomcat 1:LL 1:MongoDB LB 2:MongoDB VM: Virtual machine SC: Servlet container LB: Load balancer SL: Small GNU/Linux ML: Medium GNU/Linux LL: Large GNU/Linux SINTEF (OpenStack) [location: NO]
Models@run-time
Current model Models@run-time
Reasoning engine Models@run-time Current model
Reasoning engine Target model Models@run-time Current model
Reasoning engine Target model Diff Models@run-time Current model
Reasoning engine Target model Diff Models@run-time Current model Adaptation engine
Reasoning engine Target model Diff Models@run-time Current model Adaptation engine Execution environments
Reasoning engine Target model Diff Models@run-time Current model Adaptation engine Execution environments
PaaSage platform
Cloud-based application
PaaSage platform Cloud-based application
Cloud-based application PaaSage platform CAMEL Provisioning and deployment model Requirements and constraints Service-level objectives Scalability rules
Cloud-based application PaaSage platform CAMEL Provisioning and deployment model Requirements and constraints Service-level objectives Scalability rules Design-time optimisation loop Profiler Reasoner Adapter
Cloud-based application PaaSage platform CAMEL Provisioning and deployment model Requirements and constraints Service-level objectives Scalability rules Run-time optimisation loop Design-time optimisation loop Profiler Reasoner Adapter Execution control Execution monitoring Platform specific mapping Execution environments
Cloud-based application Metadata sharing PaaSage platform CAMEL Provisioning and deployment model Requirements and constraints Service-level objectives Scalability rules Run-time optimisation loop Design-time optimisation loop Profiler Reasoner Adapter Execution control Execution monitoring Metadata collection Platform specific mapping Social network Metadata Execution environments
Cloud Application Modelling and Execution Language (CAMEL) Saloon WS-Agreement Scalability Rule Language CERIF
Thank you! More info: paasage.eu Get in touch: @alerossini alessandrorossini.org