25
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

SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

Embed Size (px)

DESCRIPTION

Presentation given at CCGRID, May 2013 Abstract: Elasticity in cloud computing is a complex problem, regarding not only resource elasticity but also quality and cost elasticity, and most importantly, the relations among the three. Therefore, existing support for controlling elasticity in complex applications, focusing solely on resource scaling, is not adequate. In this paper we present SYBL - a novel language for controlling elasticity in cloud applications - and its runtime system. SYBL allows specifying in detail elasticity monitoring, constraints, and strategies at different levels of cloud applications, including the whole application, application component, and within application component code. Based on simple SYBL elasticity directives, our runtime system will perform complex elasticity controls for the client, by leveraging underlying cloud monitoring and resource management APIs. We also present a prototype implementation and experiments illustrating how SYBL can be used in real-world scenarios.

Citation preview

Page 1: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

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

Page 2: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 2

Overview

Motivation Elasticity Requirements Specification Approach SYBL

– Language Constructs– Examples of Elasticity Controls

SYBL Runtime Experiments Conclusions and Future Work

Page 3: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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%.”

Page 4: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

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…”

Page 5: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 6: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 7: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 8: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 9: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 9

Main concepts used in SYBL [1/4]

„Monitoring“– Directive for describing what needs to be monitored

and under what conditions

Page 10: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 10

Main concepts used in SYBL [2/4]

„Constraint“– Directive for describing what needs to true and under

what conditions

Page 11: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 11

Main concepts used in SYBL [3/4]

„Strategy“– Directive for describing how to achieve certain goals

and under what conditions

Page 12: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 12

Main concepts used in SYBL [4/4]

Other constructs: predefined functions and environment variables

Page 13: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 14: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 14

Examples of SYBL Elasticity Controls

SYBL elasticity requirements – cloud customer

Possible conflict?• Cost targeted by

different users at different levels

• Different constraints

No conflict• Cost at application

level ≠ Cost at component level ≠

Cost at programming level

Page 15: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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)

– ...

Page 16: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 16

SYBL Runtime1. SYBL directives inserted in application

2. The SYBL elasticity requirements are captured andtransformed into calls towards the Local Service

3. The elasticity requirements are enforced locally if possible, otherwise they are sent to the Control Service

4. The Cloud Service uses the Monitoringand Enforcement API for communicatingwith Cloud APIs and Monitoring tools

Page 17: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 18: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 19: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 19

Experiments – SYBL Elasticity Requirements Description [2/2]

Goal: fine-grained elasticity requirements specification at programming level

Page 20: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

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

Page 21: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

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 bySYBL strategies

Page 22: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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/prototy

pes.html Future work

– Extend our implementation of the SYBL runtime stack– Utilize SYBL for various types of applications

Page 23: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 23

Thanks for your attention!

Georgiana Copil

[email protected]://www.infosys.tuwien.ac.at/staff/ecopil/

Distributed Systems GroupVienna University of TechnologyAustria

Page 24: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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

Page 25: SYBL: An extensible language for elasticity specifications in cloud applications -- CCGRID2013

CCGRID, April 8, 2023 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)