KnightFight update
We already announced that we were working on overhauling KnightFight and the big day where we switch to the new version is coming up.
The update will take place on Sunday, 17th November 2019 at 02:00 UTC (which is 03:00 German time) and will result in a downtime of about 3 hours if things don't go according to plan.
Please note that you will be logged out and need to log in again after the update is finished.
Further details on the changes will be announced shortly after the update.
Technical details
The following information is meant for people who want to know more about the details on how we plan to migrate to the new version.
Preparations
Essentially, we're going to switch from a bunch of old servers to our new infrastructure with new servers that we already prepared for the update.
Since we're switching everything to HTTPS, we also need proper TLS certificates. To make sure we don't run into issues during the actual update, we already changed the DNS records and generated the certificates and got them signed.
This means that right now, KnightFight is already hosted on our new servers by using HTTP proxies that relay everything to/from our old servers.
We also already changed backups and monitoring accordingly.
Sunday, 02:00 UTC
The first step is to put a placeholder page on all KnightFight domains, so that visitors know what's going on.
Next up, we're going to set all databases read-only and transfer the old databases to our new deployment.
Once this is done, we're going to apply all migrations that bring the databases in sync with our new code base. While we've already tested this extensively on production data, this is still the point where things might go wrong and it's also the main reason why we scheduled a longer downtime.
If nothing has exploded, we are new simply going to switch the web servers to the new KnightFight version. We're using NixOS, so activating the new configuration is only a matter of seconds.
Post-update
At this point, the new KnightFight version should be up and running and the following items are left to do:
- Verify all game worlds to see whether the update has been successful
- Update moonID API addresses to use the HTTPS variants
- Enable moonID for game worlds that didn't support moonID so far
- Publish news post about what has changed
- Shut down and wipe all of the old servers
- Monitor support tickets to see whether any post-update problems arise