Our names are Kyle Allan and Carl Quinn, and we work on the infrastructure team here at Riot. Welcome to the second blog post in our multi-part series describing in detail how we deploy and operate backend features around the globe. In this post, we are going to dive into the first core component of the deployment ecosystem: container scheduling.
Articles tagged: infrastructure
My name is Jonathan McCaffrey and I work on the infrastructure team here at Riot. This is the first post in a series where we’ll go deep on how we deploy and operate backend features around the globe. Before we dive into the technical details, it’s important to understand how Rioters think about feature development. Player value is paramount at Riot, and development teams often work directly with the player community to inform features and improvements.
Over the past several months I’ve published six articles that discuss using Docker and Jenkins to containerize a build farm. Recently, I went on the road to tell the story at DockerCon 2016 and gathered a tremendous amount of amazing feedback. In fact, the best part of this whole experience has been the conversations we’re having with folks encountering similar challenges. In this short post, I’d like to accomplish two things: share the video of my DockerCon talk, and respond to requests we’ve received to consolidate my articles into a single place.
Over my last two posts, I’ve talked about the challenges facing real-time applications like League that arise from the internet’s architecture, and how Riot is tackling some of those challenges by creating our own network. In this post, I’d like to look forward - what’s next, and how can we collectively get there? This topic has inspired a lot of reflection on my own experience building networks, and has galvanized my perspective that things are changing for the better.
Back in 2014, the Riot Direct team started a journey to provide a better League of Legends experience through network improvements. We started to look at the internet not as an inexhaustible resource, but as a limited system that had to be managed and scaled correctly.
This is the in-depth tutorial for the discussion started here about creating a build farm using Jenkins with Docker containers as the build slaves. When we’re done, you should have a fully functional Jenkins environment that provisions build slaves dynamically running on your local environment and ready for you to productionize.
In this tutorial, you’ll learn:
Various approaches to running builds with Jenkins inside of Containers
Which decisions we made as a team and why
Lessons we learned while operating our platform
Context for the in depth tutorial about how to create your own ephemeral build environments using Jenkins
In my last post I talked about how the internet is far from ideal for real-time applications like League of Legends and how the resulting latency and packet loss make for frustrating real-time game experiences. The next logical question is, “OK, Peyton, what do we do about it?”
In this tutorial, you’ll learn:
League of Legends is not a game of seconds, but of milliseconds. In day-to-day life, two seconds fly by unnoticed—you took two seconds reading that! In-game, however, a two-second stun can feel like an absolute eternity. In any single match of LoL, thousands of decisions made in milliseconds dictate which team scores bragging rights and which settles for “honorable opponent” points.