eve: verifying correct execution of cloud-hosted web ... · app engine service operational and...

31
EVE: verifying correct execution of cloud-hosted web applications Suman Jana Vitaly Shmatikov The University of Texas at Austin

Upload: others

Post on 27-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: verifying correct execution of cloud-hosted web applications

Suman Jana Vitaly Shmatikov

The University of Texas at Austin

Page 2: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Running interactive web-apps in the cloud

Page 3: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Running interactive web-apps in the cloud

Page 4: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Running interactive web-apps in the cloud

Page 5: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Low visibility in the cloud

Page 6: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Availability is not correctness

“Google will make commercially reasonable efforts to keep the App Engine service operational and available to customer at least

99.95% of the time in a monthly billing cycle”

Page 7: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Availability is not correctness

“Google will make commercially reasonable efforts to keep the App Engine service operational and available to customer at least

99.95% of the time in a monthly billing cycle”

can be anywhere in this plane

Page 8: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Errors can be transient

Page 9: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Errors can be transient

Page 10: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Errors can be transient

inconsistent tax records!!

Page 11: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

continuously monitor correctness of cloud execution

Requirement

Page 12: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

verifying correct execution of an arbitrary application is hard !

Page 13: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

What is common between these web-apps ?

What kind of apps run on cloud ?

Page 14: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

What is common between these web-apps ?

What kind of apps run on cloud ?

web clientsweb-applogic

data-store

web clientsweb clients

thin and stateless

Page 15: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Correctness of web-app ops

Thou shalt always think of web-app operations in terms of data-

store operations !

Page 16: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Consistency of data-store ops

Thou shalt always think of web-app operations in terms of data-

store operations !

Page 17: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Web app ops as data-store ops

Page 18: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Web app ops as data-store ops

Page 19: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Web app ops as data-store opsall faults appear as

consistency violations

Page 20: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: collaborative verification

Page 21: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: collaborative verification

witness

witness

Page 22: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: collaborative verification

witness

witness

Page 23: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: collaborative verification

verifier

witness

witnesserror?

Page 24: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: collaborative verification

verifier

error?

streaming consistency verification algorithm

Page 25: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

EVE: different use cases

Ensure that a web-app is running correctly in a particular cloud

Check how well a web-app scales in a particular cloud

Compare quality of service (QoS) from different cloud providers

Page 27: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Auto generate data-store ops

web-applogic

data-store

Page 28: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Auto generate data-store ops

web-applogic

data-store

genericSQL-like interface

Page 29: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

Auto generate data-store ops

web-applogic

data-store

genericSQL-like interface

Page 30: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

data-store specific

wrappers

Auto generate data-store ops

web-applogic

data-store

Page 31: EVE: verifying correct execution of cloud-hosted web ... · App Engine service operational and available to customer at least 99.95% of the time in a monthly billing cycle” Availability

log generating wrappers

Auto generate data-store ops

web-applogic

data-store

verifier