Back to search

What level of automation do we have in our build and deployment process? Is it highly manual? Is it highly automated?

TL;DRSmall deployments and builds are highly automated, but large public environments still need human review and approval, and the blue-green flip to live needs several people to sign off.

Ahmed ShakerPublishing Technology

I'll talk about the deployment side. So when it comes to deployment, I kind of touched on that earlier, on the deployment size. If it's a smaller deployment that allocates a reasonable amount of cloud resources, this is fully automated. Anyone can go through a GUI interface and click. And these deployments, you are not allowed to change so much of them. You can only change a few specific facts. And it's based on a system that runs off Git, off a source version control system. And it gets deployed automatically, everything gets built, and everything can get destroyed also by a GUI, by a user interface. When it comes to any large public facing environment, we're talking about a lot of resources. So in the current phase of the project, because we also still have systems or areas in automation that are imperative, where we tell it how to do things, not what we want. That's a very important topic. A lot of people I see in the questions are from the DevOps community. That's a big thing. We're trying to shift a lot of our stuff from telling the automation how to get there to what we want, and let the automation systems and frameworks obtain that state. But to go back to the point, if you have a larger environment, at the initial part of it, you have to have a human decision, you have to have a review, another human decision, making sure that these are the correct values, and then it goes from there and it becomes automated, and autoscaling kicks in and manages the environment from here.

Ahmed ShakerPublishing Technology

And just to add something real quick, as the project matures, as parts of the project mature, as we know we're not going to be moving a lot of knobs here, we can offset these parts and make them super self-maintained. Self-healing is a big topic in our industry and we want to talk about it. Reactive environment, the environment that reacts to itself, and we might get to talk about that a little bit, about how we are trying to enhance the metrics, or the traces, or the logs, or the insights inside our services, so we can let our infrastructure make decisions based on these insights.

Benoit BeausejourChief Technology Officer

I mean, one key part that's still a human intervention, I think, both on platform and game, is the flip of the environments, right? So the game, as Ahmed was mentioning, is deployed using a blue-green deployment. That means that while you guys are playing the game online on prod, for example, and we're preparing a new build, that's the blue one. And then the green one's being built, or vice versa. And so at some point when the build's validated, the flip happens. And a human says, OK, we're flipping. And that's where the build goes live. It gets available in the launcher. Servers are flipping over and rotating. And so that's still a human doing that. And it actually requires a couple of people saying yes, yes, yes before it actually happens.

MilesDirector of Build Operations

It's very similar to the build system as well, which is highly automated, but somebody always has to make the decision to request a build, even if that's a release build.

Star Citizen Live›Builds, Platforms and Publishes·
Published on this date.18 Sep 2020