Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qcon London 2015: Building the Halo 4 Services with Orleans

Caitie McCaffrey
March 05, 2015
220

Qcon London 2015: Building the Halo 4 Services with Orleans

Caitie McCaffrey

March 05, 2015
Tweet

Transcript

  1. Building the Halo 4
    Services with Orleans
    Qcon London 2015

    View full-size slide

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

    View full-size slide

  3. Presence
    Statistics
    Title Files
    Cheat Detection
    User Generated Content

    View full-size slide

  4. Halo:CE - 6.43 million
    Halo 2 - 8.49 million
    Halo 3 - 11.87 million
    Halo 3: ODST - 6.22 million
    Halo Reach - 9.52 million

    View full-size slide

  5. $220 million in sales
    !
    1 million players online
    Day One

    View full-size slide

  6. $300 million in sales
    !
    4 million players online
    !
    31.4 million hours
    Week One

    View full-size slide

  7. 11.6 million players
    !
    1.5 billion games
    !
    270 million hours
    Overall

    View full-size slide

  8. Architectural
    Challenges

    View full-size slide

  9. Load Patterns
    Load Patterns

    View full-size slide

  10. Azure Worker Roles
    Azure Table
    Azure Blob
    Azure Service Bus

    View full-size slide

  11. Always Available

    View full-size slide

  12. Low Latency &
    High Concurrency

    View full-size slide

  13. Stateless 3 Tier !
    Architecture

    View full-size slide

  14. Latency Issues

    View full-size slide

  15. Concurrency 

    Issues

    View full-size slide

  16. Data Locality

    View full-size slide

  17. 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 full-size slide

  18. Send A Message
    Create a New Actor
    Change Internal State

    View full-size slide

  19. State-full Services

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. Runtime
    • Messaging
    • Hosting
    • Execution

    View full-size slide

  25. Messaging
    Guarantees

    View full-size slide

  26. Let’s Talk About CAP

    View full-size slide

  27. Orleans is AP

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  32. Orleans & Halo

    View full-size slide

  33. Halo 4: Statistics
    Service

    View full-size slide

  34. Player Grain

    View full-size slide

  35. Performance &
    Scalability

    View full-size slide

  36. “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 full-size slide

  37. Programmer Productivity
    & Performance

    View full-size slide

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




    View full-size slide

  39. Questions
    @Caitie

    View full-size slide