Self-adaptive cloud-based applications

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
IaaS
Virtualisation
Servers
Storage
Network
Cloud-based applications
Run-time
OS
IaaS
PaaS
Virtualisation
Servers
Storage
Network
Cloud-based applications
Applications
Data
Run-time
SaaS
OS
IaaS
PaaS
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 [elasticity: 1..8]
MongoDB [elasticity: 1..8]
Tomcat:SC
LL:VM
SINTEF (OpenStack) [location: NO]
VM: Virtual machine
SC: Servlet container
LB: Load balancer
SL: Small GNU/Linux
ML: Medium GNU/Linux
LL: Large GNU/Linux
Run-time deployment model
1:Notifier
LB
[response time = 20ms]
2:Tomcat
1:SL
Flexiant [location: UK]
1:Dispatcher
LB
1:MongoDB LB 2:MongoDB
1:Tomcat
1:LL
SINTEF (OpenStack) [location: NO]
VM: Virtual machine
SC: Servlet container
LB: Load balancer
SL: Small GNU/Linux
ML: Medium GNU/Linux
LL: Large GNU/Linux
Run-time deployment model
1:Notifier
LB
[response time = 80ms]
2:Tomcat
1:SL
Flexiant [location: UK]
1:Dispatcher
LB
1:MongoDB LB 2:MongoDB
1:Tomcat
1:LL
SINTEF (OpenStack) [location: NO]
VM: Virtual machine
SC: Servlet container
LB: Load balancer
SL: Small GNU/Linux
ML: Medium GNU/Linux
LL: Large GNU/Linux
Run-time deployment model
1:Notifier
[response time = 80ms]
LB
2:Tomcat
1:SL
Flexiant [location: UK]
1:Dispatcher
2:Dispatcher
LB
1:Tomcat
1:MongoDB LB 2:MongoDB
3:Tomcat
1:LL
SINTEF (OpenStack) [location: NO]
VM: Virtual machine
SC: Servlet container
LB: Load balancer
SL: Small GNU/Linux
ML: Medium GNU/Linux
LL: Large GNU/Linux
Run-time deployment model
1:Notifier
2:Notifier
[response time = 20ms]
LB
2:Tomcat
4:Tomcat
1:SL
Flexiant [location: UK]
1:Dispatcher
2:Dispatcher
LB
1:Tomcat
1:MongoDB LB 2:MongoDB
3:Tomcat
1:LL
SINTEF (OpenStack) [location: NO]
VM: Virtual machine
SC: Servlet container
LB: Load balancer
SL: Small GNU/Linux
ML: Medium GNU/Linux
LL: Large GNU/Linux
Models@run-time
Models@run-time
Current
model
Reasoning
engine
Models@run-time
Current
model
Reasoning
engine
Target
model
Models@run-time
Current
model
Reasoning
engine
Target
model
Models@run-time
Diff
Current
model
Reasoning
engine
Target
model
Models@run-time
Diff
Current
model
Adaptation
engine
Reasoning
engine
Target
model
Models@run-time
Diff
Adaptation
engine
Current
model
Execution environments
Reasoning
engine
Target
model
Models@run-time
Diff
Adaptation
engine
Current
model
Execution environments
PaaSage platform
Cloud-based
application
PaaSage platform
Cloud-based
application
PaaSage platform
Cloud-based
application
CAMEL
• Provisioning and deployment model
• Requirements and constraints
• Service-level objectives
• Scalability rules
PaaSage platform
Cloud-based
application
CAMEL
• Provisioning and deployment model
• Requirements and constraints
• Service-level objectives
• Scalability rules
Profiler
Design-time
optimisation loop
Reasoner
Adapter
PaaSage platform
Cloud-based
application
CAMEL
• Provisioning and deployment model
• Requirements and constraints
• Service-level objectives
• Scalability rules
Profiler
Design-time
optimisation loop
Reasoner
Adapter
Execution
monitoring
Platform
specific
mapping
Run-time
optimisation loop
Execution
control
Execution environments
Cloud-based
application
Metadata sharing
CAMEL
• Provisioning and deployment model
• Requirements and constraints
• Service-level objectives
• Scalability rules
Profiler
Run-time
optimisation loop
Execution
control
Design-time
optimisation loop
Reasoner
Adapter
Metadata collection
Execution
monitoring
Platform
specific
mapping
Execution environments
Metadata
PaaSage platform
Social
network
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