How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

27
Confidential From 0 to 350,000 fans in 5 weeks, how Electronic Arts and Nurun built their E3 presence on Heroku Dreamforce 2015 1

Transcript of How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Page 1: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

From 0 to 350,000 fans in 5 weeks, how Electronic Arts and Nurun built their E3 presence on Heroku

Dreamforce 2015

1

Page 2: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 2 2

Peter Cho Head of Ecosystem Program - Heroku @etcpeter [email protected]

Page 3: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 3

Who am I ?

3

Stéphane Caron Director IT – Nurun Montreal @scaron [email protected]

Page 4: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 4

Nurun Global Network

15 Countries Worldwide

4,000+ Employees

21 Global Practices

AREA OF EXPERTISE Retail Automotive Financial Services Media & Entertainment Fashion & Beauty

Utilities & Education Government Telecommunications Travel & Hospitality Health & Pharma

Born and raised in Montreal

4

Page 5: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 5

Page 6: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 6

•  We served 22 500 000 requests in June •  Over 350 000 uniques in a week, over 200 000 the hour of the event. •  A response time between 200ms to 500ms •  Full page load time between 1.5s to 2s

Why did they come to us?

6

Page 7: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

What kind of architecture you put in place to handle 22,5k concurrent users?

7

Page 8: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

•  You identify bottlenecks and plan accordingly. Dependant on 3rd party data. (very) Short timeline.

•  Infrastructure This should not get in the way.

•  You load test… … and test … … and test it some more.

How can you handle that load?

8 8

Page 9: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

“You have only one chance to make good impression. It made us feel like rock stars.”

9 9

Page 10: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 10

High-Level Architecture

Page 11: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

Technologies Used

11

•  Back-end NodeJS (ExpressJS) Mongo DB

•  Front-end Jade Gulp Spark

•  External Adobe CQ5 (EA’s content) Twitch Spredfast Youtube

•  Hosting / Infrastructure Heroku Fastly Compose.IO

•  Testing jMeter Siege

Page 12: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

How do you test a complex application with many moving parts.

12

Page 13: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

Testing Strategy

•  We planned for failure. •  We gradually tested with more load on the servers

13

* concurrent users using up to 5 Amazon EC2 instances running jMeter. 5k -10k 15k - 20k 25k

Page 14: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 14

“If you don’t test you’re in for trouble”

14

Page 15: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

Was it all smooth?

•  We forgot one try catch in the code •  We forgot to take into account the custom URLs

livetoplay.ea.com/?utm_source=facebook&utm_ medium=cpc&utm_campaing=livetoplay

NO

15

Page 16: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 16

“Imagine 25,000 people walking into your office, with their own requirements”

16

Page 17: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

How do you monitor, using Heroku add-ons

17

Page 18: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 18

•  New relic Used extensively during our testing and live to monitor our Apdex score. Apdex is a standard method for reporting and comparing the performance of software applications in computing.

Logging & Monitoring

Page 19: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

“I think I’m shitting my pants” - Lead NodeJS Dev

19

Page 20: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 20

•  Monitis Used to monitor the services and trigger 24/7 alerts

•  Logentries Used to understand what fails and where.

Logging & Monitoring

Page 21: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 21

Conclusion

Page 22: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 22 22

•  Architecture As decoupled as possible

•  Testing Test as close as the scale as you can

•  Monitoring Whatch those numbers.

What have we covered?

Page 23: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential

•  Real time Managing content in real time can be a little bit tricky. Our client had to adjust during the conference to make sure the publishing was in sync with the Twitch livestream.

•  Statistics o  Over 350 000 uniques in a week, most of them the hour of the event. o  We served 22 500 000 requests in June o  A response time between 200ms to 500ms o  Full page load time between 1.5s to 2s

Conclusion

23

Page 24: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 24

•  Gamescon The platform has been re-used for Gamescom with minor tweak to adapt the UI.

•  Hiccups o  Twitch went down during the event o  We served 157 error pages, that’s an 0,00% overall error rate.

Conclusion

24

Page 25: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 25

Page 26: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Confidential 26

Thank you Questions?

26

Stéphane Caron Director IT – Nurun Montreal @scaron [email protected]

Page 27: How EA Games & Nurun used Node.js on Heroku to reach 350,000 fans during E3 2015

Share Your Feedback, and Win a GoPro!

3 Earn a GoPro prize entry for each completed survey

Tap the bell to take a survey 2 Enroll in a session 1