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
320
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
300
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
760
A Brief History of Distributed Programming: RPC
caitiem20
31
6.5k
Building Scalable Stateful Services
caitiem20
12
1.6k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing for Performance
lara
604
68k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
A Philosophy of Restraint
colly
203
16k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
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