$30 off During Our Annual Pro Sale. View Details »

Papers We Love SF - Orleans Distributed Virtual Actors for Programmability & Scalability

Papers We Love SF - Orleans Distributed Virtual Actors for Programmability & Scalability

Orleans is a runtime and programming model for building scalable distributed systems, based on the actor model. The Orleans programming model introduces the abstraction of Virtual Actors. Orleans allows applications to obtain high performance, reliability, and scalability. This technology was developed by the eXtreme Computing Group at Microsoft Research and was a core component of the Azure Services that supported that powered Halo 4, the award winning video game.

Caitie McCaffrey

February 19, 2015
Tweet

More Decks by Caitie McCaffrey

Other Decks in Technology

Transcript

  1. Orleans: Distributed Virtual
    Actors for Programmability
    and Scalability
    Papers We Love #12!
    San Francisco!
    February 19th 2015!

    View Slide

  2. Caitie McCaffrey!
    Distributed Systems Engineer
    @Caitie
    CaitieM.com

    View Slide

  3. Philip A. Bernstein, Sergey Bykov, Alan Geller, Gabriel
    Kliot, Jorgen Thelin
    Orleans: Distributed Virtual
    Actors for Programmability
    and Scalability
    eXtreme Computing Group MSR

    View Slide

  4. View Slide

  5. Orleans: a Framework for Cloud Computing
    Orleans: Cloud Computing for Everyone
    Orleans: Distributed Virtual Actors for
    Programmability & Scalability
    November 30th 2010
    October 2011
    March 2014

    View Slide

  6. The Actor Model
    A framework & basis for reasoning about concurrency
    A Universal Modular Actor Formalism for Artificial Intelligence !
    Carl Hewitt, Peter Bishop, Richard Steiger (1973)

    View Slide

  7. Actor Actions
    • Send a Message
    • Create New Actors
    • Designate the Behavior to be used on
    the next Message

    View Slide

  8. Orleans
    “Orleans is a runtime and
    programming model for
    building distributed systems,
    based on the actor model”

    View Slide

  9. Virtual Actors
    “An Orleans actor always exists, virtually. It
    cannot be explicitly created or destroyed”

    View Slide

  10. Virtual Actors
    • Perpetual Existence
    • Automatic Instantiation
    • Location Transparency
    • Automatic Scale out

    View Slide

  11. Runtime
    • Messaging
    • Hosting
    • Execution

    View Slide

  12. Programming Model
    • .NET Framework!
    • Actor Interfaces!
    • Promises!
    • Actor References
    • Turns
    • Persistence

    View Slide

  13. View Slide

  14. Programming Model
    • .NET Framework
    • Actor Interfaces
    • Promises
    • Actor References!
    • Turns
    • Persistence

    View Slide

  15. View Slide

  16. Programming Model
    • .NET Framework
    • Actor Interfaces
    • Promises
    • Actor References
    • Turns!
    • Persistence

    View Slide

  17. View Slide

  18. Reliability
    “Orleans manages all aspects of reliability automatically”

    View Slide

  19. TOO!

    View Slide

  20. View Slide

  21. TOO!

    View Slide

  22. TOO!

    View Slide

  23. Isolation

    View Slide

  24. Messaging
    Guarantees

    View Slide

  25. Let’s Talk About CAP

    View Slide

  26. Orleans is AP

    View Slide

  27. Halo 4: Statistics
    Service

    View Slide

  28. View Slide

  29. Halo 4: Presence
    Service

    View Slide

  30. View Slide

  31. Performance &
    Scalability

    View Slide

  32. “Orleans applications run at very high CPU
    Utilization. We have run load tests with full
    saturation of 25 servers for many days at 90%+
    CPU utilization without any instability”

    View Slide

  33. View Slide

  34. View Slide

  35. Conclusion
    • Virtual Actors
    • AP Actor Activation
    • Developer Productivity

    View Slide

  36. Get Orleans
    https://github.com/dotnet/orleans!




    View Slide

  37. Discussion

    View Slide