The outcome of any sporting event inevitably comes down to pivotal moments, when intense bursts of action determine triumph or agony. In our own experience, creating a fan engagement platform that provides real-time game experiences (and allows fans to impact live sporting or entertainment events), we discovered that building an infrastructure capable of thriving in moments of intense usage was particularly crucial. The answer to realizing such a solution lay in implementing infrastructure-as-code and leveraging a combination of AWS and Kubernetes.
We developed Your Call Football, an interactive experience giving fans a say in which offensive plays coaches call during a live football game, as the initial iteration of our platform. On each down of the game, fans using the Your Call Football mobile app receive three potential plays selected by the coach and vote on which one they think should be executed by the players on the field. The fan-majority voted play is then run. Fans also receive points, in real-time, based on voting and the effectiveness of the plays they called (and could win cash prizes for achieving high scores).
Developing highly responsive, real-time functionality required overcoming some particularly critical technical hurdles. In practice, the Your Call Football application needed to be ready to handle 100,000 simultaneous users for the duration of each week’s football game—while receiving very little traffic the rest of the week. Even more concerning, all users enter their votes within the same 10-second time windows before each play is determined, further concentrating traffic into very brief spikes of extreme usage, which would then repeat approximately 100 times during the game. At the same time, the ability to reliably deliver these fully responsive user experiences was absolutely make or break for our success; any lag or unfulfilled requests in the interface could cause fans to lose out on prize money—and us to lose our audience.
Overcoming these challenges also required a solution provider strategy. We enlisted assistance from our app development partners at Cantina to help build the Your Call Football application, architecture and game logic. To provide specific expertise in meeting our infrastructure needs, Cantina then brought on the AWS partner Mission to apply its domain knowledge, creating highly available and scalable AWS cloud environments for entertainment applications.
The managed AWS provider then began work to introduce infrastructure-as-code, defining the AWS networks, servers and services used with coded language to produce an automated way of quickly deploying and managing infrastructure. Doing so enabled the rapid implementation of additional infrastructural components. Collectively, we then decided to use Kubernetes as an alternative to AWS’ own Elastic Container Service, due to Kubernetes’ advantages operating at higher scale, offering more robust configuration options and simply making it faster and simpler to get clusters up and running. This was also due to the fact that the first season of Your Call Football games occurred in early 2018, before Amazon EKS was available. Our original infrastructure leveraged kops to make Terraform templates for creating clusters and deploying Kubernetes on an EC2 instance. This required those master nodes to be managed and scaled out independently but had the advantage of automating rollouts of the continuous changes made as development progressed. As our managed provider was looking for opportunities for improvement following the first Your Call Football season, EKS became available and our Kubernetes clusters were migrated and consolidated into a single Amazon EKS cluster, resulting in superior performance.
When it came to selecting the optimal EC2 instance for Your Call Football, our AWS provider also conducted extensive research and benchmarking to determine that the R4.large EC2 instance type was the optimal choice, outperforming our previously used T2s while delivering better networking as well.
For the cloud database, Amazon RDS was selected as a capable option, providing the high performance and versatility this project called for. To guarantee that in-memory data would be deployed to each member of our vast audience without any issues, Mission also recommended implementing ElastiCache, ensuring data availability throughout the massive repeating spikes in activity caused by play call voting. Whereas in testing the database would experience bottlenecks without the cache in front of it, now each Your Call Football game session is stored into ElastiCache, alleviating a great deal of pressure on the database. Rounding out our infrastructure strategy, we also used the Elastic Beanstalk orchestration service and, finally, an elastic load balancing system built to enable load balancers ahead of those intense load spikes, adding another safeguard to make sure the user experience we delivered matched our intentions.
As a result of this infrastructure strategy, Your Call Football enjoyed a successful launch, delivering a unique experience to many thousands of fans in real-time, with no issues whatsoever even during peak activity. Based on this proof of concept, the Your Call platform now utilizes this same proven infrastructure strategy and is prepared to facilitate fan engagement with live events at just about any scale and level of performance required.