Abstract: Software applications accessible over the web are typically subject to very dynamic workloads. Since cloud elasticity provides the ability to adjust the deployed environment on the fly, modern software systems tend to target cloud as a fertile deployment environment. However, relying only on native elasticity features of cloud service providers is not sufficient for modern applications. This is because current features rely on users' knowledge for configuring the performance parameters of the elasticity mechanism and in general users cannot optimally determine such sensitive parameters. In order to overcome this user dependency, using approaches from autonomic computing is shown to be appropriate. Control theory proposes a systematic way to design feedback control loops to handle unpredictable changes at runtime for software applications. Although there are still substantial challenges to effectively utilize feedback control in self-adaptation of software systems, software engineering and control theory communities have made recent progress to consolidate their differences by identifying challenges that can be addressed cooperatively. This paper is in the same vein, but in a narrower domain given that cloud computing is a sub-domain of software engineering. It aims to highlight the challenges in the self-adaptation process of cloud-based applications in the perspective of control engineers.
Self-adaptation Challenges for Cloud-based Applications (Feedback Computing 2015)
1. Soodeh Farokhi, Vienna University of Technology, Austria
Pooyan Jamshidi, Imperial College London, UK
Ivona Brandic, Vienna University of Technology, Austria
Erik Elmroth, Umeå University, Sweden
10th International Workshop on Feedback Computing
13 April 2015, Seattle, USA
2. Cloud-based Applications
• Dynamic workloads of web applications
• dynamic resource allocation
• avoiding performance degradation and over- or under-utilized resources
• deploying on cloud?!
• Elasticity
• ability to rapidly adjust the allocated resource for an application
insufficient to rely on elasticity features of cloud providers
• to ensure sensitive performance requirements of modern applications
2Self-adaptation Challenges for Cloud-based Applications: A Control Theoretic Perspective (Feedback Computing 2015)
3. Entangling cloud-based applications with autonomic managers
• continuously monitors application behavior
• automatically adjusts resource allocations => meet target performance
feedback control to handle unpredictable runtime changes for software applications
• Different points of views and applications of self-adaptation
Software Engineering Control & Cloud Computing Engineering
… focus in on cloud-based applications and challenges to make them self-adaptation
3Self-adaptation Challenges for Cloud-based Applications: A Control Theoretic Perspective (Feedback Computing 2015)
5. Challenges for Self-adaptation of cloud-based software applications
5
Challenges for designing controllers for software systems
1) Uncertainty
2) Methodological procedures to synthesize controllers
Challenges for deploying controlled-system on cloud environments
3) Interfaces of cloud services
4) Unpredictable workloads
5) Detecting the application bottleneck
6) Controlling multi-tier applications
7) Using resources from multiple clouds
8) Scalability
6. 6Self-adaptation Challenges for Cloud-based Applications: A Control Theoretic Perspective (Feedback Computing 2015)
Uncertainty
cloud-based
application
cloud
environment
resource
target system
workload
controller
desired
QoS
controller’s
output
measured
QoS
application users
controlled system
feedback loop
7. Uncertainty
• monitoring tools (sensors) provide input data for auto-scaling decision making
• not free of noise
• contains random and persistent disturbances
• contain irrelevant or meaningless data
… more issues on cloud environments
• unreliability due to the uncertainty
• may not be effective or cost-efficient!
… uncertainty in dynamic resource provisioning for software is still unclear!
7Self-adaptation Challenges for Cloud-based Applications: A Control Theoretic Perspective (Feedback Computing 2015)
9. Developing methodological procedures to synthesize controllers
• Black box view of application form the cloud providers’ perspective
• difficult to devise optimal corrective actions
• adopting a proper auto-scaling controller at runtime
• so responsibility of application owner
• no Knowledge of performance modelling and control synthesizing
control community can provide certain generic methodological solutions
• to facilitate the design of controllers for software systems
• application owner only define a desired QoS
• a smart controller decides at runtime
9
13. Unpredictable workloads
• allocating resources in accordance to workload changes
• controlling the workload is unrealistic!
classification and using workload analyzing tools
• to improve workload predictions
• to synthesize controllers to handle them more effectively
• dynamically adopting a number of controllers to cope with various situations.
…. dynamic switching among controllers at runtime is a valuable research direction.
13
0
1000
2:00 6:47 11:34 16:20 21:07
userrequests
time during 24 hours
Wikipedia
0
1000
31-May-1998 14-Jun-1998 28-Jun-1998 12-Jul-1998
userrequests
date during one and half months
FIFA Website
15. Detecting applications' resource bottlenecks
• identifying resource bottleneck before deployment on cloud environments
• no knowledge of application bottleneck => no good design of control knobs
possible solutions
• applying bottleneck detection on an application before synthesizing the controller
• deploying on a cloud that can provide elasticity and control on that resource
• familiarity with potential application categories
… software engineering community can provide guidelines to facilitate it
15
17. Controlling multi-tier applications
• 3-tier pattern as a popular architectural patterns
• every tier can be the performance degradation reason in a specific period of time
• Possible solution
• adopting separated controllers for each tier
• using coordination methods among these tiers
• passing monitored data as the input for controllers at other tiers
17
controller
18. 18
Using resources from multiple clouds
cloud-based
application
cloud
environment
resource
target system
workload
controller
desired
QoS
controller’s
output
measured
QoS
application users
controlled system
feedback loop
19. Using resources from multiple clouds
• limitation of using a single cloud
• future trend for cloud community is using resources from multiple clouds
• deploying dependent tiers of a single application across multiple cloud environments.
• … so plus previous challenges, interoperability and distributed controllers as issues
19
21. Scalability
• software applications => more large-scale and distributed
• centralized control is infeasible
possible solutions
• hierarchical control and leverages distributed controllers
• co-existence and possible inconsistencies and interferences between controllers!
• load-balancing issues
… so coordination is recognized as an important challenge, not completely solved yet
21
22. 22
as a member of cloud community
• challenges of self-adaptation cloud applications
• existing research and potential solutions
• not a comprehensive list of challenges
• collaboration of three communities
23. Dr. Pooyan Jamshidi
post-doc researcher
Imperial College London
UK
Dr. Ivona Brandic
assistant professor, co-advisor
Vienna University of Technology
Austria
soodeh.farokhi@tuwien.ac.at
www.infosys.tuwien.ac.at/staff/sfarokhi
at.linkedin.com/in/soodehfa
Prof. Erik Elmroth
Umeå University
Sweden
cloud-based
application
cloud
environment
resource
target system
workload
controller
desired
QoS
controller’s
output
measured
QoS
application users
controlled system
feedback loop
Challenges for Self-adaptation of cloud-based software applications
5
Challenges for designing controllers for software systems
1) Uncertainty
2) Methodological procedures to synthesize controllers
Challenges for deploying controlled-system on cloud environments
3) Interfaces of cloud services
4) Unpredictable workloads
5) Detecting the application bottleneck
6) Controlling multi-tier applications
7) Using resources from multiple clouds
8) Scalability
26. 1) Uncertainty (e.g., due to measurement imprecision and noises)
4) Unpredictable workloads
5) Detecting applications’ resource bottlenecks
3) Heterogeneous interfaces of cloud services (e.g., due to control level)
7) Using resources from multiple clouds
8) Scalability (e.g., need for distributed controllers and coordination)
6) Controlling multi-tier applications
Challenges of deploying software applications on cloud environments
Challenges of synthesizing controllers for software applications
2) Developing methodological procedures to synthesize controllers