AND COLD DATA → APP-LEVEL SHARDING → SERVERS ON BARE METAL → IN-MEMORY KEY-VALUE STORAGE → PERSISTENT → ONLY HOT DATA → APP-LEVEL SHARDING → SERVERS ON BARE METAL + CASSANDRA FOR AN INTERNAL SERVICE
USER BEHAVIOR 3. START WITH THE “HAPPY CASE” 4. LOAD TESTING INSIDE DEV TEAM 5. REAL-TIME MONITORING OF SERVERS 6. ENSURE FAST TURNAROUND TIMES FOR CODE 7. MINIMIZE SUBSYSTEMS THAT NEED TESTING
→ DISTRIBUTED → CAN SIMULATE MILLIONS OF USERS → ADJUST LOAD RUN-TIME → BUILT IN PYTHON → WE RUN LOCUST ON AMAZON’S CLOUD, EC2 → ~40 SERVERS → PAY PER HOUR → ENABLES RAPID SCALE UP/DOWN OF TESTS LOCUST AN OPEN SOURCE LOAD TESTING TOOL FROM ESN
ORIGIN FRIENDS USER PRESENCE AND FRIEND RELATIONS BLAZE GAME SERVERS AND PLAYER STATS MOCKLEUS READ-ONLY MOCK SERVER AMIGO READ-ONLY MOCK SERVER BLAZE NOT YET
AS REST OF DEV TEAM → ENSURE QUICK BUILDS IN BUILD SERVER → IN OUR CASE, LESS THAN 10 MINUTES → WE USE TORRENTS TO DEPLOY BUILDS TO +100 SERVERS → TAKES LESS THAN 2 MINUTES FOR 800 MB BUILDS
KNOW THEIR PERFORMANCE CHARACTERISTICS → KNOW HOW TO SCALE THEM OUT → SERVICES WE DIDN’T RE-TEST FOR BF4 → BEACONPUSH – USER PRESENCE → SERAPHINE – GAME SERVER INDEX → MYSQL, MEMCACHED AND SO ON