can cloud computing systems offer high assurance without
play

CAN CLOUD COMPUTING SYSTEMS OFFER HIGH ASSURANCE WITHOUT LOSING KEY - PowerPoint PPT Presentation

1 CAN CLOUD COMPUTING SYSTEMS OFFER HIGH ASSURANCE WITHOUT LOSING KEY CLOUD PROPERTIES? CS6410 Ken Birman, Cornell University High Assurance in Cloud Settings 2 A wave of applications that need high assurance is fast approaching


  1. 1 CAN CLOUD COMPUTING SYSTEMS OFFER HIGH ASSURANCE WITHOUT LOSING KEY CLOUD PROPERTIES? CS6410 Ken Birman, Cornell University

  2. High Assurance in Cloud Settings 2  A wave of applications that need high assurance is fast approaching  Control of the “smart” electric power grid  mHealth applications  Self-driving vehicles….  To run these in the cloud, we’ll need better tools  Today’s cloud is inconsistent and insecure by design  Issues arise at every layer (client… Internet… data center) but we’ll focus on the data center today

  3. Isis 2 System “join update update myGroup” state transfer myGroup 3  Core functionality: groups of objects  … fault-tolerance, speed (parallelism), coordination  Intended for use in very large-scale settings  The local object instance functions as a gateway  Read-only operations performed on local state  Update operations update all the replicas

  4. Isis 2 Functionality 4  We implement a wide range of basic functions  Multicast (many “flavors”) to update replicated data  Multicast “query” to initiate parallel operations and collect the results  Lock-based synchronization  Distributed hash tables  Persistent storage…  Easily integrated with application-specific logic

  5. Example: Cloud-Hosted Service 5 Standard Web-Services method invocation A B C D Some service A distributed request that SafeSend updates group “state”... SafeSend SafeSend ... and the response SafeSend is a version of Paxos.

  6. Isis 2 System 6  C# library (but callable from any .NET language) offering replication techniques for cloud computing developers  Based on a model that fuses virtual synchrony and state machine replication models  Research challenges center on creating protocols that function well despite cloud “events” Elasticity (sudden scale changes) Long scheduling delays, resource contention   Potentially heavily loads Bursts of message loss   High node failure rates Need for very rapid response times   Concurrent (multithreaded) apps Community skeptical of “assurance properties”  

  7. Isis2 makes developer’s life easier 7 Benefits of Using Formal model Importance of Sound Engineering  Isis2 implementation needs to  Formal model permits us to be fast, lean, easy to use, in achieve correctness many ways  Think of Isis2 as a collection of  Developer must see it as easier modules, each with rigorously to use Isis2 than to build from stated properties scratch  These help in debugging  Need great performance under (model checking) “cloudy conditions”

  8. Isis 2 makes developer’s life easier 8 First sets up group  Group g = new Group(“myGroup”); Dictionary<string,double> Values = new Dictionary<string,double>(); g.ViewHandlers += delegate(View v) { Join makes this entity a member.  Console.Title = “myGroup members: “+v.members; State transfer isn’t shown }; g.Handlers[UPDATE] += delegate(string s, double v) { Then can multicast, query. Values[s] = v;  Runtime callbacks to the }; “delegates” as events arrive g.Handlers[LOOKUP] += delegate(string s) { g.Reply(Values[s]); }; Easy to request security  g.Join(); (g.SetSecure), persistence g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the  ordering aseen for event upcalls List<double> resultlist = new List<double>(); and the assumptions user can nr = g.Query(ALL, LOOKUP , “Harry”, EOL, resultlist); make

  9. Isis 2 makes developer’s life easier 9 First sets up group  Group g = new Group(“myGroup”); Dictionary<string,double> Values = new Dictionary<string,double>(); g.ViewHandlers += delegate(View v) { Join makes this entity a member.  Console.Title = “myGroup members: “+v.members; State transfer isn’t shown }; g.Handlers[UPDATE] += delegate(string s, double v) { Then can multicast, query. Values[s] = v;  Runtime callbacks to the }; “delegates” as events arrive g.Handlers[LOOKUP] += delegate(string s) { g.Reply(Values[s]); }; Easy to request security  g.Join(); (g.SetSecure), persistence g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the  ordering seen for event upcalls List<double> resultlist = new List<double>(); and the assumptions user can nr = g.Query(ALL, LOOKUP , “Harry”, EOL, resultlist); make

  10. Isis 2 makes developer’s life easier 10 First sets up group Group g = new Group(“myGroup”);  Dictionary<string,double> Values = new Dictionary<string,double>(); g.ViewHandlers += delegate(View v) { Join makes this entity a  Console.Title = “myGroup members: “+v.members; member. State transfer isn’t }; shown g.Handlers[UPDATE] += delegate(string s, double v) { Values[s] = v; }; Then can multicast, query.  Runtime callbacks to the g.Handlers[LOOKUP] += delegate(string s) { “delegates” as events arrive g.Reply(Values[s]); }; g.Join(); Easy to request security  (g.SetSecure), persistence g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the List<double> resultlist = new List<double>();  ordering seen for event upcalls nr = g.Query(ALL, LOOKUP , “Harry”, EOL, resultlist); and the assumptions user can make

  11. Isis 2 makes developer’s life easier 11 First sets up group  Group g = new Group(“myGroup”); Dictionary<string,double> Values = new Dictionary<string,double>(); g.ViewHandlers += delegate(View v) { Join makes this entity a member.  Console.Title = “myGroup members: “+v.members; State transfer isn’t shown }; g.Handlers[UPDATE] += delegate(string s, double v) { Then can multicast, query. Values[s] = v;  Runtime callbacks to the }; “delegates” as events arrive g.Handlers[LOOKUP] += delegate(string s) { g.Reply(Values[s]); }; Easy to request security  g.Join(); (g.SetSecure), persistence g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the  ordering seen for event upcalls List<double> resultlist = new List<double>(); and the assumptions user can make nr = g.Query(ALL, LOOKUP , “Harry”, EOL, resultlist);

  12. Isis 2 makes developer’s life easier 12 First sets up group  Group g = new Group(“myGroup”); Dictionary<string,double> Values = new Dictionary<string,double>(); g.ViewHandlers += delegate(View v) { Join makes this entity a member.  Console.Title = “myGroup members: “+v.members; State transfer isn’t shown }; g.Handlers[UPDATE] += delegate(string s, double v) { Then can multicast, query. Values[s] = v;  Runtime callbacks to the }; “delegates” as events arrive g.Handlers[LOOKUP] += delegate(string s) { g.Reply(Values[s]); }; Easy to request security  g.Join(); (g.SetSecure), persistence g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the  ordering seen for event upcalls List<double> resultlist = new List<double>(); and the assumptions user can make nr = g.Query(ALL, LOOKUP, “Harry”, EOL, resultlist);

  13. Isis 2 makes developer’s life easier 13 First sets up group  Group g = new Group(“myGroup”); Dictionary<string,double> Values = new Dictionary<string,double>(); Join makes this entity a member. g.ViewHandlers += delegate(View v) {  State transfer isn’t shown Console.Title = “myGroup members: “+v.members; }; g.Handlers[UPDATE] += delegate(string s, double v) { Then can multicast, query. Runtime Values[s] = v;  callbacks to the “delegates” as }; events arrive g.Handlers[LOOKUP] += delegate(string s) { g.Reply(Values[s]); }; Easy to request security,  g.SetSecure(myKey); persistence, tunnelling on TCP... g.Join(); g.SafeSend(UPDATE, “Harry”, 20.75); “Consistency” model dictates the  ordering seen for event upcalls List<double> resultlist = new List<double>(); and the assumptions user can nr = g.Query(ALL, LOOKUP , “Harry”, EOL, resultlist); make

  14. Consistency model: Virtual synchrony meets Paxos (and they live happily ever after…) 14  Membership epochs: begin when a new configuration is installed and reported by delivery of a new “view” and associated state  Protocols run “during” a single epoch: rather than overcome failure, we reconfigure when a failure occurs A=3 B=7 B = B-A A=A+1 Non-replicated reference execution p p q q r r s s t t Time: 0 10 20 30 40 50 60 70 Time: 0 10 20 30 40 50 60 70 Synchronous execution Virtually synchronous execution

  15. Exact comparison 15  What I am calling a synchronous (by which I mean “step by step”) execution actually matches what Paxos offers, but Paxos, as we will see, uses quorum operations to implement this without group views  Virtual synchrony has managed group membership, but also has some optimistic steps (early message delivery, which speeds things up, but it comes at the price of needing to do a “flush” to sync to the network)  Analogy: when you write to a file often the IO system buffers and until you do a file-sync, data might not yet be certain to have reached the disk

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend