Presentation given in International Conference on Cloud Engineering (IC2E), IEEE, Berlin, Germany, 4-8 April, 2016.
Paper accessible on my website http://www.infosys.tuwien.ac.at/staff/dmoldovan/
Scalable applications deployed in public clouds can be built from a combination of custom software components and public cloud services. To meet performance and/or cost requirements, such applications can scale-out/in their components during run-time. When higher performance is required, new component instances can be deployed on newly allocated cloud services (e.g., virtual machines). When the instances are no longer needed, their services can be deallocated to decrease cost. However, public cloud services are usually billed over predefined time and/or usage intervals, e.g., per hour, per GB of I/O. Thus, it might not be cost efficient to scale-in public cloud applications at any moment in time, without considering their billing cycles.
In this work we aid developers of scalable applications for public clouds to monitor their costs, and develop cost-aware scalability controllers. We introduce a model for capturing the pricing schemes of cloud services. Based on the model we determine and evaluate the application's costs depending on its used cloud services and their billing cycles. We further evaluate cost efficiency of cloud applications, analyzing which application component is cost efficient to deallocate and when. We integrate our approach in a platform for cost-aware scalability of applications running in public clouds. We evaluate our approach on a scalable platform for IoT, deployed in Flexiant, one of the leading European public cloud providers. We show that cost-aware scalability can achieve higher application stability and performance, while reducing its operation costs.
Cost-aware scalability of applications in public clouds
1. Daniel Moldovan
Hong-Linh Truong, Schahram Dustdar
Cost-aware scalability of applications in
public clouds
Distributed Systems Group (http://dsg.tuwien.ac.at/)
Vienna University of Technology (http://www.tuwien.ac.at/)
International Conference on Cloud Engineering, IC2E 2016, IEEE
Berlin, Germany, 4-8 April, 2016
2. Motivating Scenario
Elastic cloud platform for smart environments (1/3)
Context
Company offering services for maintenance of smart environments
E.g., buildings or vehicle fleets
Application
Cloud-based application storing, retrieving and analyzing data collected from sensors
Elasticity through Horizontal Scalability
Unpredictable load
Adapt to varying demand, and keep operating costs down for price competitiveness.
2
Design time view of Data-as-a-Service cloud system for IoT
3. Motivating Scenario
Elastic cloud platform for smart environments (2/3)
Horizontally Scalable Components
Local Data Processing
Event Processing
Data Node
3
Data-as-a-Service elastic cloud system for IoT with elasticity capabilities
To make an application elastic, elasticity
capabilities need to be implemented and provided
for application components.
4. Motivation
Elastic cloud platform for smart environments (3/3)
4
Time
Load
Time
Performance
Cost
Time
Time
Used cloud services count
Driving factor for Scale Out
Driving factor for Scale In
An elastic application must be able to add/remove cloud services on demand.
Scaling Out/Up is usually due to performance-related issues.
Scale In/Down however is usually motivated by cost issues.
5. Motivation
Cost Complexity: Configuration of used cloud services
5
Used cloud offered services
Example: Data Node deployed on Amazon EC2
When deploying applications in public clouds, cost can be
very complex.
Even a single application component, on Amazon might
use a VM service, a Storage service, Monitoring and
Network services, all billed and paid differently.
6. 6
Motivation
Cost Complexity: Cloud provider pricing scheme
Example: Flexiant Cloud pricing scheme
With few exceptions, cloud pricing schemes can also be complex, costs being reported over different
metrics, with respect to certain usage or reservation time intervals.
9. Evaluating Costs of Elastic Applications
Modelling cloud pricing schemes
9
Flexiant Cloud pricing scheme
We define a model for capturing pricing schemes of public cloud providers.
10. 10
Evaluating Costs of Elastic Applications
Cloud pricing scheme fluent API
We introduce a fluent API for describing pricing schemes of any complexity.
12. 12
Evaluating Costs of Elastic Applications
Managing application structure
We introduce a fluent API for describing the structure of elastic applications in terms of
application components and cloud services used by each component
The resource and quality properties are needed because on some cloud providers you can allocate one
cloud service with different extra options at different cost.
For example on Amazon, you can allocate on VM type with or without EBS support, at different cost.
13. 13
Evaluating Costs of Elastic Applications
Example: Elastic cloud platform for smart environments on Flexiant
Visualization generated by our tool of one application tier,
with the cloud services used by each application component.
15. Motivation
Required monitoring information to compute cost
15
To compute costs for individual application components, the necessary monitoring information
according to the billing metrics must be collected and structured.
16. Background: Monitoring Elastic Cloud Applications
MELA: Structuring monitoring information
16
…
Data Node UnitData Node Unit
Data Controller
Unit
Data Controller
Unit
Data End
Topology
Data End
Topology
…
Event Processing
Topology
Event Processing
Topology
Elastic
DaaS
Elastic
DaaS
…
Unit InstanceUnit Instance
Unit InstanceUnit Instance
m
m
Custom metric aggregation and structuring
<rule> := operation "=>" metric
<operation>:= operator "(" operand { "," operand } ")"
<operator> := "+"|"-"|"*"|"/"|"AVG"|"MAX"|"MIN“
|"CONCAT"|"FIRST"|"LAST"|"SET"
<operand> := metric | number | string
Daniel Moldovan , Georgiana Copil, Hong-Linh Truong, Schahram Dustdar, "MELA: Monitoring and Analyzing Elasticity of Cloud Services
", 5'th International Conference on Cloud Computing Technology and Science (CloudCom). Bristol, UK, 2-5 December, 2013.
Daniel Moldovan , Georgiana Copil, Hong-Linh Truong, Schahram Dustdar, "MELA: Monitoring and Analyzing Elasticity of Cloud Services
", 5'th International Conference on Cloud Computing Technology and Science (CloudCom). Bristol, UK, 2-5 December, 2013.
We use our previous work to structure monitoring information and select what metrics to
collect, as a means of enabling detailed costs analysis.
17. Background: Monitoring Elastic Cloud Applications
Multi-level Monitoring Snapshot
17
With our approach we can structure, enrich and aggregate monitoring information, useful especially
considering that elastic applications will have multiple instances of their components.
19. 19
Evaluating Costs of Scalable Cloud Applications
Experiments: Elastic cloud platform for smart environments on Flexiant
20. Evaluating Costs of Scalable Cloud Applications
Experiments: Elastic cloud platform cost composition (1/2)
20
Combining monitoring data structuring and our cost model, we can compute a hierarchic cost
decomposition.
23. Service instance j
Costs Analysis and Cost-aware Control
Cost efficiency of scalable applications: billing fragmentation
23
Cost efficiency
if scaled IN (%)
Time/Usage
Service instance i
100
0
Billing Cycle (e.g., /hour, or /GB of IO)
Scale IN: service instance deallocation
Scale OUT: service instance allocation
Public clouds usually bill rounding up certain usage units (E.g., 1 hour, 1 GB)
When scaling in applications in public clouds, one must understand which application component instance
is more cost efficient (i.e. used) to scale in, so we do not deallocate paidfor but unused resources.
24. Costs Analysis and Cost-aware Control
Cost efficiency of scalable applications: cost efficiency formula
24
25. Costs Analysis and Cost-aware Control
Experiments: Cost-aware scalability of Event Processing Unit on Flexiant
25
26. Costs Analysis and Cost-aware Control
Experiments: Cost efficiency of Event Processing Unit VM on Flexiant
26
27. Costs Analysis and Cost-aware Control
Experiments: Cost efficiency of Event Processing Unit VMs on Flexiant
27
Costefficiencyifdeallocated(%)
Scale IN Scale IN
Scale OUT
Scale OUT
29. Costs Analysis and Cost-aware Control
Experiments: Cost-aware scalability of Event Processing Unit (1/2)
Cost Efficiency Comparison of Scale In Strategies
Scale in every 45 minutes
2 Cost agnostic strategies: scale in Last/First added
2 Cost-driven strategies: scale in based on Reservation Cycle/ Overall Cost Efficiency
29
30. Costs Analysis and Cost-aware Control
Experiments: Cost-aware scalability of Event Processing Unit (2/2)
Cost Efficiency Comparison of Scale In Strategies
Random 1-3 scale-in/scale-out requests at random time intervals between 30-60 minutes
Best cost-agnostic strategy: Deallocating last Added
Best cost-aware strategy: Deallocating if Cost Efficiency > 80%
30
Number of event processing instances under cost-aware and cost-agnostic scalability
31. Costs Analysis and Cost-aware Control
Conclusions
Research question
How can scalable applications running in public clouds be controlled in a cost efficient
manner?
Objective
Improve cost efficiency of scalable applications running in public clouds
Approach
Concepts of Composite Cost and Cost efficiency of scalable applications
Model for capturing cloud pricing schemes
Algorithms for analyzing composite cost and cost efficiency of cloud applications
Framework/Tools
MELA: Monitoring and analyzing elasticity of cloud applications (http://tuwiendsg.github.io/MELA/)
31
Work partially supported by the European Commission in terms of the CELAR FP7 project (http://www.celarcloud.eu/
)
Distributed Systems Group (http://dsg.tuwien.ac.at/)
Vienna University of Technology (http://www.tuwien.ac.at/)