What deployment strategy are we using? Are we doing rolling, canary?
TL;DRThey use blue-green for big breaking builds and canary or rolling for hotfixes, and hope to move toward continuous deployment as the project matures, though the stateful game makes this hard.
We do them all. We discussed in the beginning how we do blue-green. Blue-green is usually when we are delivering a lot of breaking changes. A lot of things are like, okay, we cannot have half and half. These things are not going to play nice together. And this is a product currently in development, so we need to get you guys into new stuff so we can see what's going on. From the moment that we publish a big build to a large environment like Live, we can do what we call hotfixes, we can do between 5 and 20 hotfixes. And these are either canary released or rolled. Like in 3.10.0, we canaried six hotfixes for the hub server and we rolled the last one. And that happens in every single aspect. There are areas of the game that can allow for some toggling, where we can toggle features on and off, or hot reloading or hot changes in data. And there are other areas that, because the challenge in running a game in the cloud is the statefulness. The experience between a very immersive game like ours, a game client like ours, and the game server is super stateful. This is a very fragile experience. If you did anything here, you lose that connection. And we are actually always discussing how we can make that less fragile, so people like us do not have so many precious parts of our environments that we cannot touch if the players are on. But we do both. We do canary, we do rolling, and we also initially do a blue-green. Hopefully in the future, as the project matures, we start dealing with the concept of continuous deployment. It's an environment that's always going and there's always pieces moving all the way around. But we still have to do a lot more things before we get there.