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
310
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
330
21k
The Path Towards Simplifying Consistency in Distributed Systems
caitiem20
1
290
Argus Papers We Love
caitiem20
13
1.2k
The Verification of a Distributed System
caitiem20
22
2.2k
We Hear You Like Papers: Eventual Consistency
caitiem20
14
790
The Verification of a Distributed System
caitiem20
12
750
The Verification of a Distributed System
caitiem20
6
750
A Brief History of Distributed Programming: RPC
caitiem20
31
6.5k
Building Scalable Stateful Services
caitiem20
12
1.5k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Docker and Python
trallard
43
3.2k
GitHub's CSS Performance
jonrohan
1030
460k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Typedesign – Prime Four
hannesfritz
40
2.5k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Adopting Sorbet at Scale
ufuk
74
9.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Facilitating Awesome Meetings
lara
51
6.2k
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