In the past week, I have finished my migration preparation. The migration itself is scheduled for tomorrow morning (Europe time). You may have already seen my migration notification.
I will say a little about my strategy for this migration.
The first step was to understand what was at stake. I knew that a server was being retired, and that I would have to move its services somewhere else. The name of the server is “gitlab-storage”, which made me think it was used for behind-the-scenes GitLab services. To some extent, that is true—but I also found out that it hosts downloads.haskell.org! Not exactly low profile.
Luckily, I was able to learn everything I needed to know from the server’s NixOS config. By reading through it a couple times, I discovered all the running services, all the domain names in use, and all secrets that are needed.
Other things I had to do, in no particular order:
- Get access to all the systems I need to effect the migration. [Jargon Alert] In particular, I need to be able to make DNS changes to haskell.org, create the new server in our hosting provider’s console, and change CDN configuration for downloads.haskell.org.
- Get a crash course in zfs so I can synchronize the filesystem contents during the migration. The server is, in fact, a storage server! Its filesystems are really important.
- Write a checklist for the procedure, including actions taken a few days beforehand, mechanisms for checking that everything is going ok, and rollback options.
- Practice some of the individual actions that will be taken during the migration.
Now that I have all this in place, I expect few surprises. With luck, the whole thing will be done in a couple of minutes.
Wish me luck!