large-scale distributed systems henrik lagercrantz senior systems architect...

17
Large-Scale Distributed Systems Henrik Lagercrantz Senior Systems Architect [email protected] Bwin poker - a real world example

Post on 18-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

Large-Scale Distributed Systems

Henrik LagercrantzSenior Systems [email protected]

Bwin poker - a real world example

Agenda

•About bwin Games and online poker

•Challenges in a large-scale distributed system

•The P5 poker engine

•Q&A

bwin Games

•Online gaming

•Subsidiary of bwin AG

•~400 employees in Sthlm

•Focus on online poker

Online Poker

Some Numbers

•14 million registered customers

•45k players online at peak

•800k player sessions per day

•7 million poker rounds played per day

•28 million poker hands dealt per day

Complexity

The Domain Model

Poker

NetworkOperator

Poker Round

PokerRing Game

PokerTournament

PokerLobby

NetworkGames

Gaming Portal

SkillGames

CasinoGames

PokerTable

Player

Wallet

OtherGames

Payment Provider

Game Round

GameRound

*

**

* *

*

*

*

**

*

1

1* *

1

LegendNetwork

Poker

Outside main domain

Operator

3rd Party Games

Handshake Quiz

Request req = awaitRequest()

boolean auth = authenticate(req)

if (auth)

send(new LoginOk())

activateEncryption()

else

send(new LoginFailed())

send(new LoginRequest(“apa”))

LoginResponse resp = awaitResponse()

if (isLoginOk(resp))

activateEncryption()

send(new Message(“hello!”))

else

print(“doh!”)

The ServerThe Client

What’s wrong with this code?

Requirements

•Handle 100k concurrent players

•99.9% availability

•Wide range of integration scenarios

•Operator diversification

•High security standards

•Support regulatory constraints

•Highly maintainable

•…

CAP Theorem

•Consistency

•Availability

•Partition-tolerance

Functional Decomposition

Start decomposing…

•Find a table

•View ongoing games

•Play poker

•Chat

•Process completed rounds

•Route client/server communication

•Register for a tournament

•Create & schedule a new tournament

•…

P5 System Overview

Gaming Frontend Proxy

PokerGame Engine

ChatServer

... ...Gaming

FrontendService Registry

GameHistory

Poker Core Poker Add-on

TournamentScheduler

HandProcessor

TournamentPlanner

TournamentOrganizer

TransactionSystem

PlayerInformation

OperatorInformation

BouncerOnlineFraud

...

...

Stats

Gaming Backend

Gaming Frontend

Ga

tew

ay

P5

PlatformOPAPI

PokerOPAPI

OIQ

PokerBackoffice

PlatformBackoffice

Backoffice Op. Integration

Platform

CustomIntegration

Layer

PokerSupport

Tools

Poker Client

History Service Example

Q&A

Summary

•Differentiate between essential complexity and accidental complexity!

•Functional decomposition is key!

•Understand the problem domain

•CAP theorem – “it’s a trade-off”

http://bwingames.se

Henrik LagercrantzSenior Systems [email protected]

For questions regarding internship, thesis work, etc, contact Jonas Rundberg [email protected]

Also feel free to send me (Henrik) email if you have any questions/thoughts/ideas around the technical stuff – [email protected]