+ All Categories
Home > Technology > Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Date post: 01-Jun-2015
Category:
Upload: nimak
View: 99 times
Download: 4 times
Share this document with a friend
Popular Tags:
40
Cross-Tier Application & Data Partitioning of Web Applications for Hybrid Cloud Deployment Nima Kaviani Eric Wohlstadter Rodger Lea 1
Transcript
Page 1: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Cross-Tier Application & Data Partitioning of Web Applications

for Hybrid Cloud Deployment

Nima Kaviani Eric Wohlstadter

Rodger Lea

1

Page 2: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Cloud Computing

• Virtualization• Multi-tenancy• Scalability• Cheaper Deployments

However …Loss of controlRegulations (HIPAA, PCI)AuditingOutages…

2

Page 3: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Cloud Computing

• Virtualization• Multi-tenancy• Scalability• Cheaper Deployments

However …Loss of controlRegulations (HIPAA, PCI)AuditingOutages…

3

Page 4: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture

4

Page 5: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Software = Code + Data

5

Page 6: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Data Placement Constraints

6

Page 7: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Code Placement Constraints

7

Page 8: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Inter code/data placement constraints

8

Page 9: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Trade-off cross-cuts the system

Trade-off between Cost and Control

CHALLENGE…

9

Page 10: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• OLTP-style Web Applications

Trade-off between Cost and Control

CHALLENGE…

10

Page 11: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• OLTP-style Web Applications

Trade-off between Cost and Control

CHALLENGE…

11

Code = Software FunctionsData= Database Tables

Page 12: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Related Work

12

Page 13: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

19

Partitioning Problem

Integer ProgrammingLibrary

Premise

Monolithic Profiling

Cloud

Page 14: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Application Partitioning

CodeProfiling Application-

Tier BIP

BIP Solver

Code PlacementMANTICORE

Nima Kaviani, Eric Wohlstadter, Rodger Lea. MANTICORE: a Framework for Partitioning Software Services for Hybrid Cloud. In Proceedings of the 4th IEEE International Conference on Cloud Computing Technologies and Science, December 2012, Taipei, Taiwan, pages 333-340.

20

Page 15: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Cross-tier Partitioning

CodeProfiling Application-

Tier BIP

BIP Solver

Code PlacementMANTICORE

21

Page 16: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Cross-tier Partitioning

CodeProfiling Application-

Tier BIP

EXPLAINPLAN

CreateObjectiveFunction

CreateConstraints

Join Orders

Combined Partitioning

Solver

Code Placement

Table Placement

22

Page 17: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Data-tier Partitioning

23

Engineers know: Database knows:

• Code and data dependencies• Data placement constraints

• Inter-data dependencies• Query cost models

Model the combined knowledge & Solve it!

Page 18: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id

24

AppTierAppTier

DataTierDataTier

Request

Query

Page 19: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id

doGetUserStock

getUserInfo

executeQuery

renderHTML

ha

p userprofile (p)

holdings (h)account (a)

25

AppTierAppTier

DataTierDataTier

Request

Query

Page 20: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id(USER DATA ON PREMISE)

doGetUserStock

getUserInfo

executeQuery

renderHTML

ha

p userprofile (p)

holdings (h)account (a)

USER DATA: Constrained to be on premise

26

Page 21: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Intra-Query Dependencies

ha

p

pa

h

Local Execution

Pull up user information and Stock holdings for every user

27

doGetUserStock

getUserInfo

executeQuery

renderHTMLTwo choices

1.How bad would it be if we move or not move holding table to the cloud

2.How bad would it be if we join accounte and userporfile tables first

Page 22: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Intra-Query Dependencies

ha

p

pa

h

Pull up user information and Stock holdings for every user

Two cuts /two round-trips

Approach 1: Keep sensitive data on private premise

28

doGetUserStock

getUserInfo

executeQuery

renderHTML

Page 23: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Intra-Query Dependencies

ha

p

pa

h

Pull up user information and Stock holdings for every user

More premiseresource usage

Approach 2: Push everything to private premise

29

doGetUserStock

getUserInfo

executeQuery

renderHTML

Page 24: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Intra-Query Dependencies

ha

p

pa

h

Alternative Execution

Approach 3: Findalternative plans

1. One cut / less round-trip2. Less premise resource usage

30

doGetUserStock

getUserInfo

executeQuery

renderHTML

Page 25: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Data Dependency Analysis

1. Analyze Alternative Plans2. Collect Data on Every Plan3. Create Mathematical Model

1. Define BIP Constraints2. Define BIP Objective

4. Combine with Code Partitioning

31

Page 26: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

1. Analyze Alternative Plans

Problem: Find performance for various plans

Solution:-Improve complexity

- Encode 2M alternative plans

- M is the number of tables in a plan

- M < 10

- M stable with the application size

- O (Q x 2M) vs. O (2N)

Straw man 1:-Try all 2N placements for tables

-N >> 10 and grows with the application size

Straw man 2:-Have all the analysis on one machine

-Inapplicable data

32

Page 27: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

2. Use EXPLAIN PLAN for Profiling

EXPLAIN PLAN FOR SELECT p.*, h.* FROM

holding h, accountprofile p,

account a WHERE

h.accountid = a.accountid AND

a.userid = p.userid AND h.quote_symbol = ? AND

a.accountid = ?

34

Page 28: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Creating the Mathematical Model

• Encode join alternatives• Encode placement of tables in a join• Encode the objective–Minimizing cost –Minimizing performance

38

Page 29: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

4. Combine with Code Partitioning

39

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

Combining objectives and constraints:

Page 30: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Generate the Results

Code on premiseCode in the cloud

Data on premiseData in the cloud

40

Page 31: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation• Apache Day Trader – Open Source Trading Web App

• RUBiS – Open Source Auctioning Web App

• 2 Premise Machines

– Database Machine (2.5GHz dual core, 4GB RAM)

– Application Server (3.5GHz dual core, 4GB RAM)

• Cloud Instance– Amazon West Region (Oregon)

2 EC2 Large Compute Units

• User sensitive tables are pinned to the premise– Account & AccountProfile tables for Apache Day Trader

– Users table for RUBiS

• 15ms latency

41

Page 32: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation - Deployments

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

Private Premise42

Page 33: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation - Deployments

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

Private Premise Naïve Hybrid43

Page 34: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation - Deployments

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

Code Split44

Page 35: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation - Deployments

doGetUserStock

getUserInfo

executeQuery

renderHTML

ha

p userprofile (p)

holdings (h)account (a)

doGetUserStock

getUserInfo

executeQuery

renderHTML

pa

h userprofile (p)

holdings (h)account (a)

Code Split Cross-tier45

Page 36: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation - PerformanceHow is the performance affected with different models of deployment?

46

Cross-Tier deployment exhibits:28 - 56% improvement compared to Naïve-

Hybrid15 - 45% improvement compared to Split-Code

Page 37: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation – Deployment CostsHow is the cost affected with different models of deployment?

47

Cross-Tier deployment exhibits:20 - 54% cheaper than Naïve-Hybrid11 - 29% cheaper than Split-Code

Page 38: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Evaluation – ScalabilityHow is the scalability affected with different models of deployment?

48

Cross-Tier deployment exhibits:best scalability compared to all deploymentsNo performance degradation

Page 39: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Challenges

49

Page 40: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment

Contributions

•Cross-tier partitioning provides options between cost, performance, and privacy

•We solved the combined partitioning problem

•Our evaluations show effectiveness of cross-tier partitioning

50


Recommended