Haskell Foundation DevOps Weekly Update, 2022-11-23

In the past week, I have finished my migration preparation. The migration itself is scheduled for tomorrow morning (Europe time). :turkey: 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!