This document describes SYBL, a language for specifying elasticity controls in cloud applications. SYBL allows elasticity requirements to be defined at the application, component, and code levels. It uses a structure of monitoring, constraints, and strategies. The document provides examples of SYBL controls and describes how SYBL specifications are executed at runtime. Experiments show how SYBL can adapt an application to achieve quality, cost, and resource elasticity goals. Future work involves further developing the SYBL runtime and using SYBL for more application types.
Unblocking The Main Thread Solving ANRs and Frozen Frames
SYBL: An Extensible Language for Controlling Elasticity in Cloud Apps
1. SYBL: an Extensible Language for
Controlling Elasticity in Cloud Applications
Georgiana Copil, Daniel Moldovan,
Hong-Linh Truong, Schahram Dustdar
Distributed Systems Group,
Vienna University of Technology
2. CCGRID, 23 May 2013 2
Overview
Motivation
Elasticity Requirements Specification Approach
SYBL
– Language Constructs
– Examples of Elasticity Controls
SYBL Runtime
Experiments
Conclusions and Future Work
3. CCGRID, 23 May 2013 3
Motivation – Complex and High-Level
Elasticity Control Requirements [1/2]
Application user: “If the cost is greater than 800 Euro, there
should be a scale-in action for keeping costs in acceptable limits”
Software provider: “Response time should be less than an
amount varying with the number of users.”
Developer: “The result from the data analytics algorithm must
reach a certain data accuracy under a cost constraint. I don’t care
about how many resources should be used for executing this
code.”
Cloud provider: “When availability is higher than 99% for a period
of time, and the cost is the same as for availability 80%, the cost
should increase with 10%.”
4. Motivation –Complex and High-Level
Elasticity Control Requirements [2/2]
Elasticity control needed at different levels, covering
Application, Component, Code-level
Cost
“If the cost is greater than 800 Euro…”
Quality
“Response time should be less than an amount varying…”
Resources
“allocated memory should be at least 6 GB…”
5. CCGRID, 23 May 2013 5
Elasticity & Cloud …
Resource Scaling in Industry Approach
– Amazon: AutoScale
– Paraleap: AzureWatch
– CloudStack: AutoScale
– Cloud Solution K7: ScaleInfra
Research Works for Elasticity
– Controlling resource elasticity [Han 2012]
– Measuring resource elasticity [Martin 2011], [Li 2012]
– Controlling resource elasticity for cost optimization [Sharma 2012] [Tosana-
Casalaz 2012]
Limited view on elasticity control
6. CCGRID, 23 May 2013 6
Elasticity & Cloud …
Multi-dimensional nature of elasticity [Dustdar 2011]
• Quality, Cost and Resources
How can we support elasticity specification?
– Consider complex application structure
– Consider multi-dimensional elasticity
7. CCGRID, 23 May 2013 7
Our approach – using directives for specifying
and controlling elasticity requirements
The user can rely on high-level specifications language
– Specifying elasticity control directives at multiple levels required
by multiple types of users
• Considering the application structure for multiple levels of control
• Address the elasticity requirements specification needs of multiple types of
users
– Cloud application owner, software provider, software developer, PaaS provider
• Allow high-level specifications
– Transparently transformed into complex elasticity control
– Controlling elasticity at multiple levels of considering application
structure
• Online/on the fly elasticity control
This paper
– Focus on elasticity requirements specification
8. CCGRID, 23 May 2013 8
SYBL – Overview
SYBL (Simple Yet Beautiful Language)
– Language for elasticity requirements specification
– Possible users: cloud provider, application owner, application
developer, software provider
– Goals: easy to use, high-level, multiple levels of control
SYBL-supported requirement levels
– Application Level
– Component Level
– Programming/Code Level
Core SYBL concepts
– <Monitoring, Constraint, Strategy> structure
– Predefined functions and environment variables
9. CCGRID, 23 May 2013 9
Main concepts used in SYBL [1/4]
„Monitoring“
– Directive for describing what needs to be monitored and under
what conditions
10. CCGRID, 23 May 2013 10
Main concepts used in SYBL [2/4]
„Constraint“
– Directive for describing what needs to true and under what
conditions
11. CCGRID, 23 May 2013 11
Main concepts used in SYBL [3/4]
„Strategy“
– Directive for describing how to achieve certain goals and under
what conditions
12. CCGRID, 23 May 2013 12
Main concepts used in SYBL [4/4]
Other constructs: predefined functions and environment
variables
13. CCGRID, 23 May 2013 13
Examples of SYBL Elasticity Controls
SYBL elasticity requirements – cloud provider
– Specifying application level elasticity directives
• For adapting the application to demand
• For defining cost schema
14. CCGRID, 23 May 2013 14
Examples of SYBL Elasticity Controls
SYBL elasticity requirements – cloud customer
Possible conflict?
• Cost targeted by
different users at
different levels
• Different constraints
15. CCGRID, 23 May 2013 15
SYBL and Implementation
Current SYBL implementation
– in Java using Java annotations
• @SYBLAnnotation(monitoring=„“,constraints=„“,strategies=„“)
– in XML
• Specific xml schema
– <ProgrammingDirective><Constraints><Constraint
name=c1>...</Constraint></Constraints>...</ProgrammingDirective>
Other possibilities
– C# Attributes
• [ProgrammingAttribute(monitoring=„“,constraints=„“,strategies=„“)]
– Python Decorators
• @ProgrammingDecorator(monitoring,constraints,strategies)
– ...
16. CCGRID, 23 May 2013 16
SYBL Runtime
1. SYBL directives inserted in application
3. The elasticity requirements are
enforced locally if possible, otherwise
they are sent to the Control Service
4. The Cloud Service uses the Monitoring
and Enforcement API for communicating
with Cloud APIs and Monitoring tools
17. CCGRID, 23 May 2013 17
Experiments – Setup
Cloud infrastructure
– OpenStack based, 100 cores
• Possible actions: adding/removing virtual machines
• Ganglia for monitoring
Application used
All software components are pre-installed in VM images
18. CCGRID, 23 May 2013 18
Experiments – SYBL Elasticity
Requirements Description [1/2]
Goal: controlling application component elasticity based
on performance conditions
Easy specification
– Don’t have to work with JClouds or any other tools for
connecting to the Cloud APIs
– Don’t have to process monitoring
20. Experiments – Results [1/2]
Using SYBL specifications, we can adapt the application for
achieving the quality/cost/resources elasticity
SYBL runtime adds/removes virtual machines on demand
21. Experiments – Results [2/2]
Application elasticity is a complex property, evolving over time on
multiple dimensions
Cost, Resources and Quality progressively
increase
Cost, Resources and Quality
progressively decrease
When quality is too low
an adaptation
action is triggered by
SYBL strategies
22. CCGRID, 23 May 2013 22
Conclusions and Future Work
We present SYBL and its Runtime as a novel means for
specifying and controlling elasticity
– Wide range of users, applications
– Easy-to-use elasticity specifications
Prototypes
– http://www.infosys.tuwien.ac.at/research/viecom/prototypes.html
Future work
– Extend our implementation of the SYBL runtime stack
– Utilize SYBL for various types of applications
23. CCGRID, 23 May 2013 23
Thanks for your attention!
Georgiana Copil
e.copil@dsg.tuwien.ac.at
http://www.infosys.tuwien.ac.at/staff/ecopil/
Distributed Systems Group
Vienna University of Technology
Austria
24. CCGRID, 23 May 2013 24
References [1/2]
[Dustdar 2011] Schahram Dustdar, Yike Guo, Benjamin Satzger, Hong Linh
Truong: Principles of Elastic Processes. IEEE Internet Computing 15(5): 66-71
(2011)
[Galán 2009] Fermín Galán, Americo Sampaio, Luis Rodero-Merino, Irit Loy, Victor
Gil, and Luis M. Vaquero. 2009. Service specification in cloud environments based
on extensions to open standards. In Proceedings of the Fourth International ICST
Conference on COMmunication System softWAre and middlewaRE (COMSWARE
'09)
[Han 2012] Rui Han, Li Guo, Moustafa M. Ghanem, and Yike Guo. “Lightweight
Resource Scaling for Cloud Applications”. In Proceedings of the 2012 12th
IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid
2012) (CCGRID '12)
[Li 2012] Zheng Li; O'Brien, L.; He Zhang; Cai, R., "On a Catalogue of Metrics for
Evaluating Commercial Cloud Services," 2012 ACM/IEEE 13th International
Conference on Grid Computing (GRID), vol., no., pp.164,173, 20-23 Sept. 2012
25. CCGRID, 23 May 2013 25
References [2/2]
[Martin 2011] Patrick Martin, Andrew Brown, Wendy Powley, Jose Luis Vazquez-
Poletti, "Autonomic management of elastic services in the cloud," Computers and
Communications (ISCC), 2011 IEEE Symposium on , vol., no., pp.135,140, June 28
2011-July 1 2011
[Moran 2011] Daniel Morán, Luis M. Vaquero, and Fermín Galán."Elastically Ruling
the Cloud: Specifying Application's Behavior in Federated Clouds," 2011 IEEE
International Conference on Cloud Computing (CLOUD)
[Sharma 2011] Upendra Sharma, Prashant Shenoy, Sambit Sahu, and Anees
Shaikh. “A Cost-Aware Elasticity Provisioning System for the Cloud”. In Proceedings
of the 2011 31st International Conference on Distributed Computing Systems
(ICDCS '11)
[Tolosana-Calasanz 2012] Rafael Tolosana-Calasanz, José Ángel Bañares,
Congduc Pham, and Omer F. Rana. 2012. Revenue-Based resource management
on shared clouds for heterogenous bursty data streams. In Proceedings of the 9th
international conference on Economics of Grids, Clouds, Systems, and Services
(GECON'12)
Notas del editor
Linh: maybe you can change the headline to stress the "research challenges", e.g., "Complex and high-level elasticity control requirements"
Clarify the relationship between high level elasticity requirements and low level onesLinh: what would be a single statement to emphasize this slide? e.g., complexity of cloud services and elasticity can be applied/occur in all these levels?
Linh: what is a single statement to describe the related work? E.g., too limited? Not enough?
Focus on elasticity specification – show that we propose abstract specification which can be mapped on different languagesLinh: elaborate a bit the approach, but short, e.g., first, second, third.
- stress the benefits-
- stress the benefits-
New Slides about sybl and implementation
Linh: can you use animation to describe steps. the presentation should be better with clear steps. can you also say about the implementation?
Linh: What about thesystem of the experiment?How many machines? Etc.
Linh: “First write down what is the goal?Then here is the way how we supportWhy it is good?”
Linh: “What is the goal? What is the conclusion of the experiment here?”