Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Qcon London 2015: Building the Halo 4 Services ...
Search
Caitie McCaffrey
March 05, 2015
1
370
Qcon London 2015: Building the Halo 4 Services with Orleans
Caitie McCaffrey
March 05, 2015
Tweet
Share
More Decks by Caitie McCaffrey
See All by Caitie McCaffrey
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Path Towards Simplifying Consistency in Distributed Systems
caitiem20
1
350
Argus Papers We Love
caitiem20
14
1.2k
The Verification of a Distributed System
caitiem20
22
2.3k
We Hear You Like Papers: Eventual Consistency
caitiem20
14
830
The Verification of a Distributed System
caitiem20
12
800
The Verification of a Distributed System
caitiem20
6
790
A Brief History of Distributed Programming: RPC
caitiem20
31
6.7k
Building Scalable Stateful Services
caitiem20
12
1.7k
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
A Tale of Four Properties
chriscoyier
160
23k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
For a Future-Friendly Web
brad_frost
180
9.9k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Done Done
chrislema
185
16k
Transcript
Building the Halo 4 Services with Orleans Qcon London 2015
Caitie McCaffrey! Distributed Systems Engineer @Caitie CaitieM.com
None
None
Presence Statistics Title Files Cheat Detection User Generated Content
None
None
None
None
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
$220 million in sales ! 1 million players online Day
One
$300 million in sales ! 4 million players online !
31.4 million hours Week One
11.6 million players ! 1.5 billion games ! 270 million
hours Overall
Architectural Challenges
Load Patterns Load Patterns
Azure Worker Roles Azure Table Azure Blob Azure Service Bus
Always Available
Low Latency & High Concurrency
Stateless 3 Tier ! Architecture
Latency Issues
Add A Cache
Concurrency Issues
Data Locality
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)
Send A Message Create a New Actor Change Internal State
State-full Services
Philip A. Bernstein, Sergey Bykov, Alan Geller, Gabriel Kliot, Jorgen
Thelin Orleans: Distributed Virtual Actors for Programmability and Scalability eXtreme Computing Group MSR
“Orleans is a runtime and programming model for building distributed
systems, based on the actor model”
Virtual Actors “An Orleans actor always exists, virtually. It cannot
be explicitly created or destroyed”
Virtual Actors • Perpetual Existence • Automatic Instantiation • Location
Transparency • Automatic Scale out
Runtime • Messaging • Hosting • Execution
Messaging Guarantees
Let’s Talk About CAP
Orleans is AP
Programming Model • .NET Framework! • Actor Interfaces! • Promises!
• Actor References • Turns • Persistence
None
Programming Model • .NET Framework • Actor Interfaces • Promises
• Actor References! • Turns • Persistence
None
Programming Model • .NET Framework • Actor Interfaces • Promises
• Actor References • Turns! • Persistence
None
Reliability “Orleans manages all aspects of reliability automatically”
TOO!
None
TOO!
TOO!
Orleans & Halo
None
Halo 4: Statistics Service
Player Grain
Game Grain
None
Performance & Scalability
“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”
None
Programmer Productivity & Performance
Get Orleans https://github.com/dotnet/orleans!
Questions @Caitie