Migrating Orleans backend from Windows to Linux, AWS, and beyond
This is a draft of a post I composed in March, 2016. Only partially completed, but maybe it will be of some value to someone. Our backend has been based on Microsoft Orleans (MS Research, GitHub) for some time. We're primarily running the entire backend- deployment and all- on Windows 7 mostly because:
- It's convenient since all developers are running Windows on their desktops
- It's easier for QA to test and operate playtests until everything is fully automated and we've got devops tools in place
- Our company is mostly a "Windows shop" anyway
- We use log4net and our App.config was specifying ColoredConsoleAppender which didn't work on Mono (switched to ConsoleAppender)
- We spawn our game servers using Process.StartInfo.UseShellExecute = true and caused an error "xdg-open: unexpected option ..." (we set UseShellExecute to false on Linux- Windows seems to require it)
- Our config file had a Windows "smell"
- It refused to startup with the version of mono that ships with Ubuntu 14.04, but installing the latest, stable version fixed that
- Hard-coded windows specific paths and commands
- Paths that were incorrect with a case-sensitive filesystem
- Asserts that were triggered by incomplete implementations